fork download
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <unistd.h>
  4. #include <stdlib.h>
  5. #include <sys/wait.h>
  6.  
  7. int main(void) {
  8. pid_t pid;
  9. printf("BEFORE FORK\n");
  10.  
  11. pid = fork();
  12.  
  13. if (pid > 0) {
  14. sleep(1);
  15. printf("PARENT PID: %d, PPID: %d, CHILD PID: %d\n", getpid(), getppid(), pid);
  16. wait(NULL);
  17. }
  18. else if (pid == 0) {
  19. printf("CHILD PID: %d, PPID: %d\n", getpid(), getppid());
  20. exit(0); // Exit the child process properly
  21. }
  22. else {
  23. printf("FORK ERROR\n");
  24. exit(1);
  25. }
  26.  
  27. printf("BOTH PROCESSES CONTINUE FROM HERE\n");
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 5292KB
stdin
Standard input is empty
stdout
BEFORE FORK
CHILD PID: 876037, PPID: 876034
BEFORE FORK
PARENT PID: 876034, PPID: 876033, CHILD PID: 876037
BOTH PROCESSES CONTINUE FROM HERE