叁柒設計 三七设计 Three seven design 我的学习与分享
详细信息
来自:关键字:

PHP4手册:函数库及函数(四十四) 信号与共享记忆体函式库

  December 21th,2008 22:39:58   Category : PHP+Mysql
 Click (529)

--------------------------------------------------------------------------------
 信号与共享记忆体函式库 
--------------------------------------------------------------------------------
 


本函式库共有 9 个函式
本函式库提供 System V 的信号处理机制。这个机制可以让系统限制同时使用行程所存取的资源。本函式库亦提供了记忆体共享的机制,可让不同的程式存取相同的变数,方便交换程式资讯。
下表为系统的共享记忆体的限制值

SHMMAX 共享记忆体的最大值,一般为 131072 bytes 
SHMMIN 共享记忆体的最小值,一般为 1 byte 
SHMMNI 记忆体共享区段的最大值,一般为 100 
SHMSEG 每个行程所能共享的最大记忆体区段,一般为 6 

 


sem_get: 取得信号代码。 
sem_acquire: 捕获信号。 
sem_release: 释出信号。 
shm_attach: 开启建立共享记忆体区段。 
shm_detach: 中止共享记忆体区段连结。 
shm_remove: 清除记忆体区段。 
shm_put_var: 加入或更新记忆体区段中的变数。 
shm_get_var: 取得记忆体区段中指定的变数。 
shm_remove_var: 删除记忆体区段中指定的变数。 


--------------------------------------------------------------------------------
 函式:sem_get() 
--------------------------------------------------------------------------------
 


信号与共享记忆体函式库


sem_get
取得信号代码。

语法: int sem_get(int key, int [max_acquire] , int [perm]);

传回值: 整数

函式种类: 作业系统与环境


 
 
内容说明 


本函式用来取得 System V 系统信号 (semaphore) 的代码值。参数 key 为存取信号的键值。参数 max_acquire 可省略,内定值为 1,表示同时可取得的处理数目。参数 perm 可省略,表示该记忆体区段的控制权限,内定值为 0666。


 
 
参考 


sem_acquire()  sem_release()  

 

--------------------------------------------------------------------------------
 函式:sem_acquire() 
--------------------------------------------------------------------------------
 


信号与共享记忆体函式库


sem_acquire
捕获信号。

语法: int sem_acquire(int sem_identifier);

传回值: 整数

函式种类: 作业系统与环境


 
 
内容说明 


本函式用来捕获系统信号 (semaphore)。若捕捉信号的数量超过限度 (max_acquire),则行程在捕捉时会先封锁 (block) 住信号。


 
 
参考 


sem_get()  sem_release()  

 

--------------------------------------------------------------------------------
 函式:sem_release() 
--------------------------------------------------------------------------------
 


信号与共享记忆体函式库


sem_release
释出信号。

语法: int sem_release(int sem_identifier);

传回值: 整数

函式种类: 作业系统与环境


 
 
内容说明 


本函式用来释出呼叫行程捕获的系统信号 (semaphore)。成功则传回 true 值。


 
 
参考 


sem_get()  sem_acquire()  

 

--------------------------------------------------------------------------------
 函式:shm_attach() 
--------------------------------------------------------------------------------
 


信号与共享记忆体函式库


shm_attach
开启建立共享记忆体区段。

语法: int shm_attach(int key, int [memsize], int [perm]);

传回值: 整数

函式种类: 作业系统与环境


 
 
内容说明 


本函式用来开启或者建立共享记忆体区段。参数 key 为这区段的键。参数 memsize 可省略,表示所需最小的记忆体区段 (单位为 byte 位元组),内定值在 php3.ini 或 php.ini 中的 sysvshm.init_mem 设定,若无设定则为 10000 bytes。参数 perm 亦可省略,为该记忆体区段的使用权限,内定值为 666。传回值为共享记忆体的ID 值,可供程式使用。

 

--------------------------------------------------------------------------------
 函式:shm_detach() 
--------------------------------------------------------------------------------
 


信号与共享记忆体函式库


shm_detach
中止共享记忆体区段连结。

语法: int shm_detach(int shm_identifier);

传回值: 整数

函式种类: 作业系统与环境


 
 
内容说明 


本函式用来中止与共享记忆体区段的连结。参数 shm_identifier 即为欲停止区段的共享记忆体 ID 值。

 

--------------------------------------------------------------------------------
 函式:shm_remove() 
--------------------------------------------------------------------------------
 


信号与共享记忆体函式库


shm_remove
清除记忆体区段。

语法: int shm_remove(int shm_identifier);

传回值: 整数

函式种类: 作业系统与环境


 
 
内容说明 


本函式用来清除共享记忆体区段的所有资料。参数 shm_identifier 即为欲停止区段的共享记忆体 ID 值。

 

--------------------------------------------------------------------------------
 函式:shm_put_var() 
--------------------------------------------------------------------------------
 


信号与共享记忆体函式库


shm_put_var
加入或更新记忆体区段中的变数。

语法: int shm_put_var(int shm_identifier, int variable_key, mixed variable);

传回值: 整数

函式种类: 作业系统与环境


 
 
内容说明 


本函式可用来增加或者修改记忆体区段中变数值。参数 shm_identifier 为欲增加修改的共享记忆体 ID 值。参数 variable_key 为欲增加修改的变数名称键。参数 variable 为变数的内容,变数的型态可以是倍精确数 (double)、整数 (integer)、字串 (string) 或者是阵列 (array
 

--------------------------------------------------------------------------------
 函式:shm_get_var() 
--------------------------------------------------------------------------------
 


信号与共享记忆体函式库


shm_get_var
取得记忆体区段中指定的变数。

语法: mixed shm_get_var(int shm_identifier, int variable_key);

传回值: 混合型态资料

函式种类: 作业系统与环境


 
 
内容说明 


本函式可用来取得记忆体区段中指定的变数值。参数 shm_identifier 为欲取得的共享记忆体 ID 值。参数 variable_key 为欲取得的变数名称键。传回值即为指定变数键的值。

 

--------------------------------------------------------------------------------
 函式:shm_remove_var() 
--------------------------------------------------------------------------------
 


信号与共享记忆体函式库


shm_remove_var
删除记忆体区段中指定的变数。

语法: int shm_remove_var(int id, int variable_key);

传回值: 整数

函式种类: 作业系统与环境


 
 
内容说明 


本函式可用来删除记忆体区段中指定的变数值。参数 shm_identifier 为欲除去的共享记忆体 ID 值。参数 variable_key 为欲删除的变数名称键。

[ 资讯评论 ]
暂时没有任何评论!
[ 提交评论 ]
请选择表情
  • 昵称:
  • *
  • 验证码:
  • *点击更换验证码
  • 尚能输入个字符
申明:本网站部分分享内容来自网络,如有侵权请及时与我联系,谢谢,另网友评论仅代表个人观点,与本站立场无关,如果在评论中发表违反我国任何法律的,请即时与我们联系(QQ:77132915),我们将立即予以删除. [ 注:提交评论后,通过审核后方能在网站上显示!]