`
阿尔萨斯
  • 浏览: 4185010 次
社区版块
存档分类
最新评论

linux 中的fork函数。

 
阅读更多

一个进程通过fork函数创建一个与原来进程相同的进程。返回值为进程id,如果错误返回负值。一个进程调用fork函数后,系统给新的进程分配资源, 如创建储存空间和代码空间,然后将原来的进程的所有值都复制到新的进程中,只有少数值与原来值不同。不同值为fork函数本身的返回值。对于父进程,其返回值为子进程的进程id,而在子进程中返回0。

对于父进程,其可以获得创建子进程,而对于子进程,其无创建子进程。


fork出错的两种原因:

1.当前进程数达到系统规定的上限,这时errno为EAGAIN。

2. 系统内存不足,errno的值会被设为ENOMEN。


创建进程后,两个进程基本相同,这两个进程没有固定的先后顺序,要看系统的进程调度策略。


这里说的对于子进程返回0是当创建一个新的进程时,新进程内存设置为执行到fork函数的部分,但是其调用的fork函数返回0,而子进程本身还是可以继续通过fork函数来创建子进程的。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics