当前位置:首页> PHP教程> PHP代码
关键字
文章内容
一段在linux下测试共享内存的程序
 
 
修改时间:[2011/09/23 17:17]    阅读次数:[808]    发表者:[起缘]
 
1 share.php 分配/删除共享内存



<?php



if($stop!=1)

{

// 判断是否已经创建

$shm_id = @shmop_open(0xff3, "a", 0644, 100);

if($shm_id) {

echo "内存块已经创建\n";

exit();

}

// 创建 100 字节的系统标识为 0xff3 的共享内存块

$shm_id = @shmop_open(0xff3, "c", 0644, 100);

if(!$shm_id) {

echo "共享内存块创建失败\n";

}



// 写一些内容

for($i=0;$i<10;$i++)

{

$shm_bytes_written = shmop_write($shm_id, "共享块$i", ($i*10));

}

echo "创建成功";

shmop_close($shm_id);

}

else

{

// 是否存在

$shm_id = @shmop_open(0xff3, "a", 0644, 100);

if(!$shm_id) {

echo "没有找到共享内存块\n";

exit();

}

// 删除

if(!shmop_delete($shm_id)) {

echo "删除失败.";

}

shmop_close($shm_id);

echo "内存块删除完毕!";

}

?>



2 share2
.php 用于显示共享内存的内容



<?php



// 打开共享内存块 0xff3

$shm_id = @shmop_open(0xff3, "a", 0644, 100);

if(!$shm_id) {

echo "不能打开共享内存块\n";

exit();

}



// 读出里面的内容

$my_string = shmop_read($shm_id, 0, $shm_size);

if(!$my_string) {

echo "没有内容或者不能读\n";

}

echo $my_string."\n";

shmop_close($shm_id);

?&g