C++ 如何使用waitpid()获取子进程的状态?

C++ 如何使用waitpid()获取子进程的状态?,c++,system-calls,C++,System Calls,我正在尝试获取子进程的状态。例如,当我运行“adjsafkl”这一不存在的命令时,系统会打印“错误”,但当我运行“cp sssa”这一文件夹也不存在时,系统不会将此命令标记为错误。我想知道是否有办法修复此错误?您可以在妻子退出后检查WEXITSTATUS: WIFEXITED:如果孩子正常终止,则返回true, 也就是说,通过调用exit(3)或_exit(2),或从main()返回 WEXITSTATUS:返回子级的退出状态。 这由状态的最低有效8位组成 在对退出(3)或_退出(2)的调用中指

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

您可以在妻子退出后检查WEXITSTATUS:

WIFEXITED:如果孩子正常终止,则返回true, 也就是说,通过调用exit(3)或_exit(2),或从main()返回

WEXITSTATUS:返回子级的退出状态。 这由状态的最低有效8位组成 在对退出(3)或_退出(2)的调用中指定的子级的参数 或作为main()中返回语句的参数。这个宏 仅当WIFEXITED返回true时才应使用


您可以在妻子退出后检查WEXITSTATUS:

WIFEXITED:如果孩子正常终止,则返回true, 也就是说,通过调用exit(3)或_exit(2),或从main()返回

WEXITSTATUS:返回子级的退出状态。 这由状态的最低有效8位组成 在对退出(3)或_退出(2)的调用中指定的子级的参数 或作为main()中返回语句的参数。这个宏 仅当WIFEXITED返回true时才应使用


您可以在妻子退出后检查WEXITSTATUS:

WIFEXITED:如果孩子正常终止,则返回true, 也就是说,通过调用exit(3)或_exit(2),或从main()返回

WEXITSTATUS:返回子级的退出状态。 这由状态的最低有效8位组成 在对退出(3)或_退出(2)的调用中指定的子级的参数 或作为main()中返回语句的参数。这个宏 仅当WIFEXITED返回true时才应使用


您可以在妻子退出后检查WEXITSTATUS:

WIFEXITED:如果孩子正常终止,则返回true, 也就是说,通过调用exit(3)或_exit(2),或从main()返回

WEXITSTATUS:返回子级的退出状态。 这由状态的最低有效8位组成 在对退出(3)或_退出(2)的调用中指定的子级的参数 或作为main()中返回语句的参数。这个宏 仅当WIFEXITED返回true时才应使用



谢谢你的回答,实际上我试过了,但也不起作用:(什么不起作用?如果你用错误的数据重击cp,它应该以值“1”退出。是的,但是当我添加一些参数,如“ls-ffjaskaf”时,返回值是0@TonyHello不,它不是。在我的linux风格中,它是“2”,使用“ls-ffjaskaf”然后是“echo$?”.我知道了!!!你是对的!非常感谢你的回答,祝你度过愉快的一天:)谢谢你的回答,实际上我试过了,但它也不起作用:(什么不起作用?如果你用错误的数据攻击cp,它应该以值“1”退出。是的,但是当我添加一些参数,如“ls-ffjaskaf”返回值为0@TonyHello不,它不是。在我的linux风格中,它是“2”,使用“ls-ffjaskaf”然后是“echo$?”。我知道了!!!你是对的!非常感谢你的回答,祝你有一个美好的一天:)谢谢你的回答,实际上我试过了,但也没用:(什么不起作用?如果用错误的数据bash cp,它应该以值“1”退出。是的,但是当我添加一些参数如“ls-ffjaskaf”时,返回值是0@TonyHello不,它不是。在我的linux风格中,它是“2”,使用“ls-ffjaskaf”然后是“echo$?”。我知道了!!!你是对的!非常感谢你的回答,祝你有一个美好的一天:)谢谢你的回答,实际上我试过了,但也不起作用:(什么不起作用?如果你用错误的数据重击cp,它应该以值“1”退出。是的,但是当我添加一些参数,如“ls-ffjaskaf”时,返回值是0@TonyHello不,它不是。在我的linux风格中,它是“2”,使用“ls-ffjaskaf”然后是“echo$?”.我明白了!!!你说得对!非常感谢你的回答,祝你度过愉快的一天:)