0

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

假设当用户从 firefox 发出 print to file 命令时,一些其他程序(如 ghostscript)将制作一个 ps/pdf 文件(假设它使用共享内存)。这里firefox和ghostscript将如何使用共享内存

4

1 回答 1

0

两个彼此不认识的进程需要使用定义的(和共享的)协议才能一起使用共享内存。并且该协议需要包含有关如何访问共享内存的信息(例如,用于 shmget 调用的整数值)。基本上,它需要定义一个“硬编码”标识符或一些发现它的方法。

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

于 2013-03-26T23:58:08.620 回答