Shmdt 共享内存解除映射关系|学习笔记

简介: 快速学习 Shmdt 共享内存解除映射关系

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频Shmdt 共享内存解除映射关系】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11054


Shmdt 共享内存解除映射关系

 

内容介绍:

一、 解除共享内存映射( detach )

二、 实例

 

一、解除共享内存映射( detach )

1.格式

#include <sys/types.h>

#include <sys/shm.h>

int shmdt(const void *shmaddr);

image.gif

2.功能:

将共享内存和当前进程分离(仅仅是断开联系并不删除共享内存)。

3.参数:

shmaddr:共享内存映射地址。

4.返回值:

成功返回0,失败返回-1。

 

二、实例

key_ t key;   //定义一个变量 key

int shm_id;   //定义一个 id

char *str;     //定义一个指针用于映射

int ret;

key=ftok(“.”,2);   //传入参数

shm_id=shmget(key,100,IPC_CREAT|0666);

//100为共享内存块的大小

str = (char *)shmat(shm.id,NULL,0);

ret = shmdt(str);

//解除映射关系,一旦解除就不能通过指针去访问共享内存

相关文章
|
3月前
|
存储 缓存 Linux
用户态内存映射
【9月更文挑战第20天】内存映射不仅包括物理与虚拟内存间的映射,还涉及将文件内容映射至虚拟内存,使得访问内存即可获取文件数据。mmap 系统调用支持将文件或匿名内存映射到进程的虚拟内存空间,通过多级页表机制实现高效地址转换,并利用 TLB 加速映射过程。TLB 作为页表缓存,存储频繁访问的页表项,显著提升了地址转换速度。
|
2月前
|
Linux C++
Linux c/c++文件虚拟内存映射
这篇文章介绍了在Linux环境下,如何使用虚拟内存映射技术来提高文件读写的速度,并通过C/C++代码示例展示了文件映射的整个流程。
51 0
|
3月前
|
存储 安全 Linux
将文件映射到内存,像数组一样访问
将文件映射到内存,像数组一样访问
34 0
|
3月前
|
消息中间件 Linux 容器
共享内存的创建和映射过程
【9月更文挑战第1天】消息队列、共享内存及信号量在使用前需生成key并获取唯一ID,均通过`xxxget`函数实现。
|
4月前
|
存储 程序员 编译器
c++学习笔记08 内存分区、new和delete的用法
C++内存管理的学习笔记08,介绍了内存分区的概念,包括代码区、全局区、堆区和栈区,以及如何在堆区使用`new`和`delete`进行内存分配和释放。
49 0
|
6月前
|
存储 编译器 C语言
【C++】学习笔记——内存管理
【C++】学习笔记——内存管理
56 15
|
6月前
|
存储 C++
C primer plus 学习笔记 第12章 存储类别、链接和内存管理
C primer plus 学习笔记 第12章 存储类别、链接和内存管理
|
6月前
|
监控 Linux
深入了解Linux的pmap命令:进程内存映射的利器
`pmap`是Linux下分析进程内存映射的工具,显示内存区域、权限、大小等信息。通过`/proc/[pid]/maps`获取数据,特点包括详细、实时和灵活。参数如`-x`显示扩展信息,`-d`显示设备。示例:`pmap -x 1234`查看进程1234的映射。注意权限、实时性和准确性。结合其他工具定期监控,排查内存问题。
|
7月前
内存映射mmap拓展
内存映射mmap拓展
|
7月前
内存映射实现无血缘关系进程间通信
内存映射实现无血缘关系进程间通信