Linux操作系统2-进程控制1(fork创建子进程,写时拷贝,进程退出)

上篇文章:Linux基础4-进程5(程序地址空间详解)-优快云博客

本篇重点:fork,写实拷贝,进程退出

目录

一. fork创建子进程

1.1 fork用法

1.2 fork返回值有两个的理解

 二. 进程退出码

2.1 进程退出码

2.2 进程退出码所对应的退出信息 

三. 进程退出

四. 下篇重点:进程退出和阻塞,非阻塞等待

一. fork创建子进程

1.1 fork用法

上篇文章提到,我们可以使用fork来创建一个子进程,详细用法如下:

//所需头文件
#include <unistd.h>

//函数原型
pid_t fork(void);

//返回值
//成功的情况下,在父进程返回子进程的pid,在子进程中返回0
//失败则会返回-1

//子进程不会执行父进程fork之后的代码

fork常用于:

1 一个父进程希望复制自己,让子进程执行不同的代码段(如父进程等待客户端请求,生成子进程来处理收到的请求)

2 一个进程想要执行一个不同的程序,如创建子进程进行exec(进程替换)

1.2 fork返回值有两个的理解

1 为什么父进程返回子进程的pid,而子进程返回0?

        因为fork之后,各自执行自己的代码。各自获得自己的return值

2 为什么通过if,else可以让父子进程同时执行自己的代码?

        如:上篇文章提到的代码

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
 
int global_value = 100;
int main()
{
  pid_t id = fork();
  if(id < 0)
  {
    printf("fork error!\n");
    return -1;
  }
  else if(id == 0) //子进程
  {
    int cnt = 0;
    while(1)
    {
      printf("子进程,pid:%d ppid:%d | global_value:%d,&global_value: %p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码在绒毛下流淌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值