获取POSIX信号量的名称

Joe*_*lav 4 c++ unix linux posix semaphore

有什么方法可以获得一个名为信号量的POSIX,因为它在C++中的ID(sem_t)?

感谢所有和最好的问候.

Fre*_*Foo 5

很不幸的是,不行.POSIX信号量规范中没有sem_name(或任何你称之为)函数.也没有特定于Linux的解决方法,因为它没有提供任何一个,也没有将名称存储在其中,其名称定义为sem_namesem_t<bits/semaphore.h>

typedef union
{
  char __size[__SIZEOF_SEM_T];
  long int __align;
} sem_t;
Run Code Online (Sandbox Code Playgroud)

这些文件/proc/sys/kernel/sem/proc/sysvipc/sem似乎并不包含任何信息.

因此,您最好的选择是在执行时自己存储名称sem_open,最好是在包装类中.请参阅此答案以获取示例包装类.