进程八种终止方式(很重要)
----根据网络视频整理
进程的终止
0、前言
进程的返回值是给其父进程看的,main()函数的返回值,return 0; 这个0就是给父进程看的。我们在shell中启动该进程,则shell就是该进程的父进程。
在shell中查看上一进程的返回值,命令:
echo $?
倘若没有返回值,此时执行echo $? ,如上打印的是7; -----》是printf的返回值:7个字符。
1、五种正常终止方式
1)从main函数中返回------>return 0;
main作为当前进程的入口,也是当前进程的出口。
2)调用exit------>直接结束进程
man 3 exit------>exit 是库函数
返回值:是status&0377
0377 八进制数;
011 111 111----》将status的低八位数返回。
因为int是32位的有符号数。所以,返回的是有符号的char类型。即: -128至127
atexit():钩子函数
3)调用_exit 或 _Exit
man 2 _exit ----》是系统调用
如上图:调用exit会进程虚拟地址空间(虚框内)进行,资源的释放,IO的清理,再依赖_exit到内核。
而_exit,则直接调到虚框外,到内核,不执行钩子函数,IO清理。。。。。。
如上,f的值,居然出现了我们人为定义的0,1,2外的情况,
很有可能是?处的代码发生写越界,将f的空间覆盖写了。此时我们不能调用exit,这样会调用钩子函数,刷新IO,造成故障扩大。
此时,要使用_exit(),或者调用abort(),产生信号杀死进程。
4)最后一个线程从其启动例程(线程本身)中返回。
5)最后一个线程调用pthread_exit
2、三种异常终止方式
1)调用abort函数-----》发送signalabort信号给当前进程,杀死当前进程,并获得calmdown文件
2)接到一个信号并终止,例如使用ctrl+C终止进程。
3)最后一个线程对其取消请求作出响应(也是被迫终止,故算异常终止).
进程八种终止方式(很重要)相关推荐
- 【STM32】GPIO工作原理(八种工作方式超详细分析,附电路图)
STM32F1xx官方资料: <STM32中文参考手册V10>-第8章通用和复用功能IO(GPIO和AFIO ) 芯片数据手册(datasheet) STM32的GPIO介绍 STM32引 ...
- Selenium八种定位方式
八种定位方式分别是:id.name.class name.tag name .link text.partial link textxpath.css selector. 元素标签或者元素属性:id. ...
- 分享一下目前市场上常用的八种推广方式,希望对你有帮助。
游戏推广的核心本质是什么?就是新增玩家,我来给大家分享一下目前市场上常用的八种推广方式,希望对你有帮助. 一呢,做工会,作为一个工会的老大来说呢,它是有领导效应,而且公会都有公会群,将来号召大家一起换 ...
- python自动化测试xpath_selenium自动化测试:5.xpath八种定位方式
0.前言 如果可以的话,请先关注(专栏和账号),然后点赞和收藏,最后学习和进步.你的支持是我继续写下去的最大动力,个人定当倾囊而送,不负众望.谢谢!!! 1.前提 基于win10专业版64位系统+64 ...
- 一个人就需要对象之js中八种创建对象方式
前言:说,点进来是不是喜欢我的笑容!!!大家好,我叫C乐,(恩,很直不gay)一名退役的大学生,喜欢摩旅.从上课的一次css接触后,便喜欢上了前端,以下是我的一些学习笔记,站在前辈们的肩膀上,分享一些 ...
- Selenium Webdriver元素定位的八种常用方式
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...
- 转载+记录数据增广的八种常用方式
在图像的深度学习中,为了丰富图像训练集,提高模型的泛化能力,一般会对图像进行数据增强.常用的方式有:旋转.剪切.改变图像色差.扭曲图像特征.改变图像尺寸.增加图像噪声(高斯噪声.盐胶噪声). 思考:对 ...
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍(转)
[-] 一普通同步方式 二事务方式Transactions 三管道Pipelining 四管道中调用事务 五分布式直连同步调用 六分布式直连异步调用 七分布式连接池同步调用 八分布式连接池异步调用 九 ...
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍--转载
原文地址:http://www.blogways.net/blog/2013/06/02/jedis-demo.html redis是一个著名的key-value存储系统,而作为其官方推荐的java版 ...
最新文章
- 【OpenCV3】视频读写——cv::VideoCapture和cv::VideoWriter详解
- VMware Resource Pool Recommendations
- LiveVideoStackCon 2021 音视频技术大会北京站 延期通告
- ORA-32004 参数设置过时的解决办法
- 掌握Python爬虫基础,仅需1小时!
- python postgresql跨数据库操作_python 操作postgres数据库
- Android网络类型判断(2g、3g、wifi)
- 主进程退出后子进程还会存在吗?_[docker]从一个实例,一窥docker进程管理
- 15.6. Plugin Hook 设计与实现
- 如何用ZBrush快速绘制身体
- 娃哈哈的新品,为什么打动不了年轻人?
- java程序员 英文简历_Java程序员英文简历范文
- 米的换算单位和公式_小学数学单位换算公式大全.doc
- 关于控件注册和使用许可问题的解决办法
- 【踩坑】Linux java中ftp下载文件,解压文件损坏,以及图片下载打开只显示下载路径的问题
- oracle 二进制算法,二进制搜索(查找)
- 新加坡国际学校IB成绩亮眼,全球40%满分考生来自新加坡
- 华为不招android,抛弃安卓后 ARM华为也不要了:全新CPU架构曝光
- centos 7.9系统安装 GT730显卡驱动问题,请帮忙下
- [NLP论文阅读] Discourse-Based Objectives for Fast Unsupervised Sentence Representation Learning
热门文章
- php利用ob_start()清除输出和选择性输出
- ob混淆解密在线工具
- 不可不知的“云计算”
- 使用阿里云OOS搭建图床并使用PicGo上传图片
- boost---介入式指针intrusive_ptr
- 迅雷链技术沙龙:什么企业都适合用区块链吗?
- VMware Horizon 8安装部署(二)NFS共享存储
- android 播放gif动画效果,Android开发:教您如何让Gif动画动起来
- (译)开发优秀的虚拟现实体验:从开发I Expect You to Die中总结的六个要点
- Java网络斗地主小程序