본문 바로가기
배워보자!!/리눅스

[linux] 리눅스 wait() 함수

by norinda 2015. 5. 17.
728x90

wait() 함수

- 자식프로세스가 종료될 때까지 부모프로세스는 sleep()모드로 기다리게 됩니다.

부모프로세스가 자식프로세스보다 먼저 종료되어 자식이 고아 프로프세스가 되는 것 방지하기 위해 사용됩니다

wait() 의 인자 status로 자식 프로세스의 상태를 알 수 있습니다.

자식프로세스의 상태값은 자식프로세스의 종료값 *256(FF)입니다.




#include <sys/types.h>

#include <sys/wait.h>

#include <unistd.h>

#include <string.h>

#include <stdio.h>

#include <stdlib.h>

int main()

{

        int pid;

        int status;


        pid = fork();

        if(pid<0)

        {

                perror("FORK ERROR :");

        }


        if(pid ==0)

        {

                int i;

                for (i = 0; i<5; i++)

                {

                        printf("자식 = %d\n" , i);

                        sleep(2);

                }

                exit(3);

        }else

        {

                printf("자식기다리기 = %d\n" , pid);

                wait(&status);

                printf("자식종료됨 = %d\n" , status);

        }

}





반응형

댓글