连接到提升命名管道

Connect to boost named pipe

我有这个代码:

  boost::asio::io_service ios;
  std::vector<char> buf(20);
  bp::async_pipe ap(ios, "\\.\pipe\SamplePipe");
  boost::asio::async_read(ap, boost::asio::buffer(buf),
    [](const boost::system::error_code &ec, std::size_t size) {});
  ios.run();

现在,我在 cmd 中执行 echo 42 > \.\pipe\SamplePipe 并期望对缓冲区进行异步读取。但是我得到了以下错误:"All pipe instances are busy."有人可以向我解释为什么会这样以及我该如何解决它吗?

在新版本的boost中它被修复了。参见 this