共享内存函数类似于文件操作函数,但无需处理一个流,您将处理一个共享内存访问 ID。
/**
*@param int $key 标识系统中的共享内存段的数字
@parma string $flags 访问模式,它非常类似于 fopen
函数的访问模式
- 模式 “a”,它允许您访问只读内存段
- 模式 “w”,它允许您访问可读写的内存段
- 模式 “c”,它创建一个新内存段,或者如果该内存段已存在,尝试打开它进行读写
- 模式 “n”,它创建一个新内存段,如果该内存段已存在,则会失败
@param int $mode 内存段的权限。您必须在这里提供一个八进制值。如 0777
@param int $size 内存段大小,以字节为单位。在写入一个内存段之前,您必须在它之上分配适当的字节数。
@return mix 返回一个 ID 编号,其他函数可使用该 ID 编号操作该共享内存段。这个 ID 是共享内存访问 ID,与系统 ID 不同。如果失败,shmop_open
将返回 FALSE。
*/
shmop_open(int$key , string$flags , int$mode , int$size)
/**
@param int $shmid shmop_open()返回的id 识别您操作的共享内存块
@param string $data 希望存储的数据
@param int $offset 希望开始写入的位置。默认情况下,我们始终使用 0 来表示开始写入的位置
@return 失败时会返回 FALSE,在成功时会返回写入的字节数。
*/
shmop_write ( int $shmid , string $data , int $offset )
/**
@param int $shmid shmop_open()返回的id
@param int $start 从内存段读取的位置
@param int $count 读取多少字节
*/
shmop_read ( int $shmid , int $start , int $count )
//接下来的几个就比较容易了
$size = shmop_size($shmid);//内存段大小,以字节为单位
shmop_delete($shmid); //删除内存段shmop_close($shmid);//完成crud操作后要关闭
具体的例子可以看
http://www.ibm.com/developerworks/cn/opensource/os-php-shared-memory/