共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
超轶绝尘10 分钟前
C++学习笔记 23 宏 Macro
c++
神仙别闹1 小时前
基于QT(C++)实现的翻金币游戏
c++·qt·游戏
UP_Continue1 小时前
C++--右值和移动语义
开发语言·c++
wanderist.2 小时前
2025年蓝桥杯省赛C++大学A组
c++·算法·蓝桥杯
月上林梢2 小时前
QT圆形加载进度条
数据库·c++·qt·进度条
啊董dong2 小时前
noi-2025年12月16号作业
数据结构·c++·算法·noi
white-persist2 小时前
【攻防世界】reverse | simple-check-100 详细题解 WP
c语言·开发语言·汇编·数据结构·c++·python·算法
欧特克_Glodon3 小时前
C++医学图像处理经典ITK库用法详解<四>: 图像分割模块功能
c++·图像处理·图像分割·itk
仰泳的熊猫3 小时前
1083 List Grades
数据结构·c++·算法·pat考试
淼淼7633 小时前
工厂方法模式
开发语言·c++·windows·qt·工厂方法模式