首页 > 解决方案 > 在 Linux 上使用 boost 的 async_system 时如何获取子进程的 pid?

问题描述

我正在使用 Boost 在 Linux 中异步创建一个进程,如下所示:

#include <boost/process/async_system.hpp>
#include <boost/process/io.hpp>
...

  namespace bp = boost::process;
  boost::asio::io_context ioctx;
  bp::async_system(
      ioctx,
      [](boost::system::error_code errorCode, int rc) {
      }, // don't need an exithandler
      cmd,
      bp::std_out > stdout,
      bp::std_err > stderr,
      bp::std_in < bp::null);

我想知道是否有办法为创建的子进程获取 pid。我在Boost 文档中没有看到任何迹象。请注意,我使用的是 async_system 因为这个子进程是一个长时间运行的进程,它将持续与父进程的生命周期一样长。如果在这种情况下无法获取子 pid,是否还有其他可用的东西可用于创建进程而不是提供该信息?

标签: c++boostprocess

解决方案


推荐阅读