共享内存原理和实现

实现原理

实现函数

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

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

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

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

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

2,mmap--mummap

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

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

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

相关推荐
m0_748248652 小时前
C++使用HTTP库和框架轻松发送HTTP请求
开发语言·c++·http
朔北之忘 Clancy2 小时前
2025 年 12 月青少年软编等考 C 语言二级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
2301_790300962 小时前
C++与增强现实开发
开发语言·c++·算法
zmzb01032 小时前
C++课后习题训练记录Day82
开发语言·c++
Howrun7772 小时前
C++ 文件操作速查手册
c++
C++ 老炮儿的技术栈3 小时前
不调用C++/C的字符串库函数,编写函数strcmp
c语言·开发语言·c++·人工智能·windows·git·visual studio
茉莉玫瑰花茶3 小时前
脚手架介绍
c++
Hgfdsaqwr3 小时前
内存泄漏检测与防范
开发语言·c++·算法
茉莉玫瑰花茶3 小时前
C++17 详细特性解析(中)
开发语言·c++
安全二次方security²4 小时前
CUDA C++编程指南(7.19&20)——C++语言扩展之Warp投票函数和Warp匹配函数
c++·人工智能·nvidia·cuda·投票函数·匹配函数·vote