这与您最初的想法完全不同。输出缓冲区不是共享的-执行fork时, 两个进程都会获得同一缓冲区的副本
。因此,在分叉之后,两个进程最终都会刷新缓冲区并将内容分别打印到屏幕上。
这 仅是因为cout是缓冲的IO 。如果使用了cerr(未缓冲),则应该只看到一次该消息,即前叉。

这与您最初的想法完全不同。输出缓冲区不是共享的-执行fork时, 两个进程都会获得同一缓冲区的副本
。因此,在分叉之后,两个进程最终都会刷新缓冲区并将内容分别打印到屏幕上。
这 仅是因为cout是缓冲的IO 。如果使用了cerr(未缓冲),则应该只看到一次该消息,即前叉。