今天我們進行了一次學校鍛鍊,以創建多個過程。我們的問題不是代碼本身,也不是fork()的理解。爲什麼不fork()創建多個進程,或者它?
我和我的隊友已經是爲什麼,如下圖所示沒有創造我們的代碼4個流程的問題:
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
//kod
int child1();
int child2();
int main() {
pid_t pid1, pid2;
int i;
pid1 = fork();
pid2 = fork();
if(!pid1)
child1();
else if(!pid2)
child2();
else {
printf("parentlolololololol");
}
for(;;)
return 0;
}
int child1(){
for(;;) {
printf("A");
fflush(stdout);
sleep(1);
}
return 0;
}
int child2(){
for(;;){
printf("B");
fflush(stdout);
sleep(1);
}
return 0;
}
我們有一個切片討論程序是否創建4個進程與否。做第二個fork() - 調用創建一個新的子進程,爲什麼它不被任何循環阻塞,如果這種情況?或者不是第二個fork() - 調用創建一個新的子進程?
這不適合我們以任何方式運動,但我們很好奇,因爲你必須要作爲一個程序員;)
哦,大聲笑,感謝您的快速回復。我們現在瞭解這個問題,並創建了3個進程,並且在父進程結束時,進程數量是確切的。 – nattefrost 2010-09-16 08:34:18