发布时间:2026/8/25 15:17:02
共享内存呀 共享内存Shared Memory是IPC 进程间通信方式之一原理在内核开辟一块物理内存多个进程将这块内存映射到自己的虚拟地址空间直接读写内存无需内核拷贝数据速度最快但没有自带同步互斥一般要搭配信号量、互斥锁使用。完整函数链路ftok()→shmget()→shmat()→ 读写内存 →shmdt()→shmctl()1. ftok —— 生成 IPC 键值 key_t#include sys/types.h #include sys/ipc.hkey_t ftok(const char *pathname, int proj_id);参数说明pathname存在的文件路径必须真实存在一般用当前目录.proj_id项目 ID0~255 之间的整数常用字母如a返回值成功返回key_t类型键值用于 shmget、msgget、semget失败-1设置 errno原理ftok 根据 文件设备号、文件 inode、proj_id 组合算出唯一 key ⚠️ 注意文件删除重建后inode 变化ftok 结果会变。注意用ipcs查看2. shmget —— 创建 / 获取共享内存段建立key和stimid的关系#include sys/ipc.h #include sys/shm.hint shmget(key_t key, size_t size, int shmflg);参数keyftok 得到的键值特殊值IPC_PRIVATE代表私有共享内存只用于亲缘进程size共享内存大小建议 4k 对齐内存页大小shmflg权限 创建标志IPC_CREAT不存在则创建存在直接获取IPC_EXCL搭配 IPC_CREAT存在则报错权限位0666类似文件权限一般就是IPC_CREAT|0666返回值成功shmid 共享内存标识符int后续操作都用它失败-13. shmat —— 挂载映射共享内存到进程虚拟地址(建立映射--获得地址)attach把内核共享内存映射到当前进程地址空间得到可用指针。void *shmat(int shmid, const void *shmaddr, int shmflg);参数shmid要映射的本地内存shmaddr本地可用地址 一般不确定--》NULLshmflg挂载属性0可读可写SHM_RDONLY只读挂载返回值成功返回映射后的起始虚拟地址指针void*强制转换使用失败(void *)-14. shmdt —— 脱离共享内存解除映射detach进程用完共享内存断开映射不会删除内核中的共享内存段int shmdt(const void *shmaddr);参数shmaddrshmat 返回的映射起始地址返回值成功返回 0失败 -1eg:ifshmdt(p)05. shmctl —— 共享内存控制获取信息、删除、设置属性control多功能控制函数最常用IPC_RMID 删除共享内存int shmctl(int shmid, int cmd, struct shmid_ds *buf);参数shmid共享内存 idcmd控制命令重点三个IPC_RMID标记删除共享内存只有所有进程都 shmdt 脱离后内核才真正释放此时 buf 传 NULLIPC_STAT获取共享内存属性存入 bufIPC_SET修改共享内存权限等属性一般就用IPC_RMID3、bufshmid_ds 结构体指针IPC_RMID 填 NULL返回值成功 0失败 - 1eg:if(shmctl(shmid,IPC_RMID,NULL)0)总结:共享内存a.key -- ftokb.shmid -- shmgetc.映射 -- shmatd.解除 -- shmdte.销毁 -- shmctl

相关新闻

2026/8/25 15:17:02

Nacos + Spring Cloud:服务注册与配置中心

不同版本不要随意混搭,项目已有 Spring Boot 版本时,应先查阅 Spring Cloud Alibaba 的版本对应表。示例版本如下: 组件版本Spring Boot4.0.0Spring Cloud2025.1.0Spring Cloud Alibaba2025.1.0.0Nacos Server3.2.3JDK17 及以上 一、启动 N…

2026/8/25 15:17:02

Wheeltec智能车ROS实战(二):Gazebo仿真环境适配与键盘控制

1. 引言 在上一篇文章中,我们完成了Wheeltec智能车ROS开发环境的搭建——从VMware虚拟机安装Ubuntu 18.04,到ROS Melodic的部署,再到Wheeltec官方工作空间的移植与编译。环境跑通了,接下来就是让小车真正“动”起来。 还没看第一…

2026/8/25 15:17:02

OWASP 2021 A02 失效的身份认证

一、A02 失效的身份认证(身份认证失效)在OWASP 2017版本中身份认证失效为独立高危Top漏洞,2021版本保留为独立A02高危漏洞。核心原因是:系统登录鉴权、会话管理、账号校验体系存在缺陷,导致攻击者可非法攻破登录防线、…

2026/8/25 17:22:45

VSCode路径错误终极指南:从工作目录原理到跨语言解决方案

1. 问题场景:当VSCode告诉你“找不到文件”时“[Errno 2] No such file or directory”这个错误,对于任何在VSCode里折腾过代码的人来说,都像是一个熟悉的“老朋友”。它总是在你最意想不到的时候跳出来,打断你的调试流程&#xf…

2026/8/25 17:22:45

沐神-动手学深度学习4.5权重衰减 习题

答案 这篇文章介绍了深度学习中最常用的正则化技术之一:权重衰减(Weight Decay),也就是数学上的 L_2 正则化。它是应对过拟合(Overfitting)最有效的手段之一。 核心内容总结 权重衰减通过在损失函数中添加…

2026/8/25 17:22:45

沐神-动手学习深度学习-习题答案4.4模型选择,欠拟合,过拟合

####习题答案 这一节深入探讨了机器学习中最核心的挑战之一:模型泛化(Generalization)。它解释了为什么一个在训练集上表现完美的模型,在实际应用(测试集)中可能会表现得很差。 核心内容总结 该页面主要围绕…

2026/8/25 17:22:45

沐神-动手学习深度学习-习题 4.3. 多层感知机的简洁实现

####答案 这一节介绍了如何使用深度学习框架(如 PyTorch)的高级 API 简洁地实现多层感知机(MLP)。相比上一节的“从零实现”,简洁实现将重点放在了模型架构的定义和训练流程的标准化上。 核心内容总结 A. 模型定义 使用…

2026/8/25 17:22:45

从功能清单到测试思维:深度拆解朋友圈测试用例设计

1. 从面试题到实战思维:朋友圈测试用例的深度拆解最近帮团队面试,又看到了这道经典题:“写一个微信朋友圈的测试用例”。说实话,这道题出现的频率高到几乎成了测试岗位的“必考题”。但有意思的是,十个候选人里&#x…

2026/8/25 17:17:44

智能体可观测性与管控实践:QClaw与ADP构建企业级AI工作流

1. 项目概述:从“智能体”到“可管可控”的跨越最近在折腾智能体(Agent)开发的朋友,估计都经历过一个相似的阶段:一开始,我们用LangChain、LlamaIndex这类框架,或者直接在Dify、Coze这类平台上拖…

2026/8/25 1:04:19

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/25 11:48:27

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/25 16:56:43

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/25 0:04:14

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory Meta Description:GetQzonehistory 是一个QQ空间历史说…

2026/8/25 0:04:14

洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表

【题目来源】 https://www.luogu.com.cn/problem/P7912 【题目描述】 小熊的水果店里摆放着一排 n 个水果。每个水果只可能是苹果或桔子,从左到右依次用正整数 1,2,…,n 编号。连续排在一起的同一种水果称为一个“块”。小熊要把这一排水果挑到若干个果篮里&#x…

2026/8/24 13:42:17

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/24 18:13:48

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/25 1:08:14

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…