共享内存:
system V
创建共享内存
int shmget(key_t key, size_t size, int shmflg)
key:共享内存名称
size:共享内存大小
shmflg:属性 IPC_CREAT
共享内存与进程映射
void *shmat(int shmid, const void *shmaddr, int shmflg)
shmid:shmget()返回值 共享内存描述符
shmaddr:NULL=系统选定映射地址 !NULL=自选
shmflg:0
返回值:成功=地址 失败=(void *) -1
进程操作共享内存
直接操作映射后地址相当于操作共享内存
进程断开与共享内存映射
int shmdt(const void *shmaddr)
shmaddr:shmat()返回地址
删除共享内存
int shmctl(int shmid, int cmd, struct shmid_ds *buf)
cmd:IPC_RMID
POSIX共享内存
创建共享内存
int shm_open(const char *name, int oflag, mode_t mode)
共享内存大小
int ftruncate(int fd, off_t length)
共享内存与进程映射
void *mmap(void *addr,//NULL
size_t length,//长度
int prot,//
int flags,//
int fd,
off_t offset)
进程操作共享内存
进程断开与共享内存映射
int munmap(void *addr, size_t length)
删除共享内存
int shm_unlink(const char *name)
阅读(1538) | 评论(0) | 转发(0) |