转载于:http://blog.csdn.net/cmzsteven/article/details/49049387
在进行源代码编译,或者执行命令无法确认所执行的命令是否成功执行的情况下,我们都会使用 echo $? 来进行测试。
如果返回值是0,就是执行成功;如果是返回值是0以外的值,就是失败。
之前在学习的时候只是机械的接受了这个事实,没有考虑背后的原理。
这二天在查看资料的时候突然看到了“进程生命周期”的知识:
当一个进程执行完毕时,该进程会调用一个名为 _exit 的例程来通知内核它已经做好“消亡”的准备了。该进程会提供一个退出码(一个整数)表明它准备退出的原因。按照惯例,0用来表示正常的或者说“成功”的终止。
也就是说我们在执行 echo $? 时反回的值就是进程的退出码。而且,这个退出码是由刚刚执行完的进程提供给系统内核的。
更多linux资料请查看:http://www.apelearn.com/bbs/?fromuid=4297
时间: 2024-10-06 05:21:56