共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
wa的一声哭了2 分钟前
矩阵分析 单元函数矩阵微积分和多元向量值的导数
linux·c语言·c++·线性代数·算法·矩阵·云计算
爱装代码的小瓶子14 分钟前
【c++进阶】c++11的魔法:从模板到可变模板.
android·开发语言·c++
曼巴UE519 分钟前
UE GamePlayTag
c++·ue5·ue
慕容青峰40 分钟前
【加拿大计算机竞赛 CCO 小行星采矿】题解
c++·算法·sublime text
Ghost-Silver44 分钟前
2025年度总结
开发语言·数据结构·c++·算法
yyy(十一月限定版)1 小时前
C++基础
java·开发语言·c++
Ralph_Y2 小时前
C++数据库操作
开发语言·数据库·c++
酬勤-人间道2 小时前
CAD 曲线切割 3D 曲面:坡面 / 开挖模型的开挖 - 填埋精准计算解决方案
c++·计算机·cad·布尔计算·曲线切割·工业级解决方案·岩体
不会写代码的里奇2 小时前
从零开发基于DeepSeek的端侧离线大模型语音助手:全流程指南
c++·后端·音视频
nike0good2 小时前
Goodbye 2025 题解
开发语言·c++·算法