gpt4 book ai didi

c++ - 使用 C/C++ 命名进程内部互斥体?

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:40 24 4
gpt4 key购买 nike

是否有使用 C/C++(在 Unix/Linux 中)实现命名进程内部互斥锁的方法?

诀窍在于互斥生命周期需要进程持久化。不同于命名的 posix 信号量和共享内存。

例如,您可以在动态映射中拥有 pthread 互斥锁,并使用某个 id 访问它们。但是你需要以某种方式保护互斥体。

如果您使用内存映射文件或共享内存,您将获得文件系统持久性...

有什么想法吗?

最佳答案

您始终可以恢复到旧的(尽管已贬值)System V 信号量,它使用公共(public)键值而不是具有文件系统持久性的 POSIX 命名信号量。话虽这么说,如果您在每个使用它的进程中关闭然后取消链接信号量,则名为信号量的 POSIX 将不会具有文件系统持久性。一旦使用信号量的最后一个进程退出,信号量引用将从文件系统中删除。如果您担心信号量在文件系统级别的可见性,您总是可以在信号量名称前加上“.”。为了使文件不可见,和/或调整文件的权限,以便只有当前用户或某些特权用户/组才能访问信号量。

关于c++ - 使用 C/C++ 命名进程内部互斥体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7534432/

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