解决Linux system v 共享内存问题
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,system v 共享内存#include #include int shmget(key_t key, size_t size, int shmflg);建立:进程与共享内存的关联关系key_t k
千家信息网最后更新 2025年02月05日解决Linux system v 共享内存问题
system v 共享内存
#include#include int shmget(key_t key, size_t size, int shmflg);
建立:进程与共享内存的关联关系
key_t key:16进制的非0数字。
一般有两种方式设置它。
第一种:调用fotk函数
第二章:直接使用IPC_PRIVATE
size:共享内存的大小
shmflg:
- IPC_CREAT
- IPC_EXCL
- 用户,组用户,其他用户对这片内存的权限,有9个bit来表示,比如664
返回值:成功返回这片共享内存的标识号;失败返回-1,errno被设置。
#include#include void *shmat(int shmid, const void *shmaddr, int shmflg);
shmid:由shmget函数创建的,也就是shmget函数的返回值
shmaddr:
NULL:让内核去申请内存空间
非NULL:自己用malloc开辟一个空间,让共享内存shmid和这个地址关联上。但是如果不是4K的整数倍,内核会向上或者向下调整。
shmflg:
SHM_RND:读写
SHM_RDONLY:只读
返回值:
成功:返回内存地址
失败:返回(void *) -1
#include#include int shmdt(const void *shmaddr);
取消进程与共享内存的关联关系
shmaddr:shmat的返回值
返回值:成功0;失败-1,并设置errno。
#include#include int shmctl(int shmid, int cmd, struct shmid_ds *buf);
对共享内存操作,更具cmd的不同,对共享内存进行不同的操作。
shmid:由shmget函数创建的,也就是shmget函数的返回值
cmd:
IPC_STAT:得到共享内存的状态
IPC_RMID:标记删除共享内存(当共享内存的引用计数变为0时,删除)
IPC_SET:设置共享内存的属性(修改权限,修改shmid等)
等等
buf:shmid_ds结构体
返回值:当cmd是IPC_RMID时:成功0;失败-1,并设置errno
用命令【ipcs】可以查看共享内存的状态
------ Shared Memory Segments --------key shmid owner perms bytes nattch status0x00007fff 65536 ys 664 256 00x00007ffe 98305 ys 664 256 00x0000555e 131074 ys 664 256 00x00000011 229379 ys 664 256 3
- key:函数shmget指定的第一个参数
- shmid:函数shmget的返回值
- owner:属于哪个用户创建的
- perms:这个共享内存的访问权限
- bytes:大小
- nattch:使用这个共享内存的进程的数量
- status:共享内存的状态
总结
以上所述是小编给大家介绍的解决Linux system v 共享内存问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
内存
函数
成功
用户
权限
状态
进程
关联
不同
也就是
内核
地址
大小
空间
帮助
问题
出处
参数
命令
属性
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
拼团返利软件开发
互联网科技内衣厂
黄浦区软件开发种类
蚌埠友磊互联网科技公司
asp访问数据库的代码
东阳网络机柜和服务器机柜
光裕服务器繁忙怎么办
巴音郭楞服务器数据迁移
青岛中创网络技术有限公司
厦门吉比特网络技术股份
小程序应用软件开发
asp 数据库 存储
数据库种returning
网络安全创客
数据库ds层是什么
互联网科技产品和医疗健康
计算机科学与网络安全谁难考
宝达网络技术有限公司招聘
浅谈数据库管理系统的功能
花雨庭的服务器端口
软件开发 itm单
辩论赛自我介绍网络安全利弊
plsql登入本地数据库
口语软件开发的研究内容
2022年春季高考网络技术样题答案
软件开发易
国家网络安全法的笔记
致远m3无法联接服务器
检查飞行安全数据库更新
如何卸载电脑中的数据库软件