当前位置:网站首页>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
边栏推荐
猜你喜欢
学长告诉我,大厂MySQL都是通过SSH连接的
Cpolar内网穿透的面板功能介绍
第二周作业
分类预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多特征分类预测
Practical skills: a key for image information in the Harbor, quick query image
Electron application development best practices
笔记本电脑使用常见问题,持续更新
OneNote 教程,如何在 OneNote 中搜索和查找笔记?
Win系统 - 罗技 G604 鼠标蓝灯闪烁、失灵解决方案
需求侧电力负荷预测(Matlab代码实现)
随机推荐
Received your first five-figure salary
踩坑scrollIntoView
机器学习--朴素贝叶斯(Naive Bayes)
今天做了手机播放器的均衡器
conditional control statement
壁纸
xmms的歌词显示及音量控制OK
判断一段文字的width
xmms的均衡器试验成功 音效相当不错 比rockbox可能还要好
By asking where the variables are stored, the shepherd boy laughed and said to use pointers, Go lang1.18 introductory refining tutorial, from Bai Ding to Hongru, the use of go lang type pointers (Poin
function two
函数组件和类组件和dva视图更新问题
MySQL索引的B+树到底有多高?
【size_t是无符号整数 (-1 > 10) -> 1】
[项目配置] 配置Qt函数库和ui界面库的封装并调用的项目
排序1:冒泡排序
循环嵌套以及列表的基本操作
cannot import name ‘load_offloaded_weights‘ from ‘accelerate.utils‘ (/home/huhao/anaconda3/envs/huha
使用cpolar远程连接群晖NAS(创建临时链接)
上传张最近做的E2用的xmms的界面的截图