Boost::process::async_pipe или канал для межпроцессного взаимодействияC++

Программы на C++. Форум разработчиков
Anonymous
Boost::process::async_pipe или канал для межпроцессного взаимодействия

Сообщение Anonymous »

Мне нужно осуществлять обмен сообщениями между процессами с помощью именованных каналов.

Я знаю, что async_pipe можно использовать для именованных каналов.

Но когда я пытаюсь использовать async_pipe, моя программа просто зависает в io_context::run() при чтении

Почему? могу ли я вообще использовать их для межпроцессного взаимодействия таким образом?
Я пытался найти информацию, кроме перенаправления stdout/stdin, но безуспешно.
Вот моя программа
#include
#include
#include "boost/asio.hpp"
#include "boost/process.hpp"

std::string create_named_pipe_name(const std::string& name)
{
return R"(\\.\pipe\)" + name;
}

int main(int argc, char* argv[])
{
asio::io_context io, io2;
bp::async_pipe p1(io, create_named_pipe_name("p"));
bp::async_pipe p2(io2, create_named_pipe_name("p"));

std::string messageToSend = "CCC";
std::vector x(3, '*');

boost::asio::async_write(p1, boost::asio::buffer(messageToSend),
[&messageToSend](const boost::system::error_code& ec, std::size_t size)
{
if (!ec) {
std::cout

Подробнее здесь: https://stackoverflow.com/questions/787 ... munication

Вернуться в «C++»