4 linux posix semaphore multiprocessing
命名信号量(使用semaphore.h)由以下形式的名称标识/somename;,即最多 NAME_MAX-4(即 251)个字符的以 null 结尾的字符串,其中包含一个初始斜杠,后跟一个或多个字符,其中没有一个是斜杠。
因为名称对应于文件系统中的路径名。这个信号量位于哪里?
ipcs -s 不显示命名信号量 ,因为 ipcs 用于 System V 信号量。如何定位 POSIX 信号量?
从sem_overview手册页:
在 Linux 上,命名信号量是在虚拟文件系统中创建的,通常安装在 下
/dev/shm,名称形式为sem.somename。NAME_MAX-4(这就是信号量名称仅限于字符而不是 字符的原因NAME_MAX。)
不要期望这个细节在非 Linux 系统上有远程相似的地方(事实上,甚至不要期望信号量通过除 之外的任何方式可见sem_open())。