C++ 两个不同程序之间的进程间通信流

C++ 两个不同程序之间的进程间通信流,c++,ruby,linux,inter-process-communicat,C++,Ruby,Linux,Inter Process Communicat,我正在寻找一种特定的进程间通信,但我不知道它的名称。我正在研究生产者与消费者的关系。生产者应该向容器写入数据。容器应该只有足够的空间容纳一条消息。当生产者编写新消息时,旧消息将被丢弃。换句话说,生产者应该仅在使用者进程想要从该容器读取时才进行阻止 这个描述不匹配我知道的任何其他模式(管道,套接字{我想UDP可能是多余的)}和共享内存是不可能的{{我想因为我不知道如何在C++和露比}之间共享内存地址),我想我只是要写一个文本文件并锁定我以前做过的,但有没有更快的方法来实现这一点?这种方法会很慢,这

我正在寻找一种特定的进程间通信,但我不知道它的名称。我正在研究生产者与消费者的关系。生产者应该向容器写入数据。容器应该只有足够的空间容纳一条消息。当生产者编写新消息时,旧消息将被丢弃。换句话说,生产者应该仅在使用者进程想要从该容器读取时才进行阻止

这个描述不匹配我知道的任何其他模式(管道,套接字{我想UDP可能是多余的)}和共享内存是不可能的{{我想因为我不知道如何在C++和露比}之间共享内存地址),我想我只是要写一个文本文件并锁定我以前做过的,但有没有更快的方法来实现这一点?这种方法会很慢,这是一种错误的想法吗


我试图在<代码> C++和<代码> Ruby < /C>之间进行通信,但我认为这个问题是语言不可知的。

O.MQ应该能够很容易地完成这项工作。但是,如果你能给我举一个关于
c++
或任何其他语言的例子,我仍然会接受它作为一个正确的答案。为什么共享内存是不可能的?在这种情况下,这似乎是最简单的。您无法从任何管道(管道、FIFO、套接字)中调用数据。使用MQs,生产者需要在替换数据之前读取(删除旧消息)。带锁的SharedMem看起来就像你想要的一样-生产者只是不断覆盖同一区域,消费者想阅读时就阅读。我认为在两个程序之间共享虚拟内存地址是不可能的,也不简单。我只知道如何使用forking来实现这一点。forking不会与子进程共享进程的正常堆和堆栈等内存,它们有自己的副本。但是共享内存段在fork之后会被共享。看一看和类似的。