【发布时间】:2012-03-10 23:41:39
【问题描述】:
我有一个简单的程序:
int main()
{
std::cout << " Hello World";
fork();
}
程序执行后我的输出是:Hello World Hello World。为什么会发生这种情况而不是单个Hello world?我猜想子进程在幕后重新运行,并且输出缓冲区在进程之间共享或类似的东西,但是这种情况还是发生了其他事情?
【问题讨论】:
-
这就是 fork 的作用,它使用父进程的内存生成进程。 linux.die.net/man/2/fork
-
最近肯定有很多
fork()问题...嗯... -
hm.. 子进程在调用 fork 后开始执行程序代码。所以子进程不能执行fork之上的代码。
-
我不认为是采访。我认为是一个操作系统类。查看最新的 refactormycode.com:refactormycode.com/codes/2011-linux-shell