LINUX.ORG.RU

Как получить число примапированных к shared memory?


0

0

Для созжания shared memory я пользуюсь shm_open. Как можно узнать число юзеров, примапированных к этой же shmem? Есть структура shmid_ds, но ее могу получить (через shmctl), если создаю "правильную" shmem через shmget. shm_open дает файловый дескриптор, но в структуре stat что-то не видно нужного поля, Что-то должно быть,но раскопки пока безрезультатные,

anonymous

Пройдись по каталогам /proc/<%pid%>/fd/ и поищи ссылки на открытый функцией shm_open() файл. Сам файлик (ядро 2.4) будет лежать /dev/shm/

Gamzat
()
Ответ на: комментарий от Gamzat

Шарить в кодах по каталогам можно, но должен быть более простой путь. Где-то это сидит, может в линках в структуре stat - надо посмотреть. Ведь когда делаешь unlink, файл реально убивается только после последнего close.

anonymous
()
Ответ на: комментарий от sS

>2sS:
>а посмотреть /proc/sysvipc/shm не проще ?

Естественно проще, но в данном случае там ничего 
не отображается, т.к. это именно SysV ipc, 
а smh_open создает/открывает POSIX Shared Memory Object.

Gamzat
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.