#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 에디터 사용법을 다시 숙지해 봐야겠다
'과제모음' 카테고리의 다른 글
[네트워크프로그래밍 실습05]좀비프로세스 생성방지 에코 Server (0) | 2010.04.18 |
---|---|
나만의 운영체제를 만들어본다 - GEEKOS 설치 (0) | 2010.04.11 |
[운영체제론]예습정리(Chp5,6 / 프로세스과정) (0) | 2010.03.08 |
[운영체제론]3월 4일 수업정리(프로세스, 인터럽트, BUS) (0) | 2010.03.08 |
2010년 컴프2 Test레포트 (0) | 2010.01.22 |