首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

子进程有关问题

2012-11-19 
子进程问题C/C++ code#includestdio.hmain(){int p1putchar(x)//父子共享部分,都要输出xwhile((p1

子进程问题

C/C++ code
#include<stdio.h>main(){    int p1;               putchar('x');         //父子共享部分,都要输出'x'        while((p1=fork()) == -1);        if(p1==0)        putchar('b');    //子进程输出'b'    else        putchar('a');      //父进程输出'a'    putchar('y');           //父子共享部分,都要输出'y'}

为什么输出结果是xbyxay,求解释

[解决办法]
LS的正解。
标准输出/输入都是行缓冲问题,只有遇到回车才输出。

fork()后,会把父进程的缓冲区内容复制到子进程中。 于是输出了两个x。

至于fork后是子进程先运行,还是父进程先运行是不确定的。 

程序运行完后,才会关闭你文件流,此时才输出。
[解决办法]
探讨

第二个x是子进程输出的吗…………可是那时frok还没有创建子进程?

热点排行