#include<sys/shm.h>
int shmctl( int shmid , int cmd , struct shmid_ds *buf );
shmctl是一个共享内存控制函数。其各个参数解释:(1)、int shmid:是由shmget返回的共享内存标识符;(2)、int cmd: 是控制命令,可取值如下:
IPC_STAT 得到共享内存的状态,并存储在buf 中
IPC_SET 如果有足够的权限,就把共享内存的状态改变为buf 结构中的数据
IPC_RMID 删除共享内存段(3)、struct shmid_ds *buf是一个结构体指针。shmid_ds结构至少包含以下成员:
struct shmid_ds{
uid_t shm_perm.uid;
uid_t shm_perm.gid;
mode_t shm_perm.mode;
}
IPC_STAT的时候,取得的状态放在这个结构体中。如果要改变共享内存的状态,用这个结构体指定。
返回值: 成功的时候返回0,失败的时候则返回-1。
使用例子:
shmctl(shmid,IPC_RMID,NULL);