Nowhere is this mentioned in the docs, is the name we use for creating a message_queue
a named pipe on Windows? Suppose a C# application creates a NamedPipeServerStream
with name "MyPipe". Can a C++ application do IPC with it if a message_queue
uses the same name "MyPipe"? Is this behaviour the same for all platforms? I used message_queue
in my implementation because there's no cross platform named pipe solution in C++ afaik. Will closing the NamedPipeServerStream
have the same effect as message_queue::remove
?
Asked
Active
Viewed 153 times
0

demberto
- 489
- 5
- 15
-
I think if a _named pipe_ or a different OS mechanism for IPC is used, is an implementation detail. – πάντα ῥεῖ Dec 18 '21 at 14:47
-
If you want to use Windows named pipes from C++, you can also call the [Win32 C API](https://learn.microsoft.com/en-us/windows/win32/ipc/named-pipes) directly. – rveerd Dec 18 '21 at 15:33
-
1@rveerd I don't want to mess around with Win32 api, heck I am using boost::dll for loading libraries. I want cross platform compatibility – demberto Dec 18 '21 at 15:53
-
There are [boost::process::pipe](https://www.boost.org/doc/libs/1_78_0/doc/html/process/reference.html#header.boost.process.pipe_hpp) and [boost::process:assync_pipe](https://www.boost.org/doc/libs/1_78_0/doc/html/boost/process/async_pipe.html) – dewaffled Dec 18 '21 at 16:38