以下代码将等待子进程完成,然后打印其返回码。
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/