PHP関数-信号と共有メモリ関数
8884 ワード
shmop_* 関数はWindows 2000以前のバージョンでは使用できない、WindowsシステムではPHPをサーバモードにインストールした場合にのみ動作(CLIとCGIモードではshmop_*関数は動作しない)、php.iniファイルの「;extension=php_shmop.dll」オプションの「;」削除、保存後にApacheサーバを再起動する.なお、本章の他の関数はUNIX、Linuxシステムのみをサポートする. shmop_close共有メモリ を閉じる. shmop_delete共有メモリ を削除する. shmop_open共有メモリ識別子 を確立する. shmop_read共有メモリにおいて資料 を読み取る. shmop_size共有メモリのサイズ を取得する. shmop_write共有メモリに資料を書き込む . ftokシステムVプロセスへのパスの変換値 msg_get_queue情報キュー を確立する. msg_receive情報キューにおいて情報 を読み出す. msg_remove_queue情報キュー を破棄する. msg_sendは、情報キュー にメッセージを送信する. msg_set_queue情報キューのデータ構造 が設定. msg_stat_queue情報キューのデータ構造 を取得する. sem_acquireキャプチャシステム信号 sem_getシステムプロセスの信号コード値 を取得する. sem_releaseシステム信号 を解放する. sem_removeシステム信号 を削除する. shm_attachメモリへの接続をオンまたは確立する shm_detachメモリへの接続を中止する . shm_get_varメモリの変数値の内容 を取得する. shm_put_varメモリの変数値 を追加または変更する. shm_remove_varメモリで指定する変数値 を削除する. shm_remove共有メモリ領域のすべてのコンテンツ をクリアする.
<?php
$shm_key=ftok(__FILE__,'t'); //
$shm_id=shmop_open($shm_key,"c",0644,100); //
shmop_close($shm_id); //
?>
<?php
$shm_key=ftok(_FILE_,'t'); //
$shm_id=shmop_open($shm_key,"c",0777,100); //
$result=shmop_write($shm_id,'iwanc'.0); //
shmop_delete($shm_id); //
?>
<?php
$shm_key=ftok(_FILE_,'t'); //
$shm_id=shmop_open($shm_key,"c",0644,100); //
//$shm_key . ,
//"c" . , ( "a","w","n")
//0644 . , ,
//100 . ,
?>
<?php
$shm_key=ftok(_FILE_,'t'); //
$shm_id=shmop_open($shm_key,"c",0644,100); //
$result=shmop_write($shm_id,' iwanc.com',0); //
$shm_data=shmop_read($shm_id,0,6); //$shm_id: , 0 , 6 , " "
shmop_close($shm_id);
?>
<?php
$shm_key=ftok(_FILE_,'t'); //
$shm_id=shmop_open($shm_key,"c",0644,100); //
$result=shmop_size($shm_id); // "100"
?>
<?php
$shm_key=ftok(_FILE_,'t'); //
$shm_id=shmop_open($shm_key,"c",0644,100); //
$result=shmop_write($shm_id,' C',0); // 0
?>
<?php
$key=ftok(__FILE__,'t'); //
?>
<?php
$f_id=ftok('home/test/t.php','R');
$key=msg_get_queue($f_id,0666); //$f_id: .0666: , 0666. ,
if(msg_receive($key,1,$type,100,$msg,true,0,$error)){
echo "$msg";
}
else{
echo $error;
}
msg_remove_queue($key); //
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=msg_get_queue($f_id,0666); //
if(msg_receive($key,1,$msg_type,1600,$msg,true,0,$msg_error)){
if($msg != 'quit'){ //
echo "$msg";
}
}
else{
echo $msg_error; //
}
msg_remove_queue($key); //
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=msg_get_queue($f_id,0666); //
if(!msg_send($key,1,' C',true,true,$msg_error)){ //
echo " , :$msg_error"; //
}
msg_remove_queue($key); //
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=msg_get_queue($f_id,0666); //
if(!msg_send($key,1,' C',true,true,$msg_error)){ //
echo " , :$msg_error"; //
}
msg_set_queue($key,array('msg_perm.uid'=>'80')); //$key: ,
print_r(msg_stat_queue($key)); //
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=sem_get($key,1024,0644);
sem_acquire($key); // , ,
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=sem_get($key,1024,0644); //1024: ,0644:
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=sem_get($key,1024,0644); //
$data=shm_attach($key,1024); //
$shm_put_var($data,$ine,' C'); //
shm_detach($data); //
sem_release($key); //
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=sem_get($key,1024,0644); //
$data=shm_attach($key,1024); //
$shm_put_var($data,$ine,' C'); //
sem_remove($key); //
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=sem_get($key,1024,0644); //
$data=shm_attach($key,1024); //
print_r(shm_get_var($data,$ine)); //
shm_detach($data); //
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=sem_get($key,1024,0644); //
$data=shm_attach($key,1024); //
$shm_put_var($data,$ine,' C'); //
print_r(shm_get_var($data,$ine)); //$data: ,$ine
shm_detach($data); //
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=sem_get($key,1024,0644); //
$data=shm_attach($key,1024); //
$shm_put_var($data,$ine,' C'); //
print_r(shm_get_var($data,$ine)); //
shm_remove_var($data,$ine); //
print_r(shm_get_var($data,$ine));
shm_detach($data); //
?>
<?php
$f_id=ftok('home/test/t.php','R'); //
$key=sem_get($key,1024,0644); //
$data=shm_attach($key,1024); //
$shm_put_var($data,$ine,' C'); //
print_r(shm_get_var($data,$ine)); //
shm_remove($data,$ine); //
print_r(shm_get_var($data,$ine));
shm_detach($data); //
?>