- #!/usr/bin/php -f
- <?php
- /**********************************************************
- 说明:该类访问共享内存
- 功能:添加、删除、获取共享内存信息,创建或删除共享内存
- ***********************************************************/
- require_once("/home/junjie2/php_module/Shm.class.php");
- if(!isset($argv[1]) || isset($argv[1]) && ( $argv[1] == "-h" || $argv[1] == "–help")){
- show_help();
- }
- $shm = new Shm();
- $op = $argv[1];
- if($op == ‘create’){ //创建
- $name = $argv[2]; //键标识
- $mod = $argv[3];
- $size = $argv[4];
- if(strlen($name) != 1){
- echo "key name only can be a one charactor string\n";
- exit(1);
- }
- $shm_key = @ftok(__FILE__, $name);
- if($shm_key == -1){
- echo $php_errormsg;
- exit(1);
- }
- if(!$shm->create($shm_key,$mod,$size)){
- echo $shm->get_error() ."\n";
- exit(1);
- }
- echo "The key of shm is : 0x".dechex($shm->get_key()) ."\n";
- exit(0);
- }
- if($op == ‘get’){ //获取变量
- $key = $argv[2]; //键标识
- $var = $argv[3];
- $shm->set_key($key);
- $val = $shm->get_var($var);
- show($val) ;
- echo "\n";
- exit(0);
- }
- if($op == ‘put’){ //创建
- $key = $argv[2]; //键标识
- $var = $argv[3];
- $val = $argv[4];
- $shm->set_key($key);
- if(!$shm->put_var($var,$val)){
- echo $shm->get_error() ."\n";
- exit(1);
- }
- exit(0);
- }
- if($op == ‘remove’){ //创建
- $key = $argv[2]; //键标识
- $var = $argv[3];
- $shm->set_key($key);
- if(!$shm->remove_var($var,$val)){
- echo $shm->get_error() ."\n";
- exit(1);
- }
- exit(0);
- }
- if($op == ‘delete’){ //创建
- $key = $argv[2]; //键标识
- $shm->set_key($key);
- if(!$shm->delete()){
- echo $shm->get_error() ."\n";
- exit(1);
- }
- exit(0);
- }
- show_help();
- exit(0);
- function show_help(){
- global $argv;
- echo "usage:" . $argv[0] ." \n";
- echo "create name mod size \n";
- echo "get key var \n";
- echo "put key var val \n";
- echo "remove key var \n";
- echo "delete key \n";
- exit(0);
- }
- function show($var) {
- if(is_array($var)){
- print_r($var);
- }else{
- echo $var;
- }
- }
- ?>