繁体   English   中英

为什么甚至需要 WEXITSTATUS?

[英]Why is WEXITSTATUS even needed?

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

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

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

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

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

status不仅包含进程的返回值,还包含wait(2,3p)调用返回的原因(可能并不总是进程的正常退出)。 各种W*()宏用于将返回值分解为其组成部分。

暂无
暂无

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

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