Boost Process 终止进程的退出代码
Boost Process exit code of terminated process
终止进程的 return 代码应该是什么?我 运行 "bash -c \"while true; do true; done\""
并调用 terminate
。在 boost 1.65 中它是 0
,现在在 boost 1.71 中它是 383
.
exit_code()
的文档指出:
The return value is without any meaning if the child wasn't waited for or if it was terminated.
所以如果进程是 terminate
d,那么似乎 exit_code()
不应该被调用。
在 Linux,383
(0x17F
) 的“退出代码”表示进程仍在 运行。因此,值得尝试 wait
让进程在获取其退出代码之前完成。
Boost.Process 版本 1.71 前后的某处有一些变化,可以解释行为上的差异(例如,将 SIGTERM 更改为 SIGKILL),但根据 exit_code
文档,它永远不会成功结合 terminate
.
调用它
终止进程的 return 代码应该是什么?我 运行 "bash -c \"while true; do true; done\""
并调用 terminate
。在 boost 1.65 中它是 0
,现在在 boost 1.71 中它是 383
.
exit_code()
的文档指出:
The return value is without any meaning if the child wasn't waited for or if it was terminated.
所以如果进程是 terminate
d,那么似乎 exit_code()
不应该被调用。
在 Linux,383
(0x17F
) 的“退出代码”表示进程仍在 运行。因此,值得尝试 wait
让进程在获取其退出代码之前完成。
Boost.Process 版本 1.71 前后的某处有一些变化,可以解释行为上的差异(例如,将 SIGTERM 更改为 SIGKILL),但根据 exit_code
文档,它永远不会成功结合 terminate
.