[問題] fork 在迴圈裡面的問題
各位好想要請問一下~
int main()
{
int num = 4;
pid_t pid;
printf("start! ");
while(num!=1)
{
pid = fork();
if (pid>0) // parent
{
wait(NULL);
break;
}
else if (pid==0) //child
{
printf("%d ",num);
num--;
}
}
return 0;
}
請問child不是應該從pid=fork() 之後開始做嗎?
但是我發現他們好像會重頭開始做?
因為我在while前面print東西都會被print不只一次...
我是打算只讓child在while裡面跑這樣 ( 想要印出 start 4 3 2 )
但是實際跑出來會得到 start 4 3 2 start 4 3 start 4 start
想請問是因為在迴圈裡面的關系還是其他原因
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.208.22
推
10/22 11:25, , 1F
10/22 11:25, 1F
→
10/22 11:43, , 2F
10/22 11:43, 2F
→
10/22 11:44, , 3F
10/22 11:44, 3F
→
10/22 11:49, , 4F
10/22 11:49, 4F
→
10/22 12:01, , 5F
10/22 12:01, 5F
推
10/22 12:01, , 6F
10/22 12:01, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章