fork download
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <sys/wait.h>
  4.  
  5. int main() {
  6.  
  7.  
  8. int pid = fork();
  9.  
  10. if (pid == 0) {
  11.  
  12. printf("자식 프로세스 실행 중 (PID: %d, 부모 PID: %d)\n", getpid(), getppid());
  13. printf("exec()를 사용해 'ls -l' 명령 실행\n");
  14. execl("/bin/ls", "ls", "-l", NULL);
  15.  
  16.  
  17. return 1;
  18. } else {
  19.  
  20. printf("자식 프로세스가 생성되었습니다. (자식 PID: %d)\n", pid);
  21. printf("부모 프로세스가 대기하고 있습니다. (부모 PID: %d)\n", getpid());
  22. printf("부모 프로세스가 자식프로세스가 종료될 때까지 대기함\n");
  23. wait(NULL);
  24. printf("부모프로세스가 자식 프로세스 종료를 확인했기에 부모 프로세스가 종료됨\n");
  25. }
  26.  
  27. return 0;
  28. }
  29.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
total 16
-rwxr-xr-x 1 root root 14312 Apr  8 12:10 prog
자식 프로세스가 생성되었습니다. (자식 PID: 3923801)
부모 프로세스가 대기하고 있습니다. (부모 PID: 3923798)
부모 프로세스가 자식프로세스가 종료될 때까지 대기함
부모프로세스가 자식 프로세스 종료를 확인했기에 부모 프로세스가 종료됨