【问题标题】:when using shared memory in unix在 unix 中使用共享内存时
【发布时间】:2024-01-17 20:33:01
【问题描述】:

当您使用 C for Unix 编写使用共享内存的数据供应商应用程序时,您何时仅在服务器退出或完成更新共享内存时分离共享内存?

【问题讨论】:

  • 当服务器退出时我会这样做。当然,恕我直言。
  • 如果服务器分离,客户端仍然可以访问共享内存吗?

标签: shared-memory


【解决方案1】:

AFAIK,保持连接不会打扰。

但是,由于附件会跟踪附加的进程数,如果该计数大于 0,则在该计数恢复为 0 之前(换句话说,当所有进程都分离时),您将无法销毁您的 shm。 如果您附加了主进程,我不确定您是否能够从外部“管理”进程中为您销毁它。

根据我的个人经验,我不会在写操作后分离 SHM,仅在进程退出时。

【讨论】: