c++ - 为什么甚至需要 WEXITSTATUS?

标签 c++ process return-value

以下代码将等待子进程完成,然后打印其返回码。

int status;
wait(&status);
cout << "return code = " << WEXITSTATUS(status) << endl;

为什么不能只将返回码存储在 int 变量中?为什么必须用函数 WEXITSTATUS 进行转换?未转换的int变量的值代表什么?

最佳答案

int 不仅包含退出代码 - 它还存储有关进程如何终止的信息,例如,如果它被发出信号 (WIFSIGNALED) 或 exit() 被调用 (WIFEXITED) 等。

W 宏用于从 int 中提取各种信息。

关于c++ - 为什么甚至需要 WEXITSTATUS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5800286/

相关文章:

java - 如何从构造函数返回具有预设字段的新实例

c++ - 在 OpenCL clCreateContext 中从 void (*) (...) 到 void (*) (...) 的无效转换

c++ - 为什么我的子窗口对鼠标事件没有反应?

c# - 如何制作一个在 Windows 中无法被杀死的程序?

c# - 我如何从 64 位进程 C# 获取文件版本信息

c - 返回错误值的方法

c - 为什么此代码为所有输入打印 "1"?

c++ - 如何在 Windows 中重定向 std::cout 和 printf

c++ - 将一个容器的迭代器复制到另一个迭代器容器中,然后再从第一个容器中删除它

linux - 在Linux调度器中,包含多个线程的不同进程如何获得公平的时间配额?