내가 읽고있는 교과서에 따르면 아래 코드는 고유 한 상태로 종료 될 N 개의 자식 프로세스를 만듭니다. 이 2^n 개의 자식 프로세스 n은 어디 있다는 것을 믿고 날 리드C : fork() 자식 프로세스
int main(){
Fork();
Fork();
Fork();
printf("hello\n");
exit(0);
}
: 이전 교과서에
/* Parent creates N children */
for (i = 0; i < N; i++)
if ((pid[i] = Fork()) == 0) /* Child */
exit(100+i);
는, 다음과 같은 코드가 8 출력 라인있을 것이라는 점을 주장한다 fork()가 호출 된 횟수. 자식이 매번 종료하기 때문에 첫 번째 코드가 N 개의 자식 프로세스 만 생성하는 이유 (2^N과 반대)는 후속 fork()가 호출 될 때까지 상위 프로세스에서만 작동합니다.
두 번째 경우에 모든 아이들은 계속해서 분기하고 인쇄합니다. 첫 번째 경우에는 자녀가 생성되는 즉시 종료되므로 부모 만 계속됩니다. –
@ JerryJeremiah 감사합니다! 이 질문에 대한 답변입니다. –
사용중인 책에 대해 언급해야합니다. 나는 Stevens "UNIX Network Programming"이 초기 자본 시스템 호출 이름을 사용하여 시스템 호출의 오류 검사 버전을 지정한다는 것을 알고 있습니다. –