프로세스생성공부중인데......fork()함수를 공부하는데 어렵네요 아래 소스가어떻게 진행되는지에 대해서 알 수 있을까요 ㅠㅠ? #include <stdio.h> #include <sys/types.h> #include <stdlib.h>
int g = 0;
int main(void) { pid_t pid; int l = 100;
printf("PID(%d): parent g = %d, l = %d\n", getpid(), g, l);
pid = fork();
if (pid < 0) { printf("fork error!"); exit(1); } else if (pid == 0) { g++; l++; printf("PID(%d) %d: Child g = %d, l = %d\n", getpid(), pid, g, l); } else {
printf("PID(%d) %d: parent1 g = %d, l = %d\n", getpid(), pid, g, l);
wait (); }
printf("PID(%d): g = %d, l = %d\n", getpid(), g, l); return 0; }
이런 코드인데 결과가 PID(9785): parent g = 0, l = 100 PID(9785) 9788: parent1 g = 0, l = 100 PID(9788) 0: Child g = 1, l = 101 PID(9788): g = 1, l = 101 PID(9785): g = 0, l = 100 입니다.
fork()함수를 호출했다면 부모프로세스에는 CPID, 자식프로세스에는 0이 반환되야하는게 맞지않나요? 질문!
-for문도아닌데 반환값이 두개로 한다해도 5개나 출력이 어떻게 된 것인가요? -진행순서가 어떻게 되는것인가요?? ㅠㅠ