我正在试图了解WEXITSTATUS(status)
是如何工作的。 我遇到了一段代码,其中WEXITSTATUS(status)
的返回值被添加到variables中。
这里是片段:
waitpid(-1, &status, 0); counter += WEXITSTATUS(status);
如何计算WEXITSTATUS
的返回值?
WEXITSTATUS()
是一个宏。
对于它是如何工作的,你可能会喜欢在C编译器附带的头文件中查找它。
从一个C编译器到另一个C编译器的实现可能不同。
waitpid()
的POSIX规范中的逐字:
如果WIFEXITED(stat_val)的值不为零,则此宏评估为子进程传递给_exit()或exit()的状态参数的低8位,或者子进程从main ()。
只有代码的作者和希望存在的文档才知道添加特定程序的返回码(s?)的动机。
WEXITSTATUS()是一个提取并返回孩子退出状态的宏。
#include <sys/wait.h> int statval, exstat; pid_t pid; pid = wait(&statval); exstat = WEXITSTATUS(statval);
以上是什么是回报的例子。