manpagez: man pages & more
info gawk
Home | html | info | man

File: gawk.info,  Node: Extension Sample Fork,  Next: Extension Sample Inplace,  Prev: Extension Sample Fnmatch,  Up: Extension Samples

17.7.3 Interface to 'fork()', 'wait()', and 'waitpid()'
-------------------------------------------------------

The 'fork' extension adds three functions, as follows:

'@load "fork"'
     This is how you load the extension.

'pid = fork()'
     This function creates a new process.  The return value is zero in
     the child and the process ID number of the child in the parent, or
     -1 upon error.  In the latter case, 'ERRNO' indicates the problem.
     In the child, 'PROCINFO["pid"]' and 'PROCINFO["ppid"]' are updated
     to reflect the correct values.

'ret = waitpid(pid)'
     This function takes a numeric argument, which is the process ID to
     wait for.  The return value is that of the 'waitpid()' system call.

'ret = wait()'
     This function waits for the first child to die.  The return value
     is that of the 'wait()' system call.

   There is no corresponding 'exec()' function.

   Here is an example:

     @load "fork"
     ...
     if ((pid = fork()) == 0)
         print "hello from the child"
     else
         print "hello from the parent"

© manpagez.com 2000-2025
Individual documents may contain additional copyright information.