题信号量的POSIX存储在哪里?

命名信号量(使用semaphore.h)由/ somename形式的名称标识;也就是说,一个以NULL结尾的字符串,最多由NAME_MAX-4(即251个)字符组成,其中包含一个初始斜杠,然后是一个或多个字符(都不是斜杠).

由于名称对应于文件系统中的路径名.该信号量位于何处?

ipcs -s not showing named semaphore
因为ipcs是针对System V信号量的.如何找到POSIX信号量?

解决方法:

在sem_overview手册页中:

On Linux, named semaphores are created in a virtual filesystem, normally mounted under /dev/shm, with names of the form sem.somename. (This is the reason that semaphore names are limited to NAME_MAX-4 rather than
NAME_MAX characters.)

不要期望这个细节在非Linux系统上几乎没有相似之处(事实上,甚至不要期望信号可以通过sem_open()以外的任何方式看到).

上一篇:Semaphore源码解读


下一篇:java-ConcurrentHashMap中基于番石榴的信号量与信号量