fork()||fork()输出几个A?
父进程左边的fork()产生一个子进程(1),父进程fork返回值>0,||不执行右边。
子进程(1)中fork()返回0,执行||右边的fork()产生第二个子进程(2)到此这个语句执行完,一共三个进程,输出三个A。
fork()&&fork()
仍是输出三个A:父进程左边的fork()产生一个子进程(1),返回>0(真),执行&&右边再产生一个子进程(2).
子进程(1)左边fork返回0,不执行右边最后结束语句。每个进程输出一个A。
循环中fork()
每一次循环都会产生一个fork(),一共4个进程,打印6个A。
输出:
稍微改一点代码,将输出的\n去掉:
此时程序产生4个进程,输出8个A,因为没有\n刷新缓冲区,在程序结束前A一直存在缓冲区中,当进程复制时,缓冲区中的A也一同复制了。
这个图画了半天累死我了