共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
w陆压33 分钟前
2.区分C++中相似但不同的类型
c++·c++基础知识
十五年专注C++开发40 分钟前
CMake进阶:vcpkg中OpenSSLConfig.cmake详解
c++·windows·cmake·openssl·跨平台编译
郑同学的笔记1 小时前
【Eigen教程02】深入Eigen矩阵引擎:模板参数、内存布局与基础操作指南
c++·线性代数·矩阵·eigen
wadesir2 小时前
C++基本数据类型详解(零基础掌握C++核心数据类型)
java·开发语言·c++
leiming63 小时前
c++ map容器
开发语言·c++·算法
杨校3 小时前
杨校老师课堂备赛C++信奥之模拟算法习题专项训练
开发语言·c++·算法
hd51cc5 小时前
MFC 文档/视图 二
c++·mfc
wzfj123455 小时前
认识lambda
c++
老王熬夜敲代码5 小时前
C++万能类:any
开发语言·c++·笔记
智者知已应修善业5 小时前
【数组删除重复数据灵活算法可修改保留重复数量】2024-3-4
c语言·c++·经验分享·笔记·算法