프로세스 생성에 관해서 궁금한 점이 있습니다.
글쓴이: 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:
댓글 달기