2

我正在尝试调试一些遗留代码的问题。在试图理解我在看什么时,我发现它使用ftok. 我在网上查看了它的作用,偶然发现了这个链接。我看得更深,发现ftok不能保证唯一的键,并且空间可能会发生冲突的可能性很小。

ftok() 冲突

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

4

1 回答 1

0

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

简单:ftok()使用与真实代码相同的参数调用,并比较ints返回的两个是否相等。

那么只要返回的键是唯一的,生成的共享内存空间也不会发生冲突吗?

只要键不同,这两个内存段就完全独立。

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

于 2011-11-20T23:08:41.683 回答