Linux 上共享内存的生命周期是多长

2024-06-25

我正在使用 ftok/shmget/shmat/shmdt 函数在 Linux 上创建、写入和读取共享段。

如果我写入一个程序中的段,然后退出,然后稍后从另一个程序中读取该段,我会惊讶地发现数据仍然存在。

我预计当共享一个段的最后一个进程执行 shmdt 时,该段将被释放。

我可以依赖这种行为吗?或者它类似于在 free()'ing 后继续使用指针吗?


共享内存区域将一直保留,直到通过以下方式删除为止:shmctl(shmid,IPC_RMID,...)[或系统重新启动]。这将在每个进程完成后生效shmdt[或终止]。

语义与文件非常相似。shmat就好像open. shmdt就好像close以及[以上]shmctl就好像unlink.

如果您关闭一个文件,您希望它一直存在直到被专门删除,不是吗?因此,共享内存段的操作类似

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 上共享内存的生命周期是多长 的相关文章

  • 我们可以在 C# 中定义枚举的隐式转换吗?

    是否可以在 C 中定义枚举的隐式转换 可以实现这一目标的东西吗 public enum MyEnum one 1 two 2 MyEnum number MyEnum one long i number 如果没有 为什么不呢 有一个解决方案
  • 您使用什么工具和技术来查找死代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您使用哪些工具和技术来查找 NET 中的死代码 过去 我用 Obsolete 属性修饰方法 传递 tr
  • Linux 上的 JavaFX

    Linux x86 和 x64 上的 JavaFX 情况如何 JavaFX 应用程序可以在 Linux 操作系统上顺利执行吗 我发现了 2011 年和 2012 年的一些问题 当时应用程序不稳定 目前发布的 JFX 版本是 2 2 4 在
  • OWIN AuthenticationOptions 在 mvc5 应用程序中运行时更新

    Hi 情况如下 我在 iis 7 上有一个带有 Identity 2 的 MVC 5 应用程序 该应用程序为多个网站提供服务 主机名是某些网站的关键 网站 另一个网站 等等 我决定在我的所有网站上使用谷歌外部登录 每个网站都应该是带有个人
  • 如何从 std::vector 中删除元素而不调整其大小

    迭代器擦除 迭代器位置 迭代器擦除 首先是迭代器 迭代器最后 擦除元素 从向量中删除 容器可以是单个元素 位置 或一系列元素 第一个 最后一个 这有效地减少了向量 大小除以元素数量 删除 调用每个元素的 之前的析构函数 and remove
  • 外部剃刀视图看不到外部模型

    我对外部剃刀视图有疑问 在我的项目中 我有主 mvc Web 程序集和动态加载的外部类库程序集 来自 DB 及其自己的控制器 视图和模型 这些程序集在运行时不会直接引用和加载 我能够通过为控制器创建自定义控制器工厂 为视图创建自定义虚拟路径
  • MVVM 同步集合

    是否有一种标准化方法可以将 Model 对象集合与 C 和 WPF 中匹配的 ModelView 对象集合同步 我正在寻找某种类 可以使以下两个集合保持同步 假设我只有几个苹果 并且可以将它们全部保存在内存中 换句话说 我想确保如果我将 A
  • 命令中带空格的 Windows C 系统调用

    我无法使用名称和参数中的空格进行系统调用 例如 system c program files something example exe c my files example txt 我尝试过各种我知道的方法来逃避 但没有任何效果 我努力了
  • Linux C++ 调试器

    我正在寻找完美的 Linux C 调试器 我不期望成功 但搜索应该提供丰富的信息 我是一个非常有能力的 gdb 用户 但 STL 和 Boost 很容易压垮我的调试技能 并不是说我无法深入了解数据结构的内部结构 而是它需要很长时间 我通常会
  • UWP - 绑定枚举差异

    我遇到了一个非常有趣的问题 假设 UWP 应用中有以下 XAML 页面内容
  • argc 和 argv 在 Windows 中没有用吗?

    在 Linux 中 argc 和 argv 计算终端中的参数 但在 Windows 中 我找不到放置第二个参数的地方 事实上 每次我运行该程序时 它都会创建那个丑陋的黑色窗口 我什至没有机会给出任何争论 那么这两个变量在Windows平台下
  • OpenMP 循环数组访问中的错误共享

    我想利用 OpenMP 来并行执行我的任务 我需要将数组的所有元素减去相同的数量并将结果写入另一个向量中 两个数组都是动态分配的malloc第一个填充了文件中的值 每个元素都有类型uint64 t pragma omp parallel f
  • 如何在Windows Azure上调用ffmpeg.exe转换音频文件?

    我在 Windows Azure 上运行 Web 角色来接收 AAC 音频文件 通过 base64 字符串上传 并将它们存储到 blob 中 现在效果很好 接下来 我还必须将它们转换为 MP3 并将 MP3 存储到 blob 中 我决定使用
  • 是否有理由为什么用 XmlInclude 修饰的基类在序列化时仍然会抛出类型未知的异常?

    我将简化代码以节省空间 但所提供的内容确实说明了核心问题 我有一个类 它的属性是基类型 有 3 个派生类可以分配给该属性 如果我将任何派生类分配给容器并尝试序列化容器 XmlSerializer 会抛出可怕的错误 类型 x 不是预期的 使用
  • 简单的喷射器将具体类型与生活方式结合起来

    我正在寻找一种可以使用指定的生活方式注册具体类型的方法 基本上如下所示 public void SomeFunction Type concrete Lifestyle lifestyle gt container Register con
  • 为什么 ASP.Net MVC Range 属性采用类型?

    我只是想知道为什么范围验证属性可以采用类型和两个字符串作为参数 这是为了根据枚举或类似的东西验证字符串吗 另外 我想做的是找到一种简单的方法来验证必须出现在枚举中的 3 个字符的字符串 有什么建议吗 谢谢 亚历克斯 我确实发现你提到的 Ra
  • cURL 错误 28:5001 毫秒后解析超时

    我使用 WordPress 最近将我的网站从 cpanel 主机移动到带有 directadmin 面板的 Linux 服务器 转账后立即发现客户在通过EDD插件下载时出现以下错误 cURL 错误 28 5001 毫秒后解析超时 我也遇到了
  • 矩阵行列式算法 C++

    我是编程新手 我一直在寻找一种找到矩阵行列式的方法 我在网上找到了这段代码 但我很难理解这里的算法 我对递归的基础没有问题 但继续和主循环我很难理解 非常感谢任何可以向我解释该算法的人 int determ int a MAX MAX in
  • 如何从与 C# lambda 集成(而非代理集成)的 Amazon API 网关获取正确的 http 状态代码?

    我正在使用 C lambda 与 API 网关集成 我希望 API 网关返回正确的错误代码 例如 400 404 500 等 API网关模块tf文件 provider aws version lt 2 70 0 region var aws
  • 有关 Endian 性和 .Net 的详细信息?

    我有几个关于字节顺序的问题 这些问题足够相关 我保证将它们作为一个问题提出 1 字节顺序是由 Net还是由硬件决定的 2 如果是由硬件决定的 我怎样才能在C 中找出硬件的字节序 3 字节序是否影响二进制交互 例如 OR AND OR 或移位

随机推荐

  • 有效地选择与 Pandas DataFrame 中的多个值之一匹配的行[重复]

    这个问题在这里已经有答案了 Problem 给定 Pandas DataFrame 中的数据 如下所示 Name Amount Alice 100 Bob 50 Charlie 200 Alice 30 Charlie 10 我想选择所有行
  • MS SQL 2005 备份能否恢复到 MS SQL 2008 实例上?

    是否可以将 SQL Server 2005 数据库的备份恢复到 SQL Server 2008 的实例上 我需要重建一台服务器 因为它变得相当糟糕 所以我计划借此机会升级到 SQL 2008 并想知道我是否能够正常恢复我的备份 从 2005
  • 如何在命令提示符中仅显示具有备用数据流的文件

    我知道要在命令提示符中显示所有文件 如果有 的备用数据流 这是命令dir R 但是 如果我只想显示具有备用数据流的文件 该怎么办 dir s r findstr e DATA or dir r findstr e DATA 第一个将在所有子
  • 使 django 中的内联表单集成为必需

    我是 django 的新手 到目前为止 我使用的是 symfony PHP 框架 我的问题是这样的 我有一个模型事件和模型日期 日期有一个事件的外键 因此事件可以 或应该 有一个或多个日期 现在我想要一个表单来创建事件 并且该表单应包含一个
  • 将 Linq 表达式转换为 SQL Server 查询

    我正在使用一些 crm 框架 该框架没有任何内部 orm 并且不使用实体框架 仅使用纯 sql 查询 我在数据库中的每个表都有实体 所以我有例如 public class Customer public string FirstName g
  • 分支和文件夹的 gitolite 权限

    在 gitolite 我想要 developers能够推送到除以下之外的任何分支master I want user1能够推送到任何分支 包括master 除了不是某个目录master 我该怎么做呢 这应该解决以下两个问题 repo are
  • 为什么Java中没有多重继承,但允许实现多个接口?

    Java 不允许多重继承 但它允许实现多个接口 为什么 因为接口只指定what班级正在做 而不是how它正在这样做 多重继承的问题是两个类可能定义不同的方式做同样的事情 并且子类无法选择选择哪一个
  • C++ 类型特征

    我知道它们对有关您实例化它们的类型的信息进行编码 但是它们是如何工作的 比如说 类型特征std is class 它是如何工作的 所有的实现看起来都像是空的结构 我必须承认我正在摸不着头脑 这些名字看起来足够具有描述性 所以我能理解它们的意
  • 将textView和图像对齐在同一行JAVA [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我创建了Food使用下面的代码选项卡 JTabbedPane tabbedPane new JTabbedPane JT
  • 为什么带有 unsigned long long 参数的 std::bitset 构造函数未标记为显式?

    标准库类模板std bitset
  • 如何在 Watson Assistant 上切换技能?

    目前 在 IBM Watson Assistant 中 您只能向助理分配一项技能 如何以编程方式交换助手的主要技能 未来的计划是让 Assistant 支持多种技能以及自定义技能 暂时作为数据 henrik https stackoverf
  • 基于两列值的VLOOKUP

    我有一个表 其中一列包含用户 ID 这些被多次输入以显示特定主题的结果 ID Topic Pass Fail 71086686 Science P 71086686 Maths P 71086686 Tech P 71086686 ICT
  • 为什么不使用 sshrc 中设置的 $PATH?

    我正在尝试在 OS X 服务器上通过 ssh 设置 svn 为了做到这一点 我读到我需要一个包装器来设置 umask 并 在我的例子中 设置存储库根 一种快速而肮脏的方法是重命名 usr bin svnserve并将包装器脚本放置在该位置
  • 将跨度值存储到 JavaScript 变量中

    我正在尝试编写 javascript 它将遍历一个跨度 获取其值 并将其存储在可用于执行算术的变量中 span class ServerData 30 span span class ServerData 6 span 关于以上两行 我的功
  • 如何删除Postman中的会话cookie?

    我正在 Postman 中测试我的 API 但在模拟时遇到问题log out If I do a call to delete the session cookie the session cookie is still there aft
  • 如何在 mongodb 中对数组进行 AND 查询?

    我有一个带有标签的数组 它是文档的一部分 例如 红 绿 蓝 白 黑 现在我想找到所有有红色和蓝色的文档 使用 all 条件查找同时匹配 红色 和 蓝色 条件的记录 db my collection find tags all red blu
  • 公共还是私人?

    我真的不明白为什么将成员变量和成员函数设为私有通常是一种好的做法 是为了防止人们搞砸事情 更多的是为了组织工具吗 基本上 是的 这是为了防止人们搞砸事情 封装 信息隐藏 是您正在寻找的术语 通过仅向外界发布最少的信息 您可以根据需要自由地更
  • 角度2:语法错误:意外的标记<(...)

    我知道 这个问题已经被问过 但我找不到适合我的特定情况的解决方案 我无法理解错误的真正原因 我有一个运行良好的 angularjs2 应用程序 现在我想导入marked图书馆 我做了什么 npm install marked tsd ins
  • 如何避免按后退按钮/键返回登录布局?

    我想为我的研究所创建一个应用程序 问题是 我的应用程序将有两种布局 登录和仪表板 学生可以正确填写登录表单 进入仪表板 按下按钮以及填写其他字段 但是 如果用户随后按下后退按钮 则不应返回到登录屏幕 而应保留在仪表板中 或者如果失败 则退出
  • Linux 上共享内存的生命周期是多长

    我正在使用 ftok shmget shmat shmdt 函数在 Linux 上创建 写入和读取共享段 如果我写入一个程序中的段 然后退出 然后稍后从另一个程序中读取该段 我会惊讶地发现数据仍然存在 我预计当共享一个段的最后一个进程执行