1

终止进程的返回码应该是什么?我边跑边"bash -c \"while true; do true; done\""打电话terminate。在 boost 1.65 中是这样0,现在在 boost 1.71 中是383

4

1 回答 1

1

国家的文件exit_code()

如果孩子没有被等待或被终止,则返回值没有任何意义

因此,如果进程是d ,它似乎exit_code()不应该被调用。terminate

383在 Linux 上, ( )的“退出代码”0x17F表示进程仍在运行。因此,值得尝试wait在获取其退出代码之前完成该过程。

Boost.Process 在 1.71 版左右的某个地方发生了一些变化,这可以解释行为上的差异(例如,将 SIGTERM 更改为 SIGKILL),但根据exit_code文档,将其与terminate.

于 2021-02-03T14:05:07.233 回答