linux中WIFEXITED和WEXITSTATUS的含义是甚么
在Linux中,WIFEXITED和WEXITSTATUS是用于处理子进程的退出状态的宏。
下面是一个示例代码,展现了怎样使用WIFEXITED和WEXITSTATUS宏处理子进程的退出状态:
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid;
int status;
// 创建子进程
pid = fork();
if (pid == 0) {
// 子进程履行的代码
printf("子进程正在履行...
");
// 子进程正常退出,退出状态值为42
exit(42);
} else if (pid > 0) {
// 父进程履行的代码
wait(&status);
if (WIFEXITED(status)) {
printf("子进程正常退出,退出状态值为 %d
", WEXITSTATUS(status));
}
} else {
// fork失败
printf("创建子进程失败
");
return 1;
}
return 0;
}
运行以上代码,将会输出:
子进程正在履行...
子进程正常退出,退出状态值为 42
这里使用WIFEXITED宏检查子进程是否是正常退出,然后使用WEXITSTATUS宏获得子进程的退出状态值。
TOP