计算机程序设计中的分叉函数
返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。
这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本(是副本人所以内存不共享)
打印出来三个A,,创建了三个进程,,如
int main(int argc,char*crgv[],char*envp[])
{
for(int i=0;i<2;i++)
{
fork();
printf("A\n");
}
exit(0);
}
这个会打印出6个A,
以上代码可以拆分成如下代码
int main()
{
int i=0;
fork();
printf("A\n");
int i=1;
fork();
printf("A\n");
exit(0);
}
这样就很好分析了!!!
这个代码是把上面的
fork();和printf()两个函数换了位置,,,结果输出三个A;