Server/Linux
[Linux] waitpid예제-WNOGANG옵션
annajinee
2017. 7. 10. 17:33
//부모프로세스가 WNOHANG옵션을 사용하여 waitpid를 사용한 예제
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<stdio.h>
#include<stdlib.h>
main()
{
pid_t pid;
int status=0;
if((pid=fork())>0) //pid가 fork하고, 부모프로세스 일 경우
{
while(!waitpid(pid, &status, WNOHANG))
//종료한 자식프로세스가 있으면 이를 정상적으로 처리하고, 없으면 곧바로 0을 반환
{
printf("parent:%d\n", status++);
sleep(1); //1초마다 status값을 표준 출력 하면서 자식프로세스의 종료상태를 확인
}
printf("parent: child -exit (%d)\n", status);
}
else if(pid==0) //자식 프로세스
{
sleep(5); //5초동안 대기하다가 exit로 종료하게 된다.
printf("끝ㅌㅌㅌㅌㅌ\n");
exit(0);
}
else
printf("fail to fork\n");
}