进程退出场景
- 代码运行完毕,结果正确
- 代码运行完毕,结果不正确
- 代码异常终止
可以用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是系统调用