POSIX共享内存:找出是否有人附加到某个段

时间:2011-07-13 15:43:13

标签: posix shared-memory

在System V共享内存(shmget())中,可以使用shmctl(... IPC_STAT ...)并阅读结果字段shm_nattch来查找某个细分受众群的附加用户数数据结构。

使用POSIX共享内存(shm_open()),有没有办法做类似的事情,或者至少找出是否有人附加?

1 个答案:

答案 0 :(得分:1)

至少有一种方法,有点麻烦,可能不太便携。您可以扫描/proc文件系统,查找已打开此SHM对象的进程。在readlink上使用"/proc/<self-PID>/fd/<shm-FD>"获取对象路径,然后扫描“/proc/[0-9]+/fd/*符号链接,比较它们指向的文件名,或者更好的是,{{1}返回的设备和inode编号或者您可以简单地将此任务委派给stat实用程序并解析其输出。