php共享內存shmop初探

先上讀寫程序:

<?php
/**
  * SHMOP共享內存操作示例
  * @author monkee
 **/
$key = 0x4337b700;
$size = 4096;
$shmid = @shmop_open($key, 'c', 0644, $size);
if($shmid === FALSE){
	exit('shmop_open error!');
}

$data = '世界,你好!我將寫入很多的數據,你能罩得住麼?';

$length = shmop_write($shmid, pack('a*',$data), 0);
if($length === FALSE){
	exit('shmop_write error!');
}

@shmop_close($shmid);

exit('succ');
?>

讀:

<?php
/**
  * SHMOP共享內存操作示例
  * @author monkee
 **/
$key = 0x4337b700;
$size = 256;
$shmid = @shmop_open($key, 'c', 0644, $size);
if($shmid === FALSE){
	exit('shmop_open error!');
}

$data = unpack('a*', shmop_read($shmid, 0, 256));
if($data === FALSE){
	exit('shmop_read error!');
}
@shmop_close($shmid);

exit($data[1]);
?>
unix/linux命令查看:


key :共享內存的唯一的key值,共享內存通過該key來判斷你讀取的是哪一塊內存。

shmid:當使用key來獲取內存時,你獲得的是這個id的值。它作爲你操作內存塊的標識。

owner:創建該共享內存塊的用戶

perms:該共享內存的讀寫權限,8禁止,可以是777,與文件的讀寫權限一致。

bytes:該內存塊的大小

nattch:連接該內存塊的進程數

status:當前狀態,如:dest,即將刪除等。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章