Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 等待函数中的状态值和wexitstatus_C_Process_Wait_Status_Wexitstatus - Fatal编程技术网

C 等待函数中的状态值和wexitstatus

C 等待函数中的状态值和wexitstatus,c,process,wait,status,wexitstatus,C,Process,Wait,Status,Wexitstatus,我在unix系统功能的实现中读到了这一点(问题8.22): 我不明白这里的if条件是什么:WEXITSTATUS返回的状态是否与等待中的状态相同?如果没有,那么两者之间的区别是什么?状态值是一种复合值,包括进程“退出状态”和其他位。在Linux手册页中,关于WEXITSTATUS的内容如下: 如果WIFEXITED(stat_val)的值非零,则此宏将计算 子进程处理的状态参数的低阶8位 传递给_exit()或exit(),或子进程返回的值 从main() int status;

我在unix系统功能的实现中读到了这一点(问题8.22):


我不明白这里的if条件是什么:WEXITSTATUS返回的状态是否与等待中的状态相同?如果没有,那么两者之间的区别是什么?

状态值是一种复合值,包括进程“退出状态”和其他位。在Linux手册页中,关于WEXITSTATUS的内容如下:

如果WIFEXITED(stat_val)的值非零,则此宏将计算 子进程处理的状态参数的低阶8位 传递给_exit()或exit(),或子进程返回的值 从main()

        int status;
        if (wait(&status) > 0) {
             if (WIFEXITED(status)) {
                 return WEXITSTATUS(status);
             } else {
                 return status;
             }
        }