#include #include #include #include int main(void) { pid_t pid; int i; for (i = 0; i < 10; i++) { pid = fork(); if (pid == -1) { printf("fork() failed\n"); return 0; } else if (pid == 0) { printf("child: pid=%d\n", getpid()); sleep(10); printf("child: exiting pid=%d\n", getpid()); return 0; } else { printf("parent: created child %d\n", pid); } } /* if we don't clean up the children, they are zombies */ #if 0 while (wait(&i) != -1) /* NOP */; #endif /* if we don't clean up the children and the main process terminates * init becomes parent of the childs */ #if 0 while (1) sleep(100); #endif return 0; }