fork()创建一个新进程,子进程从父进程的当前状态开始执行.
这是我fork()在Linux中所知道的.
所以,相应的代码如下:
int main() {
printf("Hi");
fork();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
需要按照上述方式仅打印一次"Hi".
但是在使用gcc编译的Linux中执行上述操作时,它会打印两次 "Hi" .
有人可以向我解释实际使用中发生了什么,fork()以及我是否理解了fork()正确的工作?
可能重复:
在linux gcc中使用fork()
#include <stdio.h>
void main ()
{
printf ("ciao");
fork ();
}
Run Code Online (Sandbox Code Playgroud)
我有一些关于C优化的想法,但我不确定.希望你知道答案.