访问main函数的返回值方式与系统有关。不论是UNIX还是Windows系统,执行程序后,必须发出一个适当的echo命令。UNIX下通过键入如下命令获取状态:
echo $?
Windows下通过键入如下命令获取状态:
C:\directory> echo %ERRORLEVEL%
在进行源代码编译,或者执行命令无法确认所执行的命令是否成功执行的情况下,我们都会使用 echo $? 来进行测试。
如果返回值是0,就是执行成功;如果是返回值是0以外的值,就是失败。
之前在学习的时候只是机械的接受了这个事实,没有考虑背后的原理。
这二天在查看资料的时候突然看到了“进程生命周期”的知识:
当一个进程执行完毕时,该进程会调用一个名为_exit的例程来通知内核它已经做好“消亡”的准备了。该进程会提供一个退出码(一个整数)表明它准备退出的原因。按照惯例,0用来表示正常的或者说“成功”的终止。
也就是说我们在执行echo $?时返回的值就是进程的退出码。而且,这个退出码是由刚刚执行完的进程提供给系统内核的。
更多linux资料请查看:http://www.apelearn.com/bbs/?fromuid=4297
本文介绍了如何通过echo命令在UNIX和Windows系统中访问main函数的返回值,并解释了这些返回值的意义。0通常表示正常终止,而非0值则表示异常终止。文章还探讨了进程生命周期的概念,说明了进程结束时如何通过_exit例程向内核报告退出码。
3927

被折叠的 条评论
为什么被折叠?



