理解linux的fork函数

本文详细介绍了fork函数的作用:创建一个新进程。子进程继承父进程的执行上下文,但拥有独立的进程空间。fork函数在父进程中返回子进程ID,在子进程中返回0。通过示例代码展示了如何正确获取父进程ID。
  • 作用

          创建一个新进程。

  • 说明

          当一个进程成功调用fork函数之后,将会创建一个新进程,该进程称为主调函数的子进程。该子进程拥有自己的进程空间,并与父进程共享代码段,但拥有自己的堆栈段和数据段空间,且从父进程中复制堆栈段和数据段的信息到自己的对应空间中。尤其值得注意的是,子进程会复制父进程的执行上下文场景到自己的进程空间中。所以,fork函数返回之后,子进程和父进程都将执行fork函数后的语句。

  • 返回值

          如果失败,返回-1;反之,在主进程中,fork函数返回新创建进程的id,即子进程id;在子进程中,fork函数返回0,但是可以通过getppid()来获得父进程的id。

 

  • 示例代码

             

         

 

     其他:

     getppid()

     子进程中获取父进程的id,但是经常会获取到结果是1,这是因为子进程执行的时候,父进程已经结束了,如果需要获得预期结果,必须在主进程代码中使用wait函数,以等待子进程的状态发生变化才继续执行。

转载于:https://www.cnblogs.com/letsgollc/p/7345751.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值