#include <iostream>
#include <unistd.h>
#include <stdlib.h>
int main() {
std::cout << 1;
fork();
exit(0);
}
在将流输入到
cout
之后,fork
函数被调用,但该代码却打印11。为什么?如果向cout
添加std::endl
,为什么该代码只打印1?#include <iostream>
#include <unistd.h>
#include <stdlib.h>
int main() {
std::cout << 1 << std::endl;
fork();
exit(0);
}
fork()
在标准容器上可能会造成的混乱。千万不要这样做。 - Lightness Races in Orbitfork()
的工作方式,它可以是非常有用的行为。它对于设置进程间通信管道至关重要。我不认为它会对标准容器造成破坏。在fork()
之后,您将拥有两个分离的进程,它们具有相同的内存镜像,但在不同的内存空间中。 - Rob K