Ahm*_*mad 2 c program-entry-point function
我以前读过C语言中的0表示错误,而1则表示true。并且已经注意到main函数返回0,但是为什么呢?如果我所有的代码都成功运行,则应返回true(1)。另一个相关的问题,我仍然不明白谁可以使用可返回值?因为没有其他函数在程序内部调用主函数,所以没有人知道我的程序是否运行良好。我有点困惑。
如果将的返回值main
解释为布尔值,则您的逻辑有意义,但事实并非如此。从初始调用返回到main
调用该exit
函数就像:它向正在运行的系统报告终止状态。
标准C指定了3种便携式出口状态:
0
,表示成功EXIT_SUCCESS
,也表示成功EXIT_FAILURE
,指示失败(最后两个是中定义的宏<stdlib.h>
。)
在Unix上,允许使用任何8位值(0 .. 255)。所有非零值都将解释为错误代码。对于任何给定的数字,没有通用的约定,只是0
代表成功和任何其他失败。
至于谁可以使用返回值:在Unix上,父进程可以使用wait
或waitpid
获取终止子进程的退出状态。
在C标准库中,执行动作的函数通常不会返回true / false状态。(测试如islower
或isdigit
做,但它们没有其他影响。)例如,remove
(删除文件)0
成功或失败时返回-1
。这也是Unix系统调用的常见模式。例如,open
成功和-1
错误时返回文件描述符(非负整数)。