Имеется некоторая программа-сервер, которая работает более-менее постоянно и предоставляет кусок разделяемой памяти с некоторой информацией. И есть клиенты, которые иногда запускаются и пишут/читают эту разделяемую память. При этом разделяемая память всегда отображена как минимум в процесс сервера. Но допустим что сервер и клиенты были убиты с помощью kill -9. Разделяемая память ведь так и останется висеть, я правильно понимаю? И как избавиться от такой утечки? Хочется, чтобы кусок разделяемой памяти автоматически освобождался, если он больше не отображён в адресное пространство ни одного процесса.
И вопрос вдогонку: на всех ли современных POSIX-совместимых системах поддерживается POSIX Shared Memory (shm_open/shm_unlink)?