【Linux】fork函数的基础知识

文章目录

  • 前言
  • 一、fork的返回值
  • 二、常见问题
    • 1.为什么fork要给子进程返回0,给父进程返回子进程pid?

    • 2.一个函数返回两次值怎么理解?

    • 3.一个变量怎么会有不同的内容?

    • 4.fork函数干了什么?


前言

fork初识:

1.fork有两个返回值。

2.父子进程代码共享,数据各开辟空间,私有一份(写实拷贝)。


我们在运行test的时候,发现多了一个进程,这个进程就是由fork分支出来的子进程,进程之间是相互独立的。

一、fork的返回值

fork()函数会创建一个新的进程,该函数的返回值是一个整数。在父进程中,fork()的返回值是子进程的PID(进程ID),而在子进程中,fork()的返回值是0。

因此,fork()函数的返回值可以用于判断当前代码运行在父进程还是子进程中。如果fork()返回一个非零值,那么代码运行在子进程中;如果fork()返回0,那么代码运行在父进程中。

二、常见问题

1.为什么fork要给子进程返回0,给父进程返回子进程pid?

**返回不同的返回值,是为了区分让不同的执行流执行不同的代码块。**父进程接收子进程pid是因为父进程可能有多个子进程,为了区分所以用他们特有的pid来作为返回值,而子进程直接用getppid()这个函数就能获得父进程的pid所以子进程返回的是0.

2.一个函数返回两次值怎么理解?

3.一个变量怎么会有不同的内容?

4.fork函数干了什么?

创建了子进程,对子进程创建了PCB,用父进程对应的字段来初始化子进程,并且实现了代码的共享。


相关推荐
无限码农25 分钟前
Linux上通过cmake编译uchardet
linux·运维·服务器
运维大师2 小时前
【Linux运维极简教程】06-网络配置与管理
linux·运维
007张三丰2 小时前
软件测试专栏(15/20):REST Assured接口自动化框架实战
运维·自动化·jenkins·接口自动化·rest·assured
ACP广源盛139246256732 小时前
IX8024@ACP# 搭配此芯 AI 服务器 + 爱芯元智产品完整方案
大数据·运维·服务器·人工智能·分布式·嵌入式硬件
Hiyajo pray3 小时前
SDN 访问控制性能调优方法
服务器·网络·网络安全
探索云原生4 小时前
终于搞懂 Kueue:5 个核心对象一次讲透
linux·docker·ai·云原生·kubernetes
huainingning5 小时前
交换机通过ftp下载文件或者传输文件到ftp服务器
运维·服务器·网络
An_s5 小时前
机器学习python之识别图中物品信息
java·linux·开发语言
edwarddamon5 小时前
CentOS 7 国内安装 Docker CE(阿里云源)
运维
Championship.23.246 小时前
Linux 3.0 LVDS驱动开发详解
linux·运维·驱动开发·lvds