c – 进程的退出代码是否可以溢出小值?

前端之家收集整理的这篇文章主要介绍了c – 进程的退出代码是否可以溢出小值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写测试框架,在main()中我返回失败测试的数量.例如:
int main() {
    int FailedTests = runTests();
    return FailedTests;
}

这个“int”溢出了吗?当我实际返回不同于0的东西时,我可以将%ERROR_LEVEL%设为== 0吗?它取决于主机操作系统吗?通常的最大值是多少?我可以确定一个整数< 32768(2 ^ 16 - 短)将永远适合? 编辑: 我遇到了python sys.exit的问题,它使用0-127范围(差不多)所以我现在小心了

解决方法

这取决于操作系统.在Linux上,它被限制为8位,因此可以是0(表示成功)或任何不大于255的正整数.参见 _exit(2)& wait(2).

只有两个值是标准化的(按名称):EXIT_SUCCESS(通常为0)和EXIT_FAILURE(通常为1).请注意,标准定义了名称(可能还有exit(0)的行为; …)但不是它们的值.

您可以将(失败测试的)数量写入stdout或通过某个程序参数指定的某个文件.

FreeBSD在其sysexits(3)中定义了一组退出名称代码,但它们并未标准化,例如在POSIX.见POSIX documentation on exit.

猜你在找的C&C++相关文章