共享内存原理和实现

实现原理

实现函数

1,ftok--shmget--shmat--shmdt

shmget用于分配映射物理内存的虚拟内存。

怎么保证不同进程访问同一块物理内存呢

key_t ftok(const char *pathname, int proj_id);

ftok的第一个参数是一个文件,只要使用同一个文件进行映射,不同进程就可以访问同一块物理内存。mmap也一样。

2,mmap--mummap

映射的物理是不是调用函数的时候就分配了

不是的,映射只是确定用于映射物理内存的虚拟内存,当程序真正使用到物理内存时才真的映射物理内存。

这个共享的内存是虚拟内存还是物理内存

相关推荐
谁在夜里看海.20 分钟前
【C++项目实战】校园公告搜索引擎:完整实现与优化指南
服务器·网络·c++·搜索引擎
羑悻的小杀马特30 分钟前
DeepSeek 助力 C++ 开发:探索智能编程新境界
开发语言·c++·人工智能·ai大模型·deepseek
DjangoJason39 分钟前
C++ list类
c++·windows·list
qq_4335545440 分钟前
C++ 邻接矩阵(代码)
c++·算法
牵牛老人1 小时前
C++设计模式-外观模式:从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析
c++·设计模式·外观模式
誓约酱7 小时前
(每日一题) 力扣 179 最大数
c语言·c++·算法·leetcode·职场和发展
2301_792185887 小时前
力扣:3305.元音辅音字符串计数
c++·算法·leetcode
weixin_468466858 小时前
C++蓝桥杯皮亚诺曲线距离求解
c++·算法·蓝桥杯·递归·皮亚诺·pow函数误差·皮亚诺曲线距离
桦09 小时前
每天一道算法题【蓝桥杯】【山脉数组的峰顶索引】
c++·算法·leetcode·蓝桥杯
axxy200011 小时前
C++ Primer Plus第十二章课后习题总结
c++