【问题标题】:how same key is used across processes to communicate each other using shared memory如何跨进程使用相同的密钥以使用共享内存相互通信
【发布时间】:2013-03-16 23:13:33
【问题描述】:

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

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

【问题讨论】:

    标签: unix ipc shared-memory systems-programming


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-30
      • 2016-03-02
      • 2010-10-10
      • 2020-09-22
      • 2012-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多