Linux——进程退出
目录
一.进程退出时有三种选择:
1.1 echo $?命令:
功能: 打印距离现在最近一次执行某进程的退出码
例2代码:
例3:
例4代码:
1.3 进程运行过程中可能会出现的错误种类:
二.总结:
一.进程退出时有三种选择:
1.使用return ; 语句
2.使用 exit(); 函数
3.使用运行才会导致的错误语句,例如:段错误,除零错误
1.1 echo $?命令:
功能: 打印距离现在最近一次执行某进程的退出码
echo指令功能是打印,$?表示可执行程序退出码。
如果说把进程比作一个人(病人和正常人)的话,那么进程退出码就可以看做是病人的症状!症状的轻重缓急代表了进程运行的结果不同。
举个例子: VS编译器中写的一段C代码:
#include<stdio.h>int AddSum(int first, int to) {int sum = 0;for (int i = first; i <= to; ++i) {sum += i;}return sum;
}int main() {int ret = AddSum(0, 100);printf("ret:%d\n", ret);return 0;
}
代码解析:本段代码是通过调用一个函数去计算从0到100的相加运算。

由运行结果框可知,结果为5050,退出码为0,表明程序运行正确。
例2代码:

代码解析:本段代码是通过调用一个函数去计算从0到100的相加运算,该程序运行过程无异常,结果也对,那么退出码应当为0。
编译运行后 :

使用echo $?指令查看该可执行程序的退出码,核实为0。
例3:

本段代码的解析:用户想计算0-100的总和,但是上面函数的for循环中,i<100,所以计算出来的值是0-99的总和值,代码成功运行但结果不正确,退出码为 !0(非0)。

例4代码:

代码解析:在计算0-100的总和时,AddSum函数中出现了除零计算,那么在运行的过程中会出现除零错误,导致程序异常终止。
编译运行:

运行程序时,输出Floating point exception,且查看退出码时,为136。
1.3 进程运行过程中可能会出现的错误种类:

以上为导致进程运行出错的64种信号,每个信号都代表着导致进程再运行过程种提前终止的一种方式 。
我们上面导致进程进程终止的就是除零错误——SIGFPE信号(浮点运算错误)
二.总结:
进程退出有三种场景:
1.进程成功运行,所得结果也正确,退出码为0
2.进程成功运行,所得结果不正确,退出码为!0
3.进程运行过程中出现异常,结果无意义,退出码也无意义。
前两种方式return /exit() 可以随意设置退出码的值,即可用return 后面的数值、exit()的实参去设置退出码。
相关文章:
Linux——进程退出
目录 一.进程退出时有三种选择: 1.1 echo $?命令: 功能: 打印距离现在最近一次执行某进程的退出码 例2代码: 例3: 例4代码: 1.3 进程运行过程中可能会出现的错误种类: 二.总结ÿ…...
组长给组员派活,把组长自己的需求和要改的bug派给组员,合理吗?
组长把自己的工作派给手下,合理吗? 一位程序员问: 组长给他派活,把组长自己的需求或者要改的bug派给他。组长分派完需求之后,他一个人干两个项目,组长却无所事事,这样合理吗? 有人说…...
Spring注解开发——bean的作用范围与生命周期管理
文章目录 1.bean管理1.1 bean作用范围Scope注解 1.2 bean生命周期PostConstructPreDestroy 2.小结 1.bean管理 1.1 bean作用范围 Scope注解 不写或者添加Scope(“singleton”)表示的是单例 如何配置多例? 在Scope(“prototype”)表示的是多例 1.2 bean生命周…...
C++ > Cmake
目录 编译器 多文件编译与链接 Makefile构建系统 编译器 厂商 C C GNU gcc g main.cpp #include <cstdio>int main() {printf("Hello, world!\n");return 0; }编译器, 是一个根据源代码生成机器码的程序 g main.cpp -o a.out调用编译器程序g, 读…...
Spring的Bean的生命周期
Spring的Bean的生命周期 Spring的Bean的生命周期 Spring的Bean的生命周期 Spring的Bean的生命周期包括以下阶段: (1)实例化Instantiation(2)填充属性Populate properties(3)处理Aware接口的回调…...
在树莓派上搭建WordPress博客网站,并内网穿透发布到公网
✨个人主页:bit me👇 目 录 🐾概述💐安装 PHP🌸安装MySQL数据库🌷安装 Wordpress🍀设置您的 WordPress 数据库🌹设置 MySQL/MariaDB🌻创建 WordPress 数据库 ἳ…...
跨平台C++ Qt数据库管理系统设计与实战:从理论到实践的全面解析
跨平台C Qt数据库管理系统设计与实战:从理论到实践的全面解析 一、引言(Introduction)1.1 数据库管理系统的重要性(Importance of Database Management Systems)1.2 C和Qt在数据库管理系统中的应用(Applica…...
Ubuntu crontab定时任务
1. crontab 相关的命令: 安装:apt-get install cron 启动:service cron start 重启:service cron restart 停止:service cron stop 检查状态:service cron status 查询cron可用的命令:service …...
ChatGPT Prompt Engineering for Developers 大语言模型引导词指导手册
以下内容均整理来自deeplearning.ai的同名课程 Location 课程访问地址 https://learn.deeplearning.ai/chatgpt-prompt-eng 一、Guidelines for Prompting 引导语的编写原则 Prompting Principles 引导语编写原则 Principle 1: Write clear and specific instructions编写清晰…...
【Vue】二:Vue核心处理---模板语法
文章目录 1.模板语法---插值2.模板语法---指令语法2.1v-once2.2 v-bind2.3 v-model2.4 v-on 3.MVVM4.事件回调函数中的this 1.模板语法—插值 {{可以写什么}} (1)在data中声明的变量,函数 (2)常量 (3&…...
windows环境下nginx+ftp服务器搭建简易文件服务器
这里写目录标题 1,前言2,FTP服务器搭建3,nginx安装 1,前言 几种文件服务器的对比 1,直接使用ftp服务器,访问图片路径为 ftp://账户:密码192.168.0.106/31275-105.jpg不采用这种方式,不安全容易…...
【数据结构与算法】图的概述(内含源码)
个人主页:【😊个人主页】 系列专栏:【❤️数据结构与算法】 学习名言:天子重英豪,文章教儿曹。万般皆下品,惟有读书高——《神童诗劝学》 系列文章目录 第一章 ❤️ 学前知识 第二章 ❤️ 单向链表 第三章…...
SAP MM 根据采购订单反查采购申请
如何通过采购订单号查询到其前端的采购申请号。 首先从采购申请的相关报表着手,比如ME5A, 发现它是可以满足需求的。 例如:如下的采购订单, 该订单是由采购申请10003364转过来的。 如果想通过这个采购订单找到对应的采购申请,在…...
C语言程序设计题/C语言计算机二级考前押题版
C语言程序设计题/C语言计算机二级考试押题版 与 数位 和 数 有关 求max与min 任意四个数 运算符和表达式版本 #include <stdio.h> int main( ) {int a,b,c,d;int max,min;printf("please input 4 integers:");scanf("%d%d%d%d", &a, &b, …...
Canonical标签在SEO中重要作用
canonical标签是很多搜索引擎都支持的一个标签,它的作用是标记某一网页的唯一url地址。这样做的目的是保证我们的某一网页在搜索引擎中只有一个唯一的地址。 Canonical标签对于一些入行不久的人来说,可能会有些陌生。但这个标签是很多搜索引擎都支持的标…...
【Linux之进程间通信】06.Linux进程通信 - 共享内存
【Linux之进程间通信】 项目代码获取:https://gitee.com/chenshao777/linux-processes.git (麻烦点个免费的Star哦,您的Star就是我的写作动力!) 06.共享内存 共享内存是Linux进程间的通信方式之一 创建共享内存函数…...
oracle安装
服务端安装(公司中不需要,只安装客户端就行) 1、挂载一个Windows系统 双击vmx文件 启动 2、网络配置 添加一个网络 自己电脑看控制面板是否添加虚拟网卡 查看连接的网络,ip地址不能为1,为1就自己修改,…...
CSS样式的三种引入方式及优先级
说明:网页开发有三种技术,分别是html、css和js,分别对应页面的结构、表现和动作。css样式引入,是指把对页面的渲染作用到html上,有以下三种方式:行内式、内嵌式和外联式。 第一种:行内式&#…...
Linux第二天
上传 scp -r 本地文件路劲 用户名目标主机地址:路径 下载:scp -r 用户名目标主机地址:路径 本地目录 ls -A /root //查看root文件下所有的隐藏文件 命令:ls 选项: -l:查看文件属性 -h:文…...
微服务和领域驱动
一、微服务 1.1 什么是微服务 微服务就是一些协同工作的小而自治的服务。 关键词: 小而自治 -- 小 “小”这个概念,一方面体现在微服务的内聚性上。 内聚性也可以称之为单一职责原则:“把因相同原因而变化的东西聚合到一起,…...
别再死磕 SEO 了,2026 年是 GEO 的天下:如何让大模型在搜索结果里“翻你的牌子”?
1. 为什么 2026 年你的 SEO 流量断崖式下跌?如果你最近发现网站的 GA(Google Analytics)或百度统计里的自然流量在掉,别急着骂运营。看看现在的搜索习惯:用户不再去翻第二页的蓝色链接,而是直接在 Perplexi…...
小产能起步第一台设备怎么选?5-100MW半自动产线入门,曜华激光为你指路
对于刚踏入光伏组件制造领域的中小厂商而言,从一条小产能半自动产线起步,是务实而理性的选择。然而,面对从电池片到组件的十几道工序,第一台设备该选什么?本文从入门角度,梳理设备选型的优先级与判断标准。…...
Shell脚本进程锁机制解析
1. 命令行参数解析 (第9-21行)12345while getopts "m:o:r:" arg; docase $arg in# ... 参数处理逻辑(代码中省略了具体内容)esacdone使用 getopts 解析命令行参数支持三个带参数的选项:-m、-o、-r具体处理逻辑在代码中被省略了2. 文…...
1.3 装饰器与上下文管理器
📘 第一阶段 1.3 装饰器与上下文管理器学习目标:彻底掌握 Python 中用于代码复用和资源管理的高级特性,理解它们在 FastAPI 中的底层应用。 预计用时:2 天(每天约 3 小时) 重要程度:⭐⭐⭐⭐&a…...
颠覆式Alienware设备控制:500KB轻量工具实现10倍性能提升与个性化体验
颠覆式Alienware设备控制:500KB轻量工具实现10倍性能提升与个性化体验 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools 当你启动Alienware电…...
后端消息投递可靠性:基于 RabbitMQ 的“双重防线-幂等闭环”模式
后端消息投递可靠性:基于 RabbitMQ 的“双重防线-幂等闭环”模式 一、 发送核心:rabbitTemplate.convertAndSend 重载全览 在 RabbitMQ 的“中控-工人”模式中,中控(生产者)发送指令的形式决定了任务的可靠性深度。 1.…...
公共部门人力资源管理、公共行政学、公共经济学(自考速记核心概念)
公共部门人力资源管理、公共行政学、公共经济学(自考速记核心概念) 第一页(核心基础规划与获取) 一、核心基础概念(必背) 1.公共部门人力资源管理:公共部门(政府、事业单位、非营…...
大数据领域中分布式计算的性能优化策略
大数据领域中分布式计算的性能优化策略:解锁大数据处理的高效密码 关键词:大数据、分布式计算、性能优化、数据分区、负载均衡、通信优化 摘要:在大数据时代,分布式计算成为处理海量数据的关键技术。然而,如何优化分布…...
突破音频格式壁垒:QMCDecoder开源工具实现无损音频自由转换
突破音频格式壁垒:QMCDecoder开源工具实现无损音频自由转换 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 问题:当音乐被数字锁链束缚——QMC格式的…...
hello-uniapp自定义组件开发:打造属于你的UniApp组件库
hello-uniapp自定义组件开发:打造属于你的UniApp组件库 【免费下载链接】hello-uniapp uni-app框架演示示例 项目地址: https://gitcode.com/gh_mirrors/he/hello-uniapp UniApp作为一款优秀的跨平台开发框架,让开发者能够使用Vue.js语法编写一次…...
