Есть по крайней мере один способ, несколько громоздкий и, вероятно, не совсем переносимый. Вы можете сканировать /proc
файловую систему в поисках процессов, у которых открыт этот объект SHM. Используйте readlink
на "/proc/<self-PID>/fd/<shm-FD>"
, чтобы получить путь к объекту, а затем отсканируйте символические ссылки "/proc/[0-9]+/fd/*
, сравнивая имена файлов, на которые они указывают, или, что еще лучше, номера устройств и узлов, возвращаемые stat
. Или вы можете просто делегировать эта задача для fuser
утилиты и разобрать ее вывод.