c wait 예제
wait 함수는 부모 프로세스가 자식 프로세스의 종료를 기다릴 수 있도록 도와주는 함수입니다. 이 함수를 사용하여 부모 프로세스가 자식 프로세스의 실행이 완료되기를 기다릴 수 있습니다.
예제 코드
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid;
int status;
pid = fork();
if (pid < 0) {
// fork 실패
perror("Fork failed");
exit(1);
} else if (pid == 0) {
// 자식 프로세스
printf("자식 프로세스 실행 중\n");
sleep(5);
printf("자식 프로세스 종료\n");
exit(0);
} else {
// 부모 프로세스
printf("부모 프로세스 실행 중\n");
wait(&status);
printf("자식 프로세스 종료 대기 완료\n");
if (WIFEXITED(status)) {
int exit_status = WEXITSTATUS(status);
printf("자식 프로세스의 종료 상태: %d\n", exit_status);
}
exit(0);
}
return 0;
}
설명
이 예제는 fork 함수를 사용하여 자식 프로세스를 만들고, 자식 프로세스가 실행을 완료하기를 기다리는 부모 프로세스를 만듭니다.
- 부모 프로세스는 자식 프로세스의 종료를 기다리기 위해 wait 함수를 호출합니다.
- 자식 프로세스는 실행되고 5초 동안 대기한 후 종료됩니다.
- 부모 프로세스는 wait 함수가 반환될 때까지 블록되며, 자식 프로세스의 종료를 기다리게 됩니다.
- 자식 프로세스가 정상적으로 종료되면, wait 함수는 종료 상태를 반환하고, 부모 프로세스에서 이를 출력합니다.
이러한 방식으로 wait 함수를 사용하여 부모 프로세스가 자식 프로세스의 실행을 완료하기를 기다리는 예제입니다.
#C #wait #자식프로세스 #부모프로세스