[問題] fork的問題
作者 loter ( Maple leaf) 看板 IM100HW
標題 Re: [嘖嘖] fork陰我
時間 Sun Mar 29 21:14:15 2009
───────────────────────────────────────
並不是 fork 陰你,是因為你沒有先 flush parent process's stdout buffer 的關係,
所以是你下面每一個 fork 出來的 child process 中自己的 buffer,都還會帶有
"fork" 這個字串,在 printf("%d ",n); 時然後再加上 n 的值,所以你會以為
child process 起始位置有誤,實際上還是從 fork(); 以後開始執行,
解決方法就是把第一次 printf 改成 printf("fork\n"); 就ok了。
作者: Domos (Domos) 看板: C_and_CPP
標題: [問題] fork的問題
時間: Sun Mar 29 20:57:34 2009
#include<stdio.h>
#include<unistd.h>
int main(int argc, char *argv[])
{
printf("fork "); //可是他x的居然跑來這裡...
或是在這裡加個 fflush(stdout);
int n = atoi(argv[1]);
pid_t pid = 0;
while(pid == 0 && n) //會跳到這裡執行
{
--n;
pid = fork(); //理論上fork出來
}
if(pid > 0)
{
wait(NULL);
printf("%d ",n);
return 0;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.249.225
→
03/29 21:24, , 1F
03/29 21:24, 1F
→
03/29 21:25, , 2F
03/29 21:25, 2F
→
03/29 21:42, , 3F
03/29 21:42, 3F
※ 編輯: Domos 來自: 140.112.249.225 (03/29 21:44)
→
03/29 21:45, , 4F
03/29 21:45, 4F
→
03/29 21:46, , 5F
03/29 21:46, 5F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章