进程间通信Unix C.

时间:2011-04-28 16:53:05

标签: unix ipc

我有两个进程,A和B. B是执行某些功能的进程。过程A是控制B的过程。即过程A通过向过程A提供数据(控制和功能)来指示过程B.

我在B中有一个专用于IPC的线程,所有该线程都是从进程A获取指令,而正在运行的其他线程对已经存在的数据执行任何操作。

我想到了使用shmat的管道和共享内存。但是我不满意,我想要的东西,每当进程A向MS写一个msg时,只有那时候B中的ipc线程必须唤醒..任何想法如何实现这个?

2 个答案:

答案 0 :(得分:2)

具体类型取决于您需要什么样的灵活性以及谁在使用什么管道,但这应该有效:让流程B的IPC线程选择以便在管道上读取。当进程A写入管道时,进程B的IPC线程将被唤醒。

答案 1 :(得分:0)

我找到了解决方案。我让其中一个线程打开管道的一端进行读取,进行实际读取并关闭它。这在一个无限循环的while循环中继续!

想要写入它的进程只有在需要写入和关闭它时才会打开它并最终结束。

实际上,此设置也避免了同步问题。但我不知道它的后果是什么,虽然表演的内容!