在进程这一个模块中,folk在Ubuntu中的话是优先进行父程序,而vfork是优先执行子程序.
如上代码,是实现了一个半双工的通信,但有意思的是在45行代码中的printf中到底应不应该加入\n呢?答案是不用加的,因为加上\n后会自动清空缓冲区,我们在终端上看见的信息就会被打印出来,而这个时候我们的父进程还没有输入,会造成用户的交互感错乱。当我们不加\n时,他会保存在缓冲区中,当我们执行下一次的puts输出时会对缓冲区进行一个清空,这个时候再将我们的printf输出,这样一来的话,我们在终端上看见的信息会比较清晰的表示为父进程“说的话”,还是“子进程说的话”。