共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
fanfan_hongyun13 小时前
【UE5.1 创建C++文件】
c++·ue5
余额瞒着我当琳13 小时前
C++11,发展历史浅谈,初始化列表和对象初始化,右值引用和移动语义
java·开发语言·c++·算法
Tsuki_tl13 小时前
【优选算法:双指针】——复写零题解
java·c++·算法·leetcode·数组·双指针·复写零
程序猿编码14 小时前
不用 PyTorch!从零手写 C++ 深度学习框架,自动微分、CUDA、分布式一把搞定
c++·深度学习·大模型推理·自动微分
real_metrix14 小时前
【学习笔记】C/C++ 头文件自包含
c++·c·头文件·自包含
雪落漂泊14 小时前
C++算法 滑动窗口篇(上)
开发语言·c++·算法
像枫一样14 小时前
STM32串口轮询收发实战教程
arm开发·c++·stm32·单片机·嵌入式硬件·fpga开发·51单片机
Soneswy14 小时前
C++基础篇——类与对象(上)
开发语言·c++
张小姐的猫14 小时前
【MySQL】表的约束
android·linux·服务器·数据库·c++·mysql·adb
kiracrimson14 小时前
STL简单引入:把数据结构做成模板
开发语言·数据结构·c++