看板 LinuxDev 關於我們 聯絡資訊
void main() { int td = 0; fork(); for ( int j = 0; j < 4; j++) { printf(" j = %d\n", j); fflush(stdout); td += j; } printf("td = %d\n", td); exit(0); } 請益一下這樣程式跑出來是會列出兩次資訊?? j=0 j=1 j=2 j=3 sum=6 同時印出兩次?? 不知道跟fflush(stdout); 會不會有影響?? fflush不是清空buffer內的資料嗎?? 那他還會再輸出裡面的資訊?? ------------------------------------------- 印一次 printf("hello\n"); //fflush(stdout); fork(); 印兩次 printf("hello\n"); fflush(stdout); fork(); ---------------------------------------------- 但是這兩個 輸出的結果卻是不一樣 有請高手解析困惑點,感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.39.12.135 ※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1396424892.A.C1C.html
Viller:看不太懂你的問題是什麼,不過'\n'就會flush buffer了, 04/03 12:22
Viller:fflush應該只是清空buffer內的資料,你的印兩次應該是fork 04/03 12:24
Viller:造成的, 不是fflush引起的 04/03 12:24
我想問的是這段程式void main() 會執行幾次?? 下面的部分我只是參考來做比較?? 不知道上面的程式執行結果會是如何?? ※ 編輯: oklp1415 (114.27.124.145), 04/03/2014 14:54:57
PTTco:fork出去,所以parent process和child process各會執行一次 04/03 16:29
Viller:請參考 http://goo.gl/o6SQU3 04/03 23:26
Viller:所以上面的程式會列印出兩次 04/03 23:29