首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EXIT_FAILURE vs exit(%1)?

EXIT_FAILURE vs exit(%1)?
EN

Stack Overflow用户
提问于 2012-12-02 15:39:47
回答 5查看 92.2K关注 0票数 62

有什么关系呢?哪一个是首选的,或者我应该分别在什么时候使用它们?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-12-02 15:43:12

exit(1) (通常为)表示终止不成功。但是,它的使用是不可移植的。例如,在OpenVMS上,exit(1)实际上表示成功。

只有EXIT_FAILURE是返回未成功终止的标准值,但在许多实现中,1也用于相同的值。

所以总结一下:

如果您想使用完全可移植代码编写代码,

用于失败情况的EXIT_FAILURE。同时,

对于成功案例,您可以使用exit(0)EXIT_SUCCESS

请注意,EXIT_SUCCESS0都是相同的。

参考资料:

标准exit函数: 7.20.4.3 C99

Para 5

最后,控制权返回到主机环境。如果status的值为zeroEXIT_SUCCESS,则返回成功终止状态的implementation-defined形式。如果status的值为EXIT_FAILURE,则返回未成功终止状态的implementation-defined形式。否则返回的状态为implementation-defined.

票数 75
EN

Stack Overflow用户

发布于 2012-12-02 15:44:36

对于真正可移植的代码,EXIT_FAILURE是首选。C标准只定义了三个值的含义:EXIT_FAILURE0EXIT_SUCCESS ( 0EXIT_SUCCESS本质上是同义词)。

从实际的角度来看,大多数典型的系统也接受其他值。如果内存正常,Linux将允许您返回任何8位值,而Windows将允许返回16位值。除非您真的关心移植到IBM大型机、VMS等,否则您可能并不关心大多数不支持至少8位返回值的系统。

票数 15
EN

Stack Overflow用户

发布于 2012-12-02 15:42:01

使用EXIT_FAILURE。它是一个在整个操作系统中使用的常量。它的值可以不是1,而且在代码中更具描述性。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13667364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档