有什么关系呢?哪一个是首选的,或者我应该分别在什么时候使用它们?
发布于 2012-12-02 15:43:12
exit(1) (通常为)表示终止不成功。但是,它的使用是不可移植的。例如,在OpenVMS上,exit(1)实际上表示成功。
只有EXIT_FAILURE是返回未成功终止的标准值,但在许多实现中,1也用于相同的值。
所以总结一下:
如果您想使用完全可移植代码编写代码,
用于失败情况的EXIT_FAILURE。同时,
对于成功案例,您可以使用exit(0)或EXIT_SUCCESS。
请注意,EXIT_SUCCESS或0都是相同的。
参考资料:
标准exit函数: 7.20.4.3 C99
Para 5
最后,控制权返回到主机环境。如果status的值为
zero或EXIT_SUCCESS,则返回成功终止状态的implementation-defined形式。如果status的值为EXIT_FAILURE,则返回未成功终止状态的implementation-defined形式。否则返回的状态为implementation-defined.
发布于 2012-12-02 15:44:36
对于真正可移植的代码,EXIT_FAILURE是首选。C标准只定义了三个值的含义:EXIT_FAILURE、0和EXIT_SUCCESS ( 0和EXIT_SUCCESS本质上是同义词)。
从实际的角度来看,大多数典型的系统也接受其他值。如果内存正常,Linux将允许您返回任何8位值,而Windows将允许返回16位值。除非您真的关心移植到IBM大型机、VMS等,否则您可能并不关心大多数不支持至少8位返回值的系统。
发布于 2012-12-02 15:42:01
使用EXIT_FAILURE。它是一个在整个操作系统中使用的常量。它的值可以不是1,而且在代码中更具描述性。
https://stackoverflow.com/questions/13667364
复制相似问题