【主函数参数和 fork 讲解】

主函数参数

main函数是有参数的,而且主函数可以在运行时传参数,举例如下:

【编写main.c文件】

主函数的三个参数:**参数个数,参数内容,环境变量**

Alt在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

也可以这样写:环境变量最后一个元素为Null

在这里插入图片描述在这里插入图片描述

fork

下面展示两种代码的差异:

第一种情况:hello直接出现,3秒之后结束进程
在这里插入图片描述
第二种情况: 3秒之后出现hello
在这里插入图片描述

主要原因是:printf是通过缓冲区显示的,但是printf(缓冲区)能够打印出来的三种情况:缓冲区满、强制刷新、程序结束,没有这三种情况,就不能打印出来。

在这里插入图片描述

fork复制进程
在这里插入图片描述

子进程fork返回值是0,主进程不确定,但是是一个大于0的值

在这里插入图片描述

  • 复制后的子进程,是从fork后面开始进行的,不会一直fork。 子进程的n还是0,所以还是从0开始的。
  • 子进程返回的fork值是0,子进程和父进程唯一的差异在fork处
  • 父子进程不在同一块物理内存上,但是逻辑地址相同。(逻辑地址:是指程序在虚拟内存的地址,不代表在计算机中的真实位置。
  • 物理地址:是指程序在计算机物理内存的实际地址)

举个例子:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
僵死进程

  • 子进程先结束,父进程没有结束,子进程无法获取父进程的退出码,子进程就是僵死进程。

  • 如果父进程先结束,子进程会变成**孤儿进程,**系统会将子进程交给新的父进程,那个父进程一定会等子进程结束后才结束。

  • 如果自己写的进程成为僵死进程了,系统也没有分配新的父进程,可以查询帮助手册,找退出码。 在 Unix/Linux 系统中,可以使用 wait 或 waitpid 函数等待子进程的终止,并获取其退出状态。
    在这里插入图片描述

僵死进程了解产生原因和名词解释就好,如果想要深入了解,代码演示,可以看这篇博客:
僵死进程的产生和处理方法
给个题目:练习一下:8个,是从缓冲区里面复制的
在这里插入图片描述
下面这个是3个
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/763475.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS判断一个元素是否在可视区域中

JS如何判断一个元素是否在可视区域中&#xff1f;下文分解。 方法一&#xff1a;利用 scrollTop、offsetTop、clientHeight 的关系 /*** 利用 offsetTop < clientHeight scrollTop;* param element* returns*/ export const isInViewPort element > {// clientHeight…

wma格式可以用u盘插音响播放吗?

WMA&#xff08;Windows Media Audio&#xff09;文件格式是由微软公司创建的一种音频文件标准。大多数现代车载音频系统、MP3设备、音响设备都支持播放WMA文件。但是&#xff0c;一些老旧的车载音频系统或设备可能不支持WMA格式&#xff0c;可以将WMA文件转换为更普遍支持的格…

白话transformer(四):整体架构介绍

transformer现在是最主流的深度学习框架&#xff0c;尤其是大模型的流程让transformer的作用更加凸显&#xff0c;他可以对话、分类、生成文本等功能&#xff0c;那么他到底是如何工作的呢。 B站视频 1、背景知识铺垫 1.1、生成式模型 相信大家在使用手机聊天的输入法时&am…

【C++】string类模拟实现

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. 前言2. 构造函数和析构函数3. 遍历3.1 下标[]3.2 迭代器 4. Modifiers4.1 push_back和append4.2 4.3 insert4.4 erase4.5 swap 5.Capacity5.1 resize5.2 clear 6. 深浅拷贝6.1 浅拷贝&#xff08;值拷贝&#xff0…

C语言puts( )函数和 printf( )函数在输出字符串时有何区别?

一、问题 puts( )函数是专门⽤于字符串输出的函数&#xff0c;printf( )函数的&#xff05;s 格式也可以输出字符串&#xff0c;⼆者是否完全相同&#xff1f;怎样区分使⽤这两个函数&#xff1f; 二、解答 (1&#xff09;printf( )函数可以输出各种类型&#xff0c;并且⼀次…

wy的leetcode刷题记录_Day92

wy的leetcode刷题记录_Day92 声明 本文章的所有题目信息都来源于leetcode 如有侵权请联系我删掉! 时间&#xff1a;2024-3-22 前言 目录 wy的leetcode刷题记录_Day92声明前言2617. 网格图中最少访问的格子数题目介绍思路代码收获 695. 岛屿的最大面积题目介绍思路代码收获 2…

Springboot vue elementui 超市管理系统

Springboot vue elementui 超市管理系统 点击获取项目全套源码

适合新生儿的奶瓶有哪些?五款高分新生儿奶瓶分享!

每一个有新生儿的家庭都一定会挑选奶瓶&#xff0c;但是因为市面有太多品牌和款式&#xff0c;让大家难以挑选&#xff0c;更为重要的是还有可能会不小心选到劣质的产品&#xff0c;不仅奶嘴的仿真度差、易胀气&#xff0c;还可能高温消毒后散发有害物质&#xff01;那么新生儿…

python基础知识(四)

if not x % 2 > if x % 2 ! 0 Python HTML和XML解析的第三方库是 Beautifull Soup 不属于软件设计原则是 自底向上 用来表示实体之间联系的是 二维表 当对关系R和S进行自然连接时&#xff0c;要求R和S含有一个或者多个共有的 属性&#xff08;关系就是二维表&#xff09…

仿muduo库实现one thread one loop式并发服务器

文章目录 一、项目简介 二、项目整体认识 2、1 HTTP服务器 2、2 Reactor模型 三、预备知识 3、1 C11 中的 bind 3、2 简单的秒级定时任务实现 3、3 正则库的简单使用 3、4 通用类型any类型的实现 四、服务器功能模块划分与实现 4、1 Buffer模块 4、2 Socket模块 4、3 Channel模…

算法系列--递归(2)

&#x1f495;"什么样的灵魂就要什么样的养料&#xff0c;越悲怆的时候我越想嬉皮。"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;算法系列–递归(2) 前言:今天带来的是算法系列--递归(2)的讲解,包含六个和二叉树相关的题目哦 1.计算布尔⼆叉树的…

就业班 第二阶段 2401--3.21 day3 备份

一、逻辑备份 备份的是建表、建库、插入等操作所执行SQL语句&#xff0c;适用于中小型数据库&#xff0c;效率相对较低。 本质&#xff1a;导出的是SQL语句文件 优点&#xff1a;不论是什么存储引擎&#xff0c;都可以用mysqldump备成SQL语句 缺点&#xff1a;速度较慢&…

005——串口移植(基于鸿蒙liteos-a)

目录 一、 Liteos-a中串口的使用 1.1 内核里打印 1.2 APP控制台 ​编辑 1.2.1 /dev/console 1.2.2 /dev/serial 1.2.3 /dev/uartddev-0 1. 总体介绍 2. device_t 3. drvier_t 4. uartdev_fops 1.2.4 uart_ops 二、 鸿蒙串口内部的一些机制&#xff08;流水账&…

K8S node磁盘清理

K8S磁盘清理 K8S的部署形式相比传统非容器部署&#xff0c;会消耗更多的磁盘&#xff0c;在运行时可能会把磁盘占满。 这里以使用containerd运行时的K8S node为例&#xff0c;说明磁盘会用到那里了和如何清理磁盘 通用处理 磁盘清理: du -h --max-depth6 / 2>/dev/nul…

docker学习笔记 三-----docker安装部署

我使用的部署环境是centos 7.9 1、安装依赖工具 yum install -y yum-utils device-mapper-persistent-data lvm2 安装完成如下图 2、添加docker的软件信息源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo url地址为如…

QGraphicsView的使用,view坐标,scene坐标,item坐标

Graphics View绘图构架 QGraphicsScene&#xff08;场景&#xff09;&#xff1a;可以管理多个图形项QGraphicsItem&#xff08;图形项&#xff09;&#xff1a;也就是图元&#xff0c;支持鼠标事件响应。QGraphicsView&#xff08;视图&#xff09;&#xff1a;关联场景可以让…

数据科学详解与人工智能关系

一、数据科学是什么 数据科学是一个混合交叉学科&#xff0c;它涉及数学、统计学、计算机科学和领域知识&#xff0c;旨在从数据中提取有意义的信息和知识。数据科学家利用各种技术和工具来收集、处理、分析和解释大量的数据&#xff0c;以便为组织和企业做出决策和预测。数据科…

Vue3:路由组件的props用法

一、情景说明 路由组件间&#xff0c;传递参数时&#xff0c;更优雅的写法 Vue3的写法和Vue2的写法基本相似&#xff0c;就是接收参数的组件&#xff0c;略有不同 Vue2的写法&#xff1a;https://blog.csdn.net/Brave_heart4pzj/article/details/136283870 二、案例 1、传参…

canvas跟随鼠标移动画带透明度的线

提示&#xff1a;canvas画线 文章目录 前言一、带透明度的线二、试错&#xff0c;只有lineTo的时候画&#xff0c;只有最后地方是透明度的三、试错&#xff0c;只存上一次的点&#xff0c;线会出现断裂的情况总结 前言 一、带透明度的线 test.html <!DOCTYPE html> &l…

小小知识点-produce, product, production.

produce做动词的意思就不多说了。主要区别这三个名词&#xff1a;produce, product, production.produce v.生产; 制造; 引起; 产生; 招致; 出示; 制作; 导演; 播放; 播送; 使(线段)延长&#xff1b;n.产品; 物产; 成果; 结果&#xff1b; product n. 作品; 产品; 积; 结果; 产…