共享内存(shmop)块系统id(PHP)是否有任何限制

时间:2012-12-08 08:23:35

标签: php

我正在创建一个必须检查(计算)用户(写入密集型)请求的应用程序。

'shmop_open(MY_INT_USER_ID,...)'返回共享访问的系统ID,但我不确定,64位操作系统上的shmop系统ID是否有任何限制?或者这是否会导致问题,例如碰撞?

1 个答案:

答案 0 :(得分:6)

所以我最初撰写了一篇关于如何更改shared memory settings in Linux的重要文章,但后来我重新阅读了您的问题并注意到您询问传递给shmop_open的“系统ID”。

“system id”只是一个32位整数,充当密钥。这没有什么神奇之处,唯一真正的限制是它不是零并且低于32位。是的,即使在运行64位PHP的64位系统上也是如此。这是POSIX的事情。

请注意,没有命名空间或有效的安全控制。假设您已相应地设置权限,了解密钥的外部程序可以访问它。共享内存不适合在共享主机上使用。