【Linux】进程终止

进程退出场景

  • 代码运行完毕,结果正确
  • 代码运行完毕,结果不正确
  • 代码异常终止

可以用return 的不同的返回值数字,表征不同的出错原因++退出码++,所以进程运行正不正常我们可以查看退出码来判断;

如果进程异常,退出码就无意义;

退出码

关于return 0

main函数为什么要return这个'0'呢?

这个'0'我们将其称之为叫做进程的退出码

这个退出码,它的意义在于表征我们进程的运行结果是否正确,而其中我们用'0'一般表示的是叫做success。

因为我们想通过这个**'0'** 来告诉另一个告诉我们当前的程序--代码跑完而且结果是正确的。

最后这个'0'到哪里去了呢?

一般而言,是父进程 会关心进程的运行情况。这个return的'0'最后会被我们的父进程,即我们所对应的bash拿到。

main函数的返回值,本质表示:进程运行完成时是否是正确的结果,如果不是,可以用不同的数字,表示不同的出错原因。

指令echo $?

复制代码
echo $?

可查看进程最近一次退出时的退出码;

当我们把return 0改为return 11时,那么第一次执行**echo $?**拿到的退出码就是11

为什么第二次第三次打印就变成0了呢?

因为这一次打印的时候,最近一次执行程序就变成了echo命令,echo命令上次执行时是正确的,所以它最终对应的退出码就为0了。

查看错误码对应描述

写一个打印系统默认提供的它对应的错误码的描述:

系统提供的错误码和错误码描述是有对应关系的。

errno

当这个命令执行失败的时候,使用errno可以让用户知道了失败的原因。根据对应执行失败的个结果来再调整自己执行程序的方式。

运行结果:

exit与return

exit 在任意地方被调用,都表示调用进程直接退出

return 只表示当前函数返回,还会向后运行

exit与_exit

1.exit是库函数,_exit是系统调用

相关推荐
王道长服务器 | 亚马逊云41 分钟前
帝国CMS + AWS:老牌内容系统的新生之路
服务器·网络·数据库·云计算·aws
闲人编程1 小时前
Python在云计算中的应用:AWS Lambda函数实战
服务器·python·云计算·aws·lambda·毕设·codecapsule
zt1985q2 小时前
本地部署消息代理软件 RabbitMQ 并实现外部访问( Windows 版本 )
运维·服务器·windows·rabbitmq·ruby
wanhengidc2 小时前
云手机与云服务器之间的关系
服务器·游戏·智能手机·云计算·区块链
赖small强2 小时前
【蓝牙】BLE 数据收发实战指南(手机 App ↔ 嵌入式 Linux/BlueZ)
linux·蓝牙·bluez·bluetoothctl·dbus-monitor·central·peripheral
wit_yuan2 小时前
linux udp广播数据包实际用例
linux·服务器·udp
大聪明-PLUS2 小时前
io_uring:Linux 上的高性能异步 I/O
linux·嵌入式·arm·smarc
qq_479875432 小时前
Linux time function in C/C++【2】
linux·c语言·c++
小武~3 小时前
嵌入式网络编程深度优化 --网络协议栈配置实战指南
linux·网络·网络协议
二进制星轨3 小时前
在 Ubuntu 上快速配置 Node.js 环境(附问题说明)
linux·ubuntu·node.js