如何确定ftok共享内存冲突

时间:2011-11-20 21:46:43

标签: c linux shared-memory ftok

我正在尝试使用一些遗留代码调试问题。在尝试理解我正在查看的内容时,我发现它使用ftok构建了两个唯一的共享内存空间。我在网上查看了它的作用,我偶然发现了这个链接。我看得更深,发现ftok不保证唯一的密钥,并且空间可能会发生碰撞的可能性很小。

ftok() collisions

所以,我一直在努力确定这是否适合我。如何确定它是否真的是共享内存空间冲突问题?它可能是遗留可执行文件中可怕的内存泄漏...

1 个答案:

答案 0 :(得分:0)

  

如何确定它是否真的是共享内存空间冲突问题?

简单:使用与实际代码相同的参数调用ftok(),并比较为了相等而返回的两个ints

  

因此,只要返回的密钥是唯一的,生成的共享内存空间也没有冲突吗?

只要密钥不同,两个内存段就完全独立了。

应用程序可以自由地将任何值放入它想要的两个段中。如果应用程序想要将值放入例如segment1指向segment2中的值,由应用程序决定是否保持所有引用。