Мне нужно осуществлять обмен сообщениями между процессами с помощью именованных каналов.
Я знаю, что 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
Boost::process::async_pipe или канал для межпроцессного взаимодействия ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Boost :: Process :: V1 :: Ребенок не работает с аргументами Bosst :: Process :: Child
Anonymous » » в форуме C++ - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-