프로세스 생성에 관해서 궁금한 점이 있습니다.
글쓴이: rainbow2316 / 작성시간: 일, 2014/04/20 - 12:51오전
운영체제를 공부하면서 어떤 예제글이 있어서 따라해보았습니다.
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
int gval;
int main(void)
{
int status;;
if(fork()!=0)
{
waitpid(-1,&status,0);
}
else
{
X(2);
exit(0);
}
printf("%d\n", gval);
return 0;
}
void X(int i)
{
gval = i;
}여기서 제가 공부해서 알기론 fork()를 해서 0이 아니면 이건 부모 프로세스고
밑에 있는 else 즉 fork() 해서 나온 값이 0 이면 자식 프로세서로 알고 있습니다.
소스는 이해를 했습니다. waitpid 는 자식 프로세스가 종료될 때 까지 기다리는 코드이고
그리고 X(1) X(2)는 전역변수 gval 에 부모프로세스 가 1을 넣고 자식 프로세스가 2를 넣고
근데 궁금한건 프린트문을 써서 gval의 값을 출력하면 왜 부모프로세스가 넣은 값이 나오는 건지 궁금합니다.
이건 컴퓨터의 컴파일러마다 다르게 나오는 것입니까. ?
Forums:


댓글 달기