fork download
  1. /* main program illustrating the UNIX fork() system call.
  2. Compile using cc -o main main.c
  3. */
  4. #include <stdio.h>
  5. main() {
  6. int fork(), value;
  7. int childpid[4];
  8.  
  9. for(int i=0;i<4;i++){
  10. childpid[i] = fork();
  11.  
  12. if(childpid == -1) {
  13. perror("can’t fork. Help!!");
  14. exit(-1);
  15. }
  16.  
  17. else if(childpid[i] == 0) {
  18. printf("child: my_process_id= %d,parent_process_id=%d\n", getpid(), getppid());
  19. }
  20.  
  21. else {
  22. printf("i = %d \nParent: my_process_id=%d,my_child’s_process_id=%d\n",i, getpid(), childpid);
  23. continue;
  24. }
  25. }
  26. }
  27.  
Success #stdin #stdout 0s 5464KB
stdin
Standard input is empty
stdout
i = 0 
Parent: my_process_id=30397,my_child’s_process_id=122122528
i = 1 
Parent: my_process_id=30397,my_child’s_process_id=122122528
i = 2 
Parent: my_process_id=30397,my_child’s_process_id=122122528
i = 3 
Parent: my_process_id=30397,my_child’s_process_id=122122528
i = 0 
Parent: my_process_id=30397,my_child’s_process_id=122122528
i = 1 
Parent: my_process_id=30397,my_child’s_process_id=122122528
i = 2 
Parent: my_process_id=30397,my_child’s_process_id=122122528
child: my_process_id= 30403,parent_process_id=1
i = 0 
Parent: my_process_id=30397,my_child’s_process_id=122122528
i = 1 
Parent: my_process_id=30397,my_child’s_process_id=122122528
child: my_process_id= 30402,parent_process_id=1
i = 3 
Parent: my_process_id=30402,my_child’s_process_id=122122528