X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=sources%2FForkTest.c;h=1965ec8f4fd232420869bff4297d95fd3fcbbdac;hp=d57ef7a7436c469f0620ce45c3dfee50d9d31fe1;hb=fd4e2fd24a218ef56953fd5a58d0b3c0bee8acb7;hpb=2df3e366683f4df738d40a05b97f820fde1648d9 diff --git a/sources/ForkTest.c b/sources/ForkTest.c index d57ef7a..1965ec8 100644 --- a/sources/ForkTest.c +++ b/sources/ForkTest.c @@ -26,8 +26,6 @@ * * Usage: forktest -h give all info's * - * $Id: ForkTest.c,v 1.4 2001/09/14 22:16:41 piccardi Exp $ - * ****************************************************************/ /* * Include needed headers @@ -36,7 +34,10 @@ #include /* C standard library */ #include /* unix standard library */ #include /* standard I/O library */ -#include /* string functions */ +#include /* C strings library */ + +#include "Gapil.h" +#include "macros.h" /* Help printing routine */ void usage(void); @@ -48,14 +49,15 @@ int main(int argc, char *argv[]) */ int nchild, i; pid_t pid; - int wait_child=0; - int wait_parent=0; + int wait_child = 0; + int wait_parent = 0; + int wait_end = 0; /* * Input section: decode command line parameters * Use getopt function */ opterr = 0; /* don't want writing to stderr */ - while ( (i = getopt(argc, argv, "hp:c:")) != -1) { + while ( (i = getopt(argc, argv, "hsp:c:e:")) != -1) { switch (i) { /* * Handling options @@ -66,10 +68,16 @@ int main(int argc, char *argv[]) return -1; break; case 'c': /* take wait time for childen */ - wait_child=strtol(optarg, NULL, 10); /* convert input */ + wait_child = strtol(optarg, NULL, 10); /* convert input */ break; case 'p': /* take wait time for childen */ - wait_parent=strtol(optarg, NULL, 10); /* convert input */ + wait_parent = strtol(optarg, NULL, 10); /* convert input */ + break; + case 'e': /* take wait before parent exit */ + wait_end = strtol(optarg, NULL, 10); /* convert input */ + break; + case 's': + Signal(SIGCHLD, HandSigCHLD); break; case '?': /* unrecognized options */ printf("Unrecognized options -%c\n",optopt); @@ -90,7 +98,7 @@ int main(int argc, char *argv[]) usage(); } nchild = atoi(argv[optind]); - printf("Test for forking %d child\n", nchild); + printf("Process %d: forking %d child\n", getpid(), nchild); /* loop to fork children */ for (i=0; i