fork download
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <unistd.h> // Include this for sleep() and fork()
  4.  
  5. int main(void)
  6. {
  7. pid_t pid;
  8. printf("BEFORE FORK\n");
  9. pid = fork(); // Fork system call
  10.  
  11. if (pid > 0)
  12. {
  13. // Parent process code
  14. sleep(1); // Allow child to execute first
  15. printf("PARENT_PID:%d RPID:%d, CHILD PID:%d \n", getpid(), getppid(), pid);
  16. }
  17. else if (pid == 0)
  18. {
  19. // Child process code
  20. printf("CHILD_PID:%d RPID:%d\n", getpid(), getppid());
  21. }
  22. else
  23. {
  24. // Error occurred in fork()
  25. printf("FORK ERROR\n");
  26. }
  27.  
  28. printf("BOTH PROCESS CONTINUE FROM HERE\n");
  29.  
  30. return 0; // Return statement for main
  31. }
  32.  
Success #stdin #stdout 0s 5292KB
stdin
Standard input is empty
stdout
BEFORE FORK
CHILD_PID:2333833 RPID:2333830
BOTH PROCESS CONTINUE FROM HERE
BEFORE FORK
PARENT_PID:2333830 RPID:2333829, CHILD PID:2333833 
BOTH PROCESS CONTINUE FROM HERE