断开共享内存连接
int shmdt(const void *shmaddr);
//such as:
if(shmdt(shmaddr) == -1){
perror("shmdt:");
return -1;
}
参数 shmaddr
shmat函数的返回值
共享内存管理
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
//such as:
if(shmctl(shmId,IPC_RMID,NULL) == -1){
perror("shmctl");
return -1;
}//删除共享内存
第一个参数 shmid
shmget函数的返回值
第二个参数 cmd
IPC_STAT:得到共享内存的状态,把共享内存的shmid_ds结构复制到buf中
IPC_SET:改变共享内存的状态,把buf所指的shmid_ds结构中的uid、gid、mode复制到共享内存的shmid_ds结构内
IPC_RMID:删除这片共享内存
第三个参数 buf
共享内存管理结构体。具体说明参见共享内存内核结构定义部分
删除共享内存的时候,一般设置为NULL