//----linux+php的环境中,创建了一共享内存块:代码如下 $key = 691; // 共享内存的key,注:类型为int
$memsize =1071644672 ; //1048576B=1M 创建了1023M
$perm = 0777; // 共享内存访问权限,参考linux的权限
function creat_m($key, $memsize, $perm)
{
$shmid = shm_attach($key, $memsize, $perm);
return $shmid;
}
$shmid=creat_m($key, $memsize, $perm);//----------------- 放一个很大的$arr(此数组为动态数组,不停的增加记录的,至少有3000多条记录,大概1M多)shm_put_var($shmid,0610,$arr);
//---开始访问此内存数据
$shmid = shm_attach(691);
print_r( shm_get_var( $shmid, 0610));
问题: print_r( shm_get_var( $shmid, 0610)); 为何常输出为空,(我重新把691内存块删除后,再重建691,就正常,可运行一会,共享内存691下的0601内存区就又没数据了,这是什么问题,应该如何处理)
thanks
$memsize =1071644672 ; //1048576B=1M 创建了1023M
$perm = 0777; // 共享内存访问权限,参考linux的权限
function creat_m($key, $memsize, $perm)
{
$shmid = shm_attach($key, $memsize, $perm);
return $shmid;
}
$shmid=creat_m($key, $memsize, $perm);//----------------- 放一个很大的$arr(此数组为动态数组,不停的增加记录的,至少有3000多条记录,大概1M多)shm_put_var($shmid,0610,$arr);
//---开始访问此内存数据
$shmid = shm_attach(691);
print_r( shm_get_var( $shmid, 0610));
问题: print_r( shm_get_var( $shmid, 0610)); 为何常输出为空,(我重新把691内存块删除后,再重建691,就正常,可运行一会,共享内存691下的0601内存区就又没数据了,这是什么问题,应该如何处理)
thanks
看你返回的值的类型
//创建消息队列
$message_queue = msg_get_queue(15, 0777);
$message_queue_status = msg_stat_queue($message_queue); print_r($message_queue_status); //向消息队列中写
msg_send($message_queue, 1, "691");
$message_queue_status = msg_stat_queue($message_queue);
//从消息队列中读
msg_receive($message_queue, 0, $message_type, 1024, $message, true, MSG_IPC_NOWAIT);
echo "<br>";
//print_r($message."\r\n");
echo $message;
//msg_remove_queue($message_queue);