共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
Android小码家4 小时前
Vehicle 实战 自定义属性+测试demo
java·c++·framework·vhal·vehicle
hetao17338374 小时前
2026-10-19 hetao1733837 的刷题记录
c++·算法
夏虫不可与之言冰4 小时前
第三课 点亮 LED 与定时器非阻塞闪烁
c语言·c++·vscode·单片机·嵌入式硬件·物联网
辛苦才能4 小时前
C++ 哈希表深度解析:删除为什么必须打标记,负载因子为什么卡 0.7
开发语言·数据结构·c++·算法
miller-tsunami4 小时前
STL简介&string相关知识点
开发语言·c++·string
坤坤子吖4 小时前
Linux 线程同步与互斥——互斥锁
linux·服务器·c++·笔记·学习
TDTC_XQ5 小时前
Linux网络编程accept的讲解
linux·服务器·c++
FlightYe5 小时前
音视频修炼之容器与协议(一):MP4和MOV的box剖析
android·linux·c++·ffmpeg·音视频
音草6 小时前
AVL 树详解:从概念到 C++ 实现
c++
凉茶钱6 小时前
list:哨兵节点,const_iterator 和 const iterator的区别与迭代器失效
数据结构·c++·list