這是我的代碼。如何在C中fork()n子進程?
#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.S.對不起,我的英語不好。我希望你能理解我說的話。
謝謝你的建議。 – 2012-02-05 14:07:16
是的,它真的是依賴於操作系統。我在學校的Linux服務器上測試了我的程序。我獲得了預期的產出。非常感謝你。 – 2012-02-06 12:54:23