繁体   English   中英

在程序内部使用 EXIT_SUCCESS / EXIT_FAILURE 进行错误报告是否可以?

[英]Is it OK to use EXIT_SUCCESS / EXIT_FAILURE for error reporting inside a program?

假设我有一个程序,其中有一个类似于errno (名为project_error )的全局变量,我在其中存储了过去发生的确切错误,但我还希望函数返回一个简单的 OK/NOK 状态以简化错误处理,这样我只在返回 NOK 时检查project_error

如果我使用在<stdlib.h>定义的标准宏是否可以,或者最好定义我自己的,因为那些通常意味着你实际上退出了程序?

它可能是基于意见的,但我想知道是否有任何事实上的标准或惯例。

以这种方式返回的错误可能是“输入越界”类型的无害错误,它只是拒绝用户输入并再次询问,或者是致命错误,需要调用者进行清理、发出警告并退出。 这是通过读取全局变量而不是返回值来决定的。

正如您所说的 EXIT_SUCCESS (0) 和 EXIT_FAILURE (1) 只是 stdlib 定义的宏,它们在 POSIX 系统上被设置为这些整数,以便调用父进程对程序的退出状态有一个模糊的了解( glibc 参考)。 我会说,因为这是供您自己内部使用的,如果您使用这些确切的值,只会让读者感到困惑。 更好地定义您自己的名称,以使您仅在内部明确使用这些错误的意图。

编辑:因为评论者正确地发现了我在上面括号中写的实际整数值在 POSIX 系统上也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM