命名信号量存储在哪里?

命名信号量存储在哪里?

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

因为名称对应于文件系统中的路径名。这个信号量位于哪里?ipcs用于 System V 信号量。如何定位 POSIX 信号量?

答案1

人 7 SEM_概述:

通过文件系统访问命名信号量

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

答案2

/proc/<pid>/maps/将显示具有特定 PID 的进程的内存映射。 (相关问题:https://stackoverflow.com/questions/1401359/understanding-linux-proc-id-maps

从输出来看,POSIX 信号量显示为/dev/shm/.

相关内容