c - 在 Linux 中使用 C 共享内存
问题描述
shm_unlink
即使当前有其他进程打开共享内存,使用是否安全?
例如:
处理 Bshm_open
然后处理 A shm_unlink
。流程B可以吗?
解决方案
是的,如果另一个进程打开它,调用 shm_unlink 是安全的。根据 shm_unlink 的手册页:
shm_unlink() 的操作类似于 unlink(2):它删除共享内存对象名称,并且一旦所有进程都取消映射该对象,就会取消分配并销毁相关内存区域的内容。在成功 shm_unlink() 之后,尝试 shm_open() 具有相同名称的对象将失败(除非指定了 O_CREAT,在这种情况下会创建一个新的、不同的对象)。
推荐阅读
- node.js - Node.js 导出一个返回对象的函数
- python - 如何检查Python中的for循环是否被中断
- ios - 如何为按钮设置动画以向右显示视图并在点击时弹回
- python - 在linux中将csv文件加载到数据库中
- css - 从另一个css文件导入样式元素时如何排除样式元素
- javascript - 当将 elasticsearch 与 d3.js 集成时,“未捕获的类型错误:无法读取未定义的属性‘客户端’”我收到此错误
- postgresql - 我应该给 Flyway 哪些 Postgres 特权?
- php - PDO对象的最佳利用
- angular - 2个时间间隔之间的mongodb聚合
- c# - 如何使用 C# Web 应用程序使用和重定向 JWT 令牌 URL \login\login.php?token=jwt.goes.here