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


--------------------------------------------------------------------------------
信号与共享记忆体函式库
--------------------------------------------------------------------------------
本函式库共有 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 为欲删除的变数名称键。