返回顶部
首页 > 资讯 > 操作系统 >Linux 中fork的执行的实例详解
  • 984
分享到

Linux 中fork的执行的实例详解

详解实例Linux 2022-06-04 21:06:10 984人浏览 安东尼
摘要

Linux 中fork的执行的实例详解 先看看一段fork的程序 int main() { pid_t pid; 语句 a; pid = fork(); 语句 b;

Linux 中fork的执行的实例详解

先看看一段fork的程序


int main()
{
   pid_t pid;
 
   语句 a;   
   pid = fork();
   语句 b;
}

1.当程序运行到 pid = fork()时,这个进程马上分裂(fork的中文意思)成两个进程,我们称为父进程和子进程,子进程是父进程的副本,副本的意思是子进程把父进程的数据空间,堆和栈都复制一遍给自己用,这要求在内存给子进程分配和父进程同样大的存储空间,这样,父,子进程拥有相同的数据,但不会共享存储空间,他们只是共享正文段。

2.apue2这样说fork的执行:fork函数被调用一次,但返回两次,两次返回的唯一区别是子进程的返回值是0,而父进程的返回值则是子进程的进程ID。一直很难理解调用一次,返回两次这句话,我想这样理解可能更好:fork函数被调用一次,但执行两次,父进程执行一次返回子进程的进程ID,子进程执行一次返回0.

3.fork完后,子进程和父进程继续执行fork调用之后的语句,是先执行父进程还是先执行子进程呢?apue2给出了答案:一般来说,在fork之后是父进程先执行还是子进程先执行是不确定的。这取决于所使用的调度算法

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

--结束END--

本文标题: Linux 中fork的执行的实例详解

本文链接: https://lsjlt.com/news/18704.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作