Linux进程终止

news2024/11/17 21:32:33

进程终止

  • 一.返回码(错误码)
    • 1.strerror
    • 2.errno
  • 二.exit
  • 三._exit
    • 1.简单使用
    • 2.exit和_exit的区别

一.返回码(错误码)

其实进程终止不外乎就以下三种情况:

在这里插入图片描述

1.strerror

我们一般关心程序为什么会失败而不关心为什么会成功。换句话说操作系统如何判断程序运行成功呢?

一般在程序末尾返回0以确定程序运行成功。而这个0会被父进程bash接收。

在这里插入图片描述

在这里插入图片描述

打印返回码

可以通过 echo $? 查看最近进程退出码。

例如将返回码改为11.

在这里插入图片描述

在这里插入图片描述

可以发现第一次返回码是11,第二次第三次就变为了0。这是因为第二三次打印的是echo命令的返回码。除了0是正确返回码,其他的都属于错误返回码,为了分辨不同错误码的意义,linux里专门有一个strerror将错误码翻译成字符串。

在这里插入图片描述

打印看看不同错误码对于的信息是怎样的

在这里插入图片描述

在这里插入图片描述

例如查找一个不存在的文件,系统会直接显示该文件不存在。

在这里插入图片描述

这是ls查找不成功返回2错误码,再有对应转化打印出来。

2.errno

errno是C语音提供的一个全局变量,它保存着最近一次执行程序的错误码。

在这里插入图片描述

打印errno就可以把最后错误的错误码打印出来,并且可以当作返回码返回给父进程。

二.exit

退出程序我们可以直接return,也可以使用exit函数。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

那么return和exit有什么区别呢?

例子

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

exit在任意位置被调用都标志着该进程直接退出。而return在其他函数中代表函数结束,在main函数里代表进程退出。

三._exit

1.简单使用

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.exit和_exit的区别

注意这里打印没有\n,而对于linux来说,如果printf没有加\n,那么它会先在缓存区里,等程序执行完毕后再打印,也就是说要先休眠一秒再打印

在这里插入图片描述

在这里插入图片描述

接下来同一份代码,将exit改为_exit看看。

在这里插入图片描述

在这里插入图片描述

可以发现它 并没有将缓冲区里的数据打印出来。

在这里插入图片描述

_exit是系统接口,它会直接在系统层面将进程终止,exit是库函数先会将文件等内容刷新在调用_exit

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

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

相关文章

[管理与领导-122]:IT人看清职场中的隐性规则 - 18- 一半佛一半魔,一半君子一半小人,阴阳互转,生生不息,儒、释、道、法,一个不能少

目录 一、太极阴阳图:阴阳互转,生生不息 1.1 阴阳互转,生生不息 1.3 职场中儒、释、道、法 二、职场中的阴阳:君子与小人,善与恶 2.1 职场中的阴阳:君子与小人 2.2 职场中的阴阳:谁不是一…

LRC2024:Lightroom Classic 2024 (WinMac)

Lightroom Classic是一款由Adobe公司开发的数字图像处理和管理工具。它以强大的照片调整、处理、管理和分享功能而著称,被认为是专业摄影师的必备利器。 主要特性如下: 增强的校正工具:Lightroom Classic提供了丰富的照片校正工具&#xff0…

交换机端口灯常亮 端口up状态 服务器设置ip交换机获取不到服务器网卡mac地址 不能通信

环境: 深信服防火墙 8.0.75 AF-2000-FH2130B-SC S6520X-24ST-SI交换机 version 7.1.070, Release 6530P02 问题描述: 交换机一个vlan下有3台服务器,连接端口2、3、4,2和3连接的服务器正常,交换机3端口灯常亮 端口up状态 服务器自动获取不了地址,改为手动设置ip后,交…

冷笑话-1

代码检视时,程序员A看着下面的代码,疑惑地问程序员B:“为什么不用重载?” class MyClass {public MyClass queryById(long id) { //......}public MyClass queryByName(String Name) { //......}public MyClass queryByIdAndNam…

2023CANN训练营第二季——Ascend C算子开发(入门)——基础概念

第一章 Ascend C 算子开发入门 一、基础概念 1.Ascend C 概念:Ascend C是CANN针对算子开发场景推出的编程语言,原生支持C和C标准规范,最大化匹配用户开发习惯;通过多层接口抽象、自动并行计算、孪生调试等关键技术,极大提高算子…

Java并发编程常见面试题总结

梳理Java并发编程相关的面试题,主要参考《JAVA并发编程实战》(Brian Goetz, Joshua Bloch, David Holmes, Tim Peierls, Joseph Bowbeer, Doug Lea 著, 韩锴, 方妙 译)一书,其余部分整合网络相关内容。注意,关于Java基础相关的面试题可以参考…

‘conda‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

原因:环境变量没有正确添加解决:我的电脑—右键属性—高级系统设置—环境变量—系统变量—Path—双击进入—新建,去安装Anaconda的目录下,找到Library中的bin,将此时的路径粘贴到此处

Python学习第3天-第一个Python程序

文章目录 前言一、创建项目二、创建程序总结 前言 下面给大家展示下经典的Hello World! 一、创建项目 二、创建程序 print("Hello World!")总结 回到顶部 学习网站 欢迎来到Python的世界!

Leetcode1833. 雪糕的最大数量

Every day a Leetcode 题目来源:1833. 雪糕的最大数量 解法1:贪心 排序 本题唯一的难点在于计数排序。 计数排序详解:C算法之计数排序 为了尽可能多的买到雪糕,我们选择从价格低的雪糕开始买,统计能够买到的雪糕…

SQL基础语法总结(查询)

学习网站:https://www.w3schools.com/sql/,提供在线编程 以下内容仅SQL常见语法总结 数据 Customers表 Products表 OrderDetails表 Orders表 Shippers表 Employees表 选择查询 SELECT select语句用来从头数据库中选择数据 SELECT column1, column2,…

基于SSM的大学校医管理系统

基于SSM的大学校医管理系统、学校医院管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登录系统 用户界面 管理员界面 摘要 大学校医管理系统…

Linux系统编程:进程part_2(信号相关)

前言 这一节内容我没怎么认真写,就是纯当草草过了一遍,这部分不是很重要当然能掌握肯定更好。 更多的是有个印象然后知道遇到这样的问题能回想起来知道怎么解决即可(虽然不太可能遇到)。 信号量 实现PV操作 P:测试并…

springboot生成二维码的正确姿势-附视频附源码

二维码的原理是什么,如何保证不重复?你有没有想过这样一件事,二维码是实现原理是什么?如何保证各个平台的二维码是唯一的?就算你的程序停止运行,但是你的二维码依然存在。设计上要保证唯一性,比…

ubuntu启动模式介绍以及如何进入单用户模式和恢复模式

Ubuntu操作系统提供了多种启动模式,每种模式都有不同的用途和功能。下面将深入介绍Ubuntu的几种启动模式: 正常启动模式(Normal boot):这是默认的启动模式,也是大多数用户使用的模式。在正常启动模式下&am…

Linux 救援模式

Linux突然坏了 第三次坏了 第一次是找不到盘,修复好了 第二次是找不到卷,但是能启动,启动界面选择救援模式,可以正常使用 第三次,尝试修复卷,启动后,找不到文件系统了,只能从光盘…

【C++】继承和多态常见的问题

一、概念考查 1、下面哪种面向对象的方法可以让你变得富有( A ) A. 继承 B. 封装 C. 多态 D. 抽象 继承机制是面向对象程序设计使代码可以复用的最重要手段,继承是类设计层次的复用。 2、( D )是面向对象程序设计语…

【MySQL】数据库数据类型

文章目录 1. 整体概要2. 数值类型(有符号) tinyint 创建表(无符号) tinyint 创建表bit类型float 类型(无符号)floatdecimal 3. 二进制类型char类型varchar类型 4. 日期时间日期时间类型 5. string 类型enum类型和set类型enum类型和set类型的查找在枚举中的查找在set中的查找 1.…

MOSFET(五):DrMos

一、简介 DrMos(Driver MOSFET)技术是 Intel 于2004年推出的服务器主板节能技术,即把 2 个MOSFET和 1 个MOS驱动器 三合一,集成在一个封装中。集成后的 DrMos 面积是分离MOSFET的 ,功率密度是其 倍,通过搭…

华为eNSP配置专题-BGP路由协议的配置

文章目录 华为eNSP配置专题-BGP路由协议的配置0、概要介绍1、前置环境1.1、宿主机1.2、eNSP模拟器 2、基本环境搭建2.1、终端构成和连接2.2、终端的基本配置 3、OSPF配置4、BGP配置4.1、BGP的基本配置4.2、BGP中路由的宣告4.3、BGP的监控 5、让PC1和PC2互通5.1、将BGP的路由引入…

【鸿蒙软件开发】ArkTS常用组件之Button

文章目录 前言一、创建按钮1.1 Button创建接口介绍1.2 创建正常的按钮,不包括子组件1.3 创建正常的按钮,包括子组件1.4 按钮的不同样式胶囊按钮(默认类型)圆形按钮普通按钮 二、添加事件2.1 .onClick事件添加事件 三、什么时候使用…