System V共享内存区

要点

shell查看命令:ipcs -m

主要函数

#include <sys/shm.h>
//oflag=IPC_CREAT|IPC_EXCL|0644组合
//创建一个内存共享区
int shmget(key_t key, size_t size,int oflag); //连接shmid对应的内存区,shmaddr指定接入进程的地址,返回值为共享内存地址
void *shmat(int shmid,const void *shmaddr,int flag); //断开连接,类似close
int shmdt(const void *shmaddr); //获取/设置属性,以及删除shmid标识
//IPC_RMID,IPC_SET,IPC_STAT
int shmctl(int shmid,int cmd,struct shmid_ds *buff);

例子

int id=shmget(ftok("/shmmsg",0),length,oflag);
char *ptr=shmat(id,NULL,0); struct shmid_ds buff;
shmctl(id,IPC_STAT,&buff);
for(i=0;i<buff.shm_segsz;i++)
*ptr++ = i % 256; shmctl(id,IPC_RMID,NULL);
上一篇:CentOS用户权限管理--su与sudo


下一篇:iOS文档序列化(对象归档)