fork download
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <unistd.h> // Include this for fork(), getpid(), getppid(), and sleep()
  4.  
  5. int main(void)
  6. {
  7. pid_t pid;
  8. printf("BEFORE FORK\n");
  9. pid = fork();
  10.  
  11. if (pid > 0) {
  12. // Parent process
  13. sleep(0); // This is unnecessary, but you can remove it or leave it as is
  14. printf("PARENT_PID: %d, RPID: %d, CHILD PID: %d\n", getpid(), getppid(), pid);
  15. }
  16. else if (pid == 0) {
  17. // Child process
  18. printf("CHILD_PID: %d, RPID: %d\n", getpid(), getppid());
  19. }
  20. else {
  21. // Error in fork()
  22. printf("FORK ERROR\n");
  23. }
  24.  
  25. printf("BOTH PROCESSES CONTINUE FROM HERE\n");
  26.  
  27. return 0;
  28. }
  29.  
Success #stdin #stdout 0.01s 5276KB
stdin
Standard input is empty
stdout
BEFORE FORK
CHILD_PID: 2326428, RPID: 2326425
BOTH PROCESSES CONTINUE FROM HERE
BEFORE FORK
PARENT_PID: 2326425, RPID: 2326424, CHILD PID: 2326428
BOTH PROCESSES CONTINUE FROM HERE