对于命名管道,通常实现的“握手”是什么

问题描述:

我需要在使用命名管道与其他进程通信的小型Linux程序中实现握手类型协议。我使用命名管道搜索握手类型协议的一般实现模式,但我一直无法打开任何东西...对于命名管道,通常实现的“握手”是什么

我简直不敢相信没有模式可以做这个。有人能指点我一个可能的资源吗?

完全公开这是作业,但实现这种模式不是作业。我们需要在作业代码中解决问题,我相信这是一个可能的解决方案。作业用C++实现 - 但语言对我无关紧要。我只是不想推倒重来....

更新:我有一种感觉,这可能与信号来实现。

我的意思握手是,给它一个子进程报告的父进程,这是做好工作的准备,但不进行(即使是在管的东西),直到父母给通行信号。在我的工作理论中,我将有许多子进程需要报告准备好等待来自父进程的信号。

+1

“Unix环境下的高级编程”一书是一本很好的书,它深入讨论了周围的问题。这是值得它的重量在银(如果不是金)。 – gahooa 2009-08-03 04:00:41

+0

在附注上,我现在明白了为什么我无法找到关于此主题的任何内容。 *这是一个非常不寻常的使用这些技术.... * – 2009-08-03 16:10:48

典型的使用情况下,进程依靠阻塞来握手。编写器进程打开管道进行写入,读取器进程打开管道进行读取,并且先发生任何情况,直到其他进程打开它的一侧。这可以扩展到在读卡器端使用非阻塞IO。

命名管道对于一对一IPC最为有用。在你的一对多情况下,你可能应该使用一个UNIX域套接字。