共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
deng-c-f7 小时前
配置(4):VScode c/c++编译环境的配置:c_cpp_properties.json
c语言·c++·vscode
应用市场7 小时前
Godot C++开发指南:正确获取节点的Forward/Up/Right方向向量
c++·游戏引擎·godot
小-黯8 小时前
OpenGL使用C++ 绘制三角形
c++·opengl·xmake
code_ing-8 小时前
【Linux】命令行参数与环境变量
linux·c++·windows·笔记
wangjialelele8 小时前
Qt中的常用组件:QWidget篇
开发语言·前端·c++·qt
九德拉8 小时前
利用XPlaneConnect从X-Plane内读写数据
c++·飞行仿真·x-plane
_OP_CHEN9 小时前
C++进阶:(三)深度解析二叉搜索树原理及实现
开发语言·数据结构·c++·二叉树·二叉搜索树·键值对
郝学胜-神的一滴11 小时前
深入解析C++命令模式:设计原理与实际应用
开发语言·c++·程序人生·软件工程·命令模式
ShineSpark11 小时前
Crashpad介绍
c++·windows
苏纪云11 小时前
算法<C++>——双指针 | 滑动窗口
数据结构·c++·算法·双指针·滑动窗口