共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
代码中介商1 分钟前
C++ 智能指针完全指南(二):shared_ptr 深度详解
开发语言·c++
WWW65269 分钟前
代码随想录 打卡第五十四天
数据结构·c++·算法
redaijufeng32 分钟前
我在C++中深入理解了继承,收获颇丰
java·c++·算法
.千余32 分钟前
【C++】C++继承入门(上):继承语法与基本特性详解
开发语言·c++·笔记·学习·其他
哎呦,帅小伙哦1 小时前
一个通用的异步任务提交器
c++
闻道且行之1 小时前
Hair Segmentation:MediaPipe 头发分割模块 CMake 独立编译
c++·人工智能·深度学习·神经网络·opencv·计算机视觉
Irissgwe1 小时前
C++ STL 详解:list 的介绍使用与模拟实现
开发语言·c++·stl·list
我能坚持多久1 小时前
C++继承详解
开发语言·c++
Brilliantwxx1 小时前
【C++】 手撕哈希表:封装 unordered_set和unordered_map
c++·哈希算法·散列表
Rookie Linux1 小时前
使用Qt6 QML以及第三方库FluentUI、PCapPlusPlus开发一个自定义抓包软件
网络·c++·qt·cmake·qml