我想,对于进程控制,我们首先必需注意这样两个基本意识:
一. 与终端连接的缓冲区是什么类型(全缓冲,行缓冲,无缓冲),如果用putchar,缓冲类型就是无缓冲
模式,即接收一个字符就立马输出,用printf就是行缓冲了,
二. 子进程会继承父进程的enviroment(环境),这包括数据段,堆栈等
好,现在来分析上面的代码,父进程运行下来先建立子进程p1,然后输出b, p1运行下来也会有b输出,
父进程再下来会建立p2,p2继承父进程的环境,这时候缓冲区有b,p2 接收到了,立马输出,然后同
父进程一齐下来又有两个a输出,前面的p1下来会建立子进程p3,p3继承p2的环境,也会有b输出
然后与p2一齐下来输出两个a,所以就有4个b4个a,当然具体的是babababa还是bbaabbaa或别的
什么输有出,都是有可能的,这要看具体系统是怎么安排的, |