我们知道 main 函数是程序的入口点,但现实上 main 函数只是用户级代码的入口。main 函数自己也是由其他函数调用的。例如,在 Visual Studio 2013 中,main 函数是由名为 __tmainCRTStartup 的函数调用的,而 __tmainCRTStartup 函数又是通过加载器由操作系统调用的。换句话说,main 函数是间接由操作系统调用的。
既然 main 函数是间接由操作系统调用的,那么当 main 函数执行完毕时,应当向操作系统返回相应的退出信息。这些退出信息是通过 main 函数的返回值作为退出码返回给操作系统的。通常情况下,返回值为0表示程序乐成执行完毕,而非0表示程序执行过程中出现了错误。这也是为什么我们在 main 函数的最后一般会返回0。
当代码运行时,它会酿成一个进程。进程竣事时,main 函数的返回值现实上就是该进程的退出码。我们可以利用 echo $? 下令来检察最近一次进程退出时的退出码信息。
例如下面这个代码: