POSIX 命名的 Semaphore 存储在哪里?

4 linux posix semaphore multiprocessing

命名信号量(使用semaphore.h)由以下形式的名称标识/somename;,即最多 NAME_MAX-4(即 251)个字符的以 null 结尾的字符串,其中包含一个初始斜杠,后跟一个或多个字符,其中没有一个是斜杠。

因为名称对应于文件系统中的路径名。这个信号量位于哪里?

ipcs -s 不显示命名信号量 ,因为 ipcs 用于 System V 信号量。如何定位 POSIX 信号量?

Tob*_*ght 6

sem_overview手册页:

在 Linux 上,命名信号量是在虚拟文件系统中创建的,通常安装在 下/dev/shm,名称形式为sem.somenameNAME_MAX-4 (这就是信号量名称仅限于字符而不是 字符的原因 NAME_MAX。)

不要期望这个细节在非 Linux 系统上有远程相似的地方(事实上,甚至不要期望信号量通过除 之外的任何方式可见sem_open())。