获取POSIX信号量的名称

时间:2011-02-26 13:07:08

标签: c++ linux unix posix semaphore

有什么办法可以在C ++中获取名为semaphore的名称(sem_t)吗?

感谢所有人和最好的问候。

1 个答案:

答案 0 :(得分:5)

不幸的是,没有。 POSIX semaphore spec中没有sem_name(或任何你称之为)的功能。还没有特定于Linux的解决方法,因为它也不提供sem_name,并且它不会将名称存储在sem_t中,<bits/semaphore.h>中定义了typedef union { char __size[__SIZEOF_SEM_T]; long int __align; } sem_t;

/proc/sys/kernel/sem

文件/proc/sysvipc/semsem_open似乎也不包含此信息。

因此,您最好的选择是在执行{{1}}时自己存储名称,最好是在包装类中。有关示例包装类,请参阅this answer