linux共享内存的创建、删除、映射、取消映射的各自的头文件、函数原型、参数、返回值
时间: 2023-10-09 13:15:47 浏览: 110
Linux共享内存的查看和删除
1. 共享内存的创建
头文件: #include <sys/shm.h>
函数原型:int shmget(key_t key, size_t size, int shmflg);
参数说明:
- key:共享内存标识符
- size:共享内存大小
- shmflg:共享内存权限标志
返回值:
- 成功:返回共享内存标识符
- 失败:返回-1
2. 共享内存的删除
头文件:#include <sys/ipc.h>
函数原型:int shmctl(int shmid, int cmd, struct shmid_ds *buf);
参数说明:
- shmid:共享内存标识符
- cmd:命令参数,常用的有IPC_RMID表示删除共享内存
- buf:共享内存状态结构体指针
返回值:
- 成功:返回0
- 失败:返回-1
3. 共享内存的映射
头文件:#include <sys/shm.h>
函数原型:void *shmat(int shmid, const void *shmaddr, int shmflg);
参数说明:
- shmid:共享内存标识符
- shmaddr:共享内存映射地址,通常为NULL,表示让系统自动分配
- shmflg:共享内存权限标志,通常为0表示可读可写
返回值:
- 成功:返回共享内存起始地址
- 失败:返回-1
4. 共享内存的取消映射
头文件:#include <sys/shm.h>
函数原型:int shmdt(const void *shmaddr);
参数说明:
- shmaddr:共享内存起始地址
返回值:
- 成功:返回0
- 失败:返回-1
阅读全文