본문 바로가기

과제모음

[네트워크프로그래밍]fork() 함수 이용한 simple program

#include <sys/wait.h>

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>


int main(){
        pid_t pid, child;
        int a = 5, b = 3;
        int state;

        pid = fork();
        if(pid == 0){
                b += 1;
                printf("Child process id = %d\n", getpid());
                printf("a = %d, b = %d\n", a, b);
                sleep(10);
        }
        else{
                do{
                        a += 1;
                        sleep(3);
                        puts("\n3 sec wait\n");
                        child = waitpid(pid,&state, WNOHANG);
                }while(!child);
        }
        printf("child proess id = %d\n return value = %d\n",child, a*b);

        return state;
}


이상하게 리눅스에서 WNOHANG를 쓰면 자꾸 에러가 난다. 인자값을 0으로 바꾸면 멀쩡해지지만...흠..cygwin에서는

잘만되던데.....그리고 vi 에디터 사용법을 다시 숙지해 봐야겠다