Thank you Boris, but I need to setup IPC between two processes which are not child and parent.

I had used boost message queues as of now for the same but I am not able to wait on the boost message queue as it is not possible to get a file descriptor of a boost message queue. To my understanding, native() method cannot be used on a boost message queues.

Now, I want to use some other IPC technique other than boost message queues due to the above reason. So I thought of checking if pipe communication is possible between two unrelated processes using boost.

Could you please help me if you have more information regarding this.

Please let me know if you need more information to help me.
 
Best Regards,
Rohini Chandra

On Sat, Dec 18, 2010 at 5:05 PM, Boris Schaeling <boris@highscore.de> wrote:
On Sat, 18 Dec 2010 11:52:19 +0100, rohini chandra pallapothu <rohinichandrap@gmail.com> wrote:

[...]I have seen this documentation before. It says that two processes have to be
related.

Rohini,

you can download the latest draft of Boost.Process from http://www.highscore.de/boost/gsoc2010/process.zip. This version provides stream behaviors to configure streams of a child process. Among others a stream behavior for named pipes is provided. You could use it like this:

named_pipe np("/tmp/mypipe");
stream_ends ends = np(input_stream);
... = ends.child.native();
... = ends.parent.native();

The parameter passed to named_pipe::operator()() tells the stream behavior if the child handle should be configured for input or output. stream_ends is basically a std:pair<handle, handle> without requiring developers to remember what the child and the parent handle is. And the method handle::native() (and handle::release()) can be used to get the file descriptor on Unix and the HANDLE on Windows.

HTH,
Boris

[...]

_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users