【发布时间】:2011-03-31 14:32:22
【问题描述】:
fork()创建一个新进程,子进程从父进程的当前状态开始执行。
这是我对 Linux 中 fork() 的了解。
所以,相应的代码如下:
int main() {
printf("Hi");
fork();
return 0;
}
只需要按上述方式打印一次“Hi”。
但是在使用 gcc 编译的 Linux 中执行上述操作时,它会打印“Hi”两次。
有人可以向我解释一下使用 fork() 时实际发生的情况以及我是否正确理解了 fork() 的工作原理吗?
【问题讨论】:
-
如果你在你的 fork 之前添加一个
fflush(stdout);那么它会做你期望它做的事情。