设为首页 加入收藏

TOP

关于Linux fork()函数的工作机制
2014-11-24 00:45:21 来源: 作者: 【 】 浏览:4
Tags:关于 Linux fork 函数 工作 机制

  在看Linux源代码时,遇到的fork()函数实在是太奇怪了,调用一次,竟然会对子进程和父进程分别返回两个不同的值,令人费解,一个函数怎么会有两个返回值呢。终于找到了答案。如下:


  fork()并不是进行进程切换,而是复制一个当前进程。举例来说,假如初始进程号为100,当进入fork()系统调用后,操作系统就把100号进程一模一样地复制出来一个新的进程101号。所谓一模一样,是指100号进程与101号进程所包含的任何信息,例如变量的值,空间分配,特别是正在执行的语句等等都相同。这时你的一套代码便同时在这两个进程中执行,就象一个EXE文件被同时执行了两次一样。由于两个进程下一步要执行的语句都是从fork()返回,这时操作系统就特意让100号进程中的fork()返回101,而101号进程中的fork()返回0,这样一套代码就能够分辨清楚到底是处在哪个进程中了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux Shell位置参数 下一篇Linux内存泄漏的检查方法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: