当前位置:网站首页>unix环境编程 第十五章 15.9 共享存储
unix环境编程 第十五章 15.9 共享存储
2022-08-09 10:26:00 【玛丽苏打肉饼】
共享存储允许两个或者多个进程共享一个 给定的存储区。因为数据不需要在客户进程和服务器进程之间复制。所以这是最快的一种IPC。使用共享存储时要掌握的唯一窍门是在多个进程之间同步访问一个给定的存储区。
调用的第一个函数通常是shmget,它获得一个共享存储标识符
#include <sys/shm.h>
int shmget(key_t key,size_t size,int flag);
//成功返回共享存储ID,失败返回-1参数size是该共享存储段的长度,以字节为单位。
shmctl函数对共享存储段执行多种操作
#include <sys/shm.h>
int shmctl(int shmid,int cmd,struct shmid_ds *buf);
//成功返回0,失败返回-1一旦创建了一个共享存储段,进程就可调用shmat将其连接到它的地址空间中。
#include <sys/shm.h>
void *shmat(int shmid,cosnt void *addr,int flag);
//成功返回指向共享存储段的指针,出错返回-1如果addr为0,则此段连接到由内核选择的第一个可用地址上。这是推荐的使用方式
如果addr非0,并且没有指定SHM_RND,则此段连接到addr所指定的地址上。
如果addr非0,并且指定了SHM_RND,则此段连接到所表示的地址上。
当对共享存储段的操作已经结束的时候,则调用shmdt与该段分离。注意,这并不是从系统中删除其标识符以及其相关的数据结构。
#include <sys/shm.h>
int shmdt(const void *addr);
//成功返回0,出错返回-1边栏推荐
- Redis 缓存主动更新策略
- 认识
- 使用.NET简单实现一个Redis的高性能克隆版(四、五)
- Throwing a question? The execution speed of the Count operation in the Mysql environment is very slow. You need to manually add an index to the primary key---MySql optimization 001
- Browser error classification
- [Halcon&定位] 解决Roi区域外的模板匹配成功
- MySQL备份与恢复
- Quick sort eight sorts (3) 】 【 (dynamic figure deduction Hoare, digging holes, front and rear pointer method)
- 程序环境和预处理
- hover内部指定子类的样式
猜你喜欢
随机推荐
技术分享 | 使用 cURL 发送请求
snmp++编译错误问题解决方法
虚拟列表key复用问题
循环嵌套以及列表的基本操作
Redis 缓存主动更新策略
Master-slave postition changes cannot be locked_Slave_IO_Running shows No_Slave_Sql_Running shows No---Mysql master-slave replication synchronization 002
深度学习--自编码器(AutoEncoder)
MySQL全文索引
Practical skills: a key for image information in the Harbor, quick query image
The GNU Privacy Guard
MySQL备份与恢复
Dream Notes 0809
蓄电池建模、分析与优化(Matlab代码实现)
上传张最近做的E2用的xmms的界面的截图
RTP
BERT预训练模型(Bidirectional Encoder Representations from Transformers)-原理详解
阿里神作!吃透这份资料入厂率高达99%
xmms播放器加了播放列表的管理功能
对话跨国消费品牌DPO:数据安全合规从何做起?8.11直播见!
实验室装修及改造工程程序简介







![[贴装专题] 贴装流程中涉及到的位置关系计算](/img/72/a60a51c86e641749f38fab66f1236a.png)

![[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目](/img/e9/d41f144a2f27e76f97cd6401d37578.png)