如何使用相同的密钥跨进程使用共享内存相互通信

时间:2013-03-26 23:24:41

标签: unix ipc shared-memory systems-programming

我了解到有必要在两个进程中使用相同的密钥来使用共享内存进行通信。在我看过的示例代码中,密钥在两个程序(发送方,接收方)中都是硬编码的。我怀疑是实时两个意外进程如何使用相同的密钥。 我已经阅读了ftok()函数,但它要求文件路径作为参数。但是实时如何可能如下情景

假设当用户从firefox给文件命令打印时,像ghostscript这样的其他程序会生成一个ps / pdf文件(假设它使用共享内存)。这里firefox和ghostscript将如何使用共享内存

1 个答案:

答案 0 :(得分:0)

彼此未知的两个进程需要使用已定义(和共享)的协议才能共同使用共享内存。并且该协议将需要包括关于如何到达共享存储器的信息(例如,shmget调用的整数值)。基本上,它需要定义一个“硬编码”标识符或一些发现它的方法。

如果没有某种协议定义这些信息(包括内存中的内容),一个进程甚至不可能推断出另一个进程设置的内存位置。