fork(1) download
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <sys/wait.h>
  4.  
  5. int main(void)
  6. {
  7. int ret1 = fork();
  8. int ret2 = fork();
  9. int ret3 = fork();
  10. int ret4 = fork();
  11.  
  12. if (ret4 == 0)
  13. printf("one: (%d: %d, %d, %d, %d)\n", (int)getpid(), ret1, ret2, ret3, ret4);
  14. else
  15. printf("two: (%d: %d, %d, %d, %d)\n", (int)getpid(), ret1, ret2, ret3, ret4);
  16. while (wait(0) > 0)
  17. ;
  18. return 0;
  19. }
  20.  
Success #stdin #stdout 0.01s 2724KB
stdin
Standard input is empty
stdout
one: (18744: 18741, 18742, 18743, 0)
one: (18745: 18741, 18742, 0, 0)
two: (18743: 18741, 18742, 0, 18745)
one: (18747: 18741, 0, 18746, 0)
one: (18750: 0, 18748, 18749, 0)
one: (18751: 18741, 0, 0, 0)
two: (18746: 18741, 0, 0, 18751)
two: (18742: 18741, 0, 18746, 18747)
one: (18753: 0, 0, 18752, 0)
one: (18754: 0, 18748, 0, 0)
two: (18749: 0, 18748, 0, 18754)
one: (18755: 0, 0, 0, 0)
two: (18752: 0, 0, 0, 18755)
two: (18748: 0, 0, 18752, 18753)
two: (18741: 0, 18748, 18749, 18750)
two: (18738: 18741, 18742, 18743, 18744)