2011-02-26 83 views

回答

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/sem似乎並沒有包含名稱存儲這些信息。

因此,您最好的選擇是在做sem_open時自己保存名字,最好是在包裝類中。有關示例包裝類,請參見this answer

+0

謝謝larsmans! – JoeSlav 2011-02-26 14:43:16