POSIX 命名信号量存储在哪里?

4

命名信号量(使用semaphore.h)由形如/somename;的名称标识,即一个以空字符结尾的字符串,最多可以包含 NAME_MAX-4(即251)个字符,其中包括了一个起始的斜杠,后跟一个或多个字符,其中没有任何斜杠。

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

ipcs -s not showing named semaphore 因为ipcs是用于System V信号量的。如何找到POSIX信号量?

1个回答

6
sem_overview手册页面中得知:
在Linux系统中,命名信号量被创建在一个虚拟文件系统中,通常挂载在/dev/shm下,名称形如sem.somename。(这就是为什么信号量名称的长度被限制在NAME_MAX-4而不是NAME_MAX个字符的原因。)
但是,在非Linux系统上不要期望这个细节会有类似的表现(实际上,不要期望除了sem_open()之外的任何方式都能看到信号量)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接