共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
unicrom_深圳市由你创科技11 小时前
哪些控制逻辑应该放在 PLC,哪些放在上位机?
c++
玖玥拾12 小时前
C/C++ 基础笔记(十三)继承
c语言·c++·继承
ao-weilai13 小时前
C++:哈希表
c++·哈希算法·散列表
汉克老师14 小时前
GESP7级C++考试语法知识(二、指数函数(1、pow() 函数)
c++·指数函数·pow·gesp7级·精度误差
旖-旎14 小时前
FloodFill(图像渲染)(1)
c++·算法·深度优先·力扣
汉克老师15 小时前
GESP2026年3月认证C++六级真题与解析(编程题1 选数)
c++·动态规划·线性dp·gesp六级·状态转移·选与不选
有点。15 小时前
C++倍增法(练习题)
c++·算法
凡人叶枫15 小时前
Effective C++ 条款23:宁以 non-member、non-friend 替换 member 函数
linux·开发语言·c++·嵌入式开发
C语言小火车15 小时前
什么时候用智能指针?什么时候用裸指针?
c语言·c++·学习·指针
玖玥拾16 小时前
C/C++ 基础笔记(十二)友元、运算符重载
c语言·c++·运算符重载·友元