[问题] 系统程式的问题

楼主: 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