【发布时间】:2015-10-06 21:38:24
【问题描述】:
我正在尝试获取子进程的状态。例如,当我运行不存在的命令“adjsafkl”时,系统会打印“错误”,但是当我运行文件夹也不存在的“cp sssa”时,系统不会将此命令标记为错误。我想知道有没有办法解决这个错误?
【问题讨论】:
标签: c++ system-calls
我正在尝试获取子进程的状态。例如,当我运行不存在的命令“adjsafkl”时,系统会打印“错误”,但是当我运行文件夹也不存在的“cp sssa”时,系统不会将此命令标记为错误。我想知道有没有办法解决这个错误?
【问题讨论】:
标签: c++ system-calls
您可以在 WIFEXITED 之后检查 WEXITSTATUS:
WIFEXITED:如果孩子正常终止,则返回true, 也就是说,通过调用 exit(3) 或 _exit(2),或通过从 main() 返回。
WEXITSTATUS:返回孩子的退出状态。 这由状态的最低有效 8 位组成 子进程在调用 exit(3) 或 _exit(2) 时指定的参数 或作为 main() 中的 return 语句的参数。这个宏 仅当 WIFEXITED 返回 true 时才应使用。
【讨论】: