如何使用waitpid()来获取子进程的状态

how to use waitpid() to get the status of child process?

本文关键字:获取 子进程 状态 何使用 waitpid      更新时间:2023-10-16

我试图获得子进程的状态。例如,当我运行"adjsafkl"时,这是一个不存在的命令,系统打印"WRONG",但是当我运行"cp sssa"时,文件夹也不存在,但系统不会将此命令标记为错误。我想知道是否有办法修复这个错误?

您可以在WIFEXITED:

后面检查WEXITSTATUS:

WIFEXITED:如果子进程正常终止,返回true;也就是说,调用exit(3)或_exit(2),或者从main()返回。

WEXITSTATUS:返回子进程的退出状态。它由状态的最低有效的8位组成在调用exit(3)或_exit(2)时指定的子对象的参数。或者作为main()中返回语句的参数。这个宏只有当WIFEXITED返回true时才可以使用。