为什么需要weexitstatus ?
Why is WEXITSTATUS even needed?
本文关键字:weexitstatus 为什么 更新时间:2023-10-16
下面的代码将等待子进程完成,然后打印其返回代码。
int status;
wait(&status);
cout << "return code = " << WEXITSTATUS(status) << endl;
为什么返回代码不能存储在int变量中?为什么必须用函数WEXITSTATUS进行转换?未转换的int变量的值表示什么?
int
保存的不仅仅是退出代码-它还存储有关进程如何终止的信息,例如,如果它被发出信号(WIFSIGNALED
),或者如果exit()
被调用(WIFEXITED
),等等。
W
宏用于从int
中提取各种信息。
status
不仅包含进程的返回值,还包含为什么 wait(2,3p)
调用返回(这可能并不总是进程的正常退出)。各种W*()
宏用于将返回值分解为其组成部分。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 为"adjacent"变量赋值时出现问题
- C++为构建时间获取QDateTime的可靠方法
- 努力将整数转换为链表。不知道我在这里做错了什么
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 为char数组调整zlib-zpipe
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 如何在c++中为模板函数实例创建快捷方式
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- #为""定义宏;静态";针对不同的上下文
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 在大小为 10 的 char 数组中输入超过 10 个字符的字符串并输出时,它会显示整个数组而不是前 10 个数组.为什