Linux进程间通信——SystemV共享内存

System V共享内存

System V是一种进程间通信的标准,在这种标准之下,本地通信的方式一般由三种,内存共享、消息队列、信号量

这里我们主要介绍共享内存

创建内存共享

请添加图片描述

这是内存共享的系统调用

第一个参数是共享内存在内核中的标识,类似于文件标识符的地位

第二个参数是创建共享内存的大小

第三个参数有两个选项IPC_CREAT和IPC_EXCL

如果只有第一个,则使用共享内存,不存在则创建后继续使用

第二个不能单独使用,两个相或之后表示创建共享内存后使用,存在则出错返回

第三种方法主要是为了确保所使用的共享一定是新鲜的

创建成功会返回共享内存的标识符,失败返回-1,错误码表示错误原因

共享内存存在内存的共享区中,可以有很多个,是被操作系统描述组织管理的

对于第一个参数,key是需要确定唯一的,类似于手机号,你自己有,别人不能再有一模一样的,并且别人想要打给你也必须输入一模一样的

我们可以使用ftok函数进行生成,只要两个参数相同,则能生成相同的key,类似于哈希函数

请添加图片描述

需要注意的是,共享内存在进程退

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栖林_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值