共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
勇闯逆流河1 小时前
【C++】C++11(下)
开发语言·c++
胡萝卜3.07 小时前
掌握C++ map:高效键值对操作指南
开发语言·数据结构·c++·人工智能·map
电子_咸鱼7 小时前
【STL string 全解析:接口详解、测试实战与模拟实现】
开发语言·c++·vscode·python·算法·leetcode
月夜的风吹雨10 小时前
【封装红黑树】:深度解析map和set的底层实现
c++·set·map·封装
列逍10 小时前
深入理解 C++ 智能指针:原理、使用与避坑指南
开发语言·c++
C语言小火车10 小时前
C/C++ 指针全面解析:从基础到进阶的终极指南
c语言·开发语言·c++·指针
wefg111 小时前
【C++】特殊类设计
开发语言·c++
帅中的小灰灰11 小时前
C++编程原型设计模式
开发语言·c++
凌康ACG11 小时前
Sciter窗口间状态事件交互(四)
c++·sciter
“αβ”12 小时前
MySQL库的操作
linux·服务器·网络·数据库·c++·mysql·oracle