[問題] 系統程式的問題

作者: oklp1415 (天生我材)   2014-04-02 15:48:09
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內的資料嗎?? 那他還會再輸出裡面的資訊??
作者: Viller   2014-04-03 12:22:00
看不太懂你的問題是什麼,不過'\n'就會flush buffer了,fflush應該只是清空buffer內的資料,你的印兩次應該是fork造成的, 不是fflush引起的
作者: PTTco (co)   2014-04-03 16:29:00
fork出去,所以parent process和child process各會執行一次
作者: Viller   2014-04-03 23:26:00
請參考 http://goo.gl/o6SQU3所以上面的程式會列印出兩次

Links booklink

Contact Us: admin [ a t ] ucptt.com