gpt4 book ai didi

c - 共享内存 Reader(只读)在 Writer 终止时挂起

转载 作者:太空宇宙 更新时间:2023-11-04 04:56:53 25 4
gpt4 key购买 nike

在 linux、C 中,使用共享内存,我有一个 Writer 进程和许多 Readers。

当 Writer 终止时,所有正在运行的 Reader 都会挂起。 Writer 在终止时确实执行 shm_unlink。

我想,可能是错误的,内核知道 Readers 并且他们可以继续阅读。当然数据是不会改变的,所以读者可以知道什么时候可以优雅地结束。

有什么想法可以实现吗?

最佳答案

您可以在共享内存中创建的 header 中使用标志来指示 EOF。您可以定期更新时间戳以检测编写器不干净终止/

您还可以使用 shmctl 来查找附加人数,这可能有助于您判断作者是否已经离开。

您也可以尝试重新附加/fstat 以验证该段未被删除。

如果这些答案不令人满意,请告诉我们是 POSIX 还是 System V 共享内存。

关于c - 共享内存 Reader(只读)在 Writer 终止时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com