This code is intentionally obtuse. They modify the same counting variable many times per loop. They allow the child to continue looping after fork() -- meaning, the child itself will call fork() on the next loop! And the child will have its own, independent value of var!
The most effective way I see to tackle this program is brute force. Make a big chart of what changes when. Mentally work your way through the program and fill it out.
Their random indenting makes it impossible to see where anything begins or ends, too; tis should help.
I have seen this done before - and maybe there is a better way too.
I want to be abe to use a for loop (or other better method) to loop through the database instance names that are part of the script - not an external file where a read might be ok.
Here is what I have and I know won't work -... (5 Replies)
Can anyone tell me what's wrong with my code here? I'm experiencing weird behavior...
I am using 'j' to go down a list filenames saved in a .txt file and prompting the user whether or not she would like to delete each one. This works all well and fine the first run through, but then instead of... (2 Replies)
i don't get what's wrong here. i'm writing a shell script that takes 1 argument (a number) from the command-line, but it's throwing an error:
Syntax error: Bad for loop variable
doesn't make much sense
for (( i = 1; i = ${1}; i++ )) # error points to this line everytime
do
echo... (9 Replies)
When I run the following command in the shell it works fine. It prints a city name and then a path for a file.
~$ for i in `awk -F':' '{print $0}' /home/knoppix/Desktop/data/subs | grep -m 1 $ city | sed "s/:/ /"`
>do
>echo $i
>done
Now, when I place it in this shell script (sh) it prints... (6 Replies)
#!/bin/bash
function check_num_args()
{
if ; then
echo "Please provide a file name"
else
treat_as_file $*
fi
}
function treat_as_file()
{
numFiles=$#
for((i=1;i<=$numFiles;i++));do
echo $i
... (3 Replies)
I figured this out, but I wanted to pose the question.
I was writing a while loop that required counting the amount of times the job had run, for example.
An example below is what I had:
variable=0
while :
do
variable = `expr $variable + 1`
done
That didn't do what I... (4 Replies)
Good evening all I have what might be a simple problem to solve but I do not know how to solve it myself. I am writing a bash script and my code looks something like this:
mp3=`ls | grep \.mp3`
for f in $mp3
do
echo $f
done
Basically what I want to do is look through the current... (4 Replies)
I have the text file where each line has the format:
chr10 101418889 101418904 0.816327
Right now the interval between column 2 and 3 is 15. I only want the two consecutive positions starting at position 1, write it to a file, then move up one position write to file etc. So that:
... (1 Reply)
Discussion started by: jfern
1 Replies
LEARN ABOUT REDHAT
pthread_atfork
PTHREAD_ATFORK(3) Library Functions Manual PTHREAD_ATFORK(3)NAME
pthread_atfork - register handlers to be called at fork(2) time
SYNOPSIS
#include <pthread.h>
int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void));
DESCRIPTION
pthread_atfork registers handler functions to be called just before and just after a new process is created with fork(2). The prepare han-
dler will be called from the parent process, just before the new process is created. The parent handler will be called from the parent
process, just before fork(2) returns. The child handler will be called from the child process, just before fork(2) returns.
One or several of the three handlers prepare, parent and child can be given as NULL, meaning that no handler needs to be called at the cor-
responding point.
pthread_atfork can be called several times to install several sets of handlers. At fork(2) time, the prepare handlers are called in LIFO
order (last added with pthread_atfork, first called before fork), while the parent and child handlers are called in FIFO order (first
added, first called).
To understand the purpose of pthread_atfork, recall that fork(2) duplicates the whole memory space, including mutexes in their current
locking state, but only the calling thread: other threads are not running in the child process. The mutexes are not usable after the fork
and must be initialized with pthread_mutex_init in the child process. This is a limitation of the current implementation and might or
might not be present in future versions.
RETURN VALUE
pthread_atfork returns 0 on success and a non-zero error code on error.
ERRORS
ENOMEM insufficient memory available to register the handlers.
AUTHOR
Xavier Leroy <Xavier.Leroy@inria.fr>
SEE ALSO fork(2), pthread_mutex_lock(3), pthread_mutex_unlock(3).
LinuxThreads PTHREAD_ATFORK(3)