干净地销毁System V共享内存段

2024-05-07

我在用shmget, shmat and shmctl分别获取和创建共享内存段,将其附加到进程地址空间中并删除它。

我想知道进程是否仍然可以使用共享内存段,即使它已被分离并要求使用删除

shmctl(id, IPC_RMID, ...)

在一个过程中。

我无法从手册页获取信息:

IPC_RMID标记要销毁的段。该段只有在最后一个进程将其分离后才会真正被销毁(即,当shm_nattch相关结构的成员shmid_ds为零)。调用者必须是所有者或创建者,或者具有特权。如果一个段已被标记为销毁,则(非标准)SHM_DEST的旗帜shm_perm.mode相关数据结构中的字段通过检索IPC_STAT将被设置。


在 Linux 上,即使已标记为删除,也可以附加共享内存段。但是,POSIX.1-2001 没有指定此行为,并且许多其他实现也不支持它。

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

干净地销毁System V共享内存段 的相关文章

随机推荐

  • 并行多维优化

    我正在构建一个脚本 该脚本生成输入数据 参数 以供另一个程序进行计算 我想优化结果数据 之前我一直在使用 numpy powell optimization 伪代码看起来像这样 def value param run program par
  • SysUtils:ApplicationStatus(WebView)中的ApplicationContext为空

    我可以在基于 WebView 的应用程序启动时看到一些奇怪的东西 它根本不影响应用程序 但我很好奇为什么会出现错误 没有任何崩溃 一切似乎都很好 但是错误 这是日志猫 Loading com google android webview v
  • 在 C# 中,应该使用 try-catch 进行 is-numeric 测试吗?

    我听说使用异常捕获并不是数字测试的推荐做法 例如 bool isnumeric try int i int parse textbox1 text isnumeric true catch isnumenric false 还有其他方法可以
  • 当我达到大小限制时,为什么需要对大小有限的 MemoryCache 调用两次 Set ?

    我们将使用 ASP NET Core 内置的内存缓存解决方案来缓存外部系统响应 我们可能会从内存中转移到IDistributedCache later 我们想要使用Microsoft Extensions Caching Memory ht
  • 电子应用程序的实时重新加载

    我想使用 VScode Gulp Electron 的组合来构建一个应用程序 开发工作流程的一个不错的功能是向我的 Gulp 监视任务添加实时重新加载任务 以便在每次更改时重新加载 Electron 应用程序 任何想法如何实现这一目标 非常
  • 改造如何打印响应 JSON

    我正在使用 Retrofit 并且想要访问从服务器返回的 JSON 响应 有人可以告诉我吗 谢谢 如果您只想查看出于调试目的的响应 只需在改造中打开调试并查看日志即可 它是这样的 restAdapter setDebuggingEnable
  • 样式媒体接收器源 (Chromecast)

    目前 我正在开发我的应用程序的 chromecast 集成 目前 您的投射接收器应用程序有 3 个选项 风格媒体接收器 默认媒体接收器 定制媒体接收器 我真的很喜欢媒体接收器的样式 因为以这种方式设计接收器的样式非常容易 然而 有时我真的很
  • 使用 shell 脚本在 docker 容器内运行脚本

    我正在尝试创建一个 shell 脚本来设置 docker 容器 我的脚本文件如下所示 bin bash docker run t i p 5902 5902 name mycontainer privileged myImage new b
  • 回车前清除行

    我想在一行中打印一个进度 所以我使用回车符 问题是我的进步不是增加 gt 这意味着第一个打印可能是Processing Foo Bar Baz下一个打印可能是Processing Foo 简单回车的问题是第二次打印将是重叠的通过第一张打印
  • 编译器优化对 malloc 的调用以返回更多弱对齐内存是否合法?

    假设我们有以下代码 include
  • 将 HTML 表格转换为 R 数据框

    table cellspacing 1 cellpadding 7 border 1 thead tr td align left valign middle nbsp td td align left 1a My peers make a
  • Codeigniter-如何在删除index.php后加载新页面

    我是 codeIgniter 的新手 我的索引文件中有一些链接 我已经从 url 中删除了 index php 所以现在 url 看起来像 http localhost app Loader demo page http localhost
  • 在 MySQL 中选择不同的对

    我想选择 A 列和 B 列中具有相同值的行 例如 如果我的表是 A B 1 2 3 4 1 2 4 5 输出应该是 A B 1 2 A SELECT DISTINCT A B FROM table 选择表中的所有值 B SELECT DIS
  • 使用 pandas to_datetime 时如何定义格式?

    我想根据以下内容绘制结果与时间的关系图testresult csv文件具有以下格式 并且我无法正确定义 TIME 列的数据类型 TIME RESULT 03 24 2016 12 27 11 AM 2 03 24 2016 12 28 41
  • Android Google Cast 通知禁用

    我将 Google Cast 集成到了我的 Android 应用程序中 我的所有内容都是通过带有通知的服务播放的 当我使用 Google Cast 播放媒体时 它会添加自己的通知 是否可以禁用默认的谷歌强制转换通知并仅使用自己的通知 谢谢
  • Firefox 和 IE 在 元素上添加了内边距/边距。和clearfix的奇怪之处

    在很长一段时间里 我在 Firefox 和 IE 中遇到了一些垂直间距问题 我正在使用一个 我的 css 中的选择器将边距应用于某个容器元素内的所有内容 在 Chrome 中工作正常 但是在 FF 和 IE 中 我似乎不知从何而来得到了神秘
  • 在数据库设计中什么时候需要使用一对一关系?

    在数据库设计中什么时候需要使用一对一关系 在我看来 如果两个表是一对一的关系 那么它们可以合并成一个表 这是真的 对大型表进行垂直分区以减少 I O 和缓存需求 将经常查询的列与很少查询的列分开 向生产系统添加列时alter table就是
  • PHP DOM 获取选定的

    假设 HTML 看起来像这样
  • 在 jQuery 中删除或更改 CSS 伪类

    一个足够简单的问题 如此简单 是否可以使用 jQuery 删除或更改 CSS 伪类 或者任何其他与此相关的 Javascript 方法 具体来说 我想摆脱 专注于输入 我无法以任何方式直接更改 CSS 文件 谢谢你的帮助 Buster 我无
  • 干净地销毁System V共享内存段

    我在用shmget shmat and shmctl分别获取和创建共享内存段 将其附加到进程地址空间中并删除它 我想知道进程是否仍然可以使用共享内存段 即使它已被分离并要求使用删除 shmctl id IPC RMID 在一个过程中 我无法