그건 내 코드입니다.C에서 하위 프로세스를 올바르게 fork()하는 방법은 무엇입니까?
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
int i, pid;
for(i = 0; i < atoi(argv[1]); i++) {
pid = fork();
if(pid < 0) {
printf("Error");
exit(1);
} else if (pid == 0) {
printf("Child (%d): %d\n", i + 1, getpid());
exit(0);
} else {
wait(NULL);
}
}
}
출력은 다음과 같습니다.
Child (1): 5676
Child (2): 4624
Child (3): 4800
Child (4): 5596
Child (5): 5580
그러나 내 숙제에 예상되는 결과가 아닙니다. 그렇게되어야합니다. 코드에 어떤 문제가 있습니까? 누군가 나를 도울 수 있습니까?
Child (2): 4625
Child (1): 4624
Child (3): 4626
Child (4): 4627
Child (5): 4628
감사합니다. 이제 나는 그것을 시도 할 것이다.
P. 미안해 내 영어가 나쁘다. 내가 한 말을 이해할 수 있기를 바랍니다.
제안 해 주셔서 감사합니다. –
예, 실제로 운영 체제에 따라 다릅니다. 학교의 Linux 서버에서 프로그램을 테스트했습니다. 나는 예상 결과를 얻었다. 고맙습니다. –