У меня есть писатель, который создает область общей памяти, я хотел бы убедиться, что читатели не смогут shm_open () область, пока писатель не будет готов. Мой хакерский способ сделать это - писатель будет shm_open в режиме только для чтения. После того, как регион правильно построен, я chmod () файл. Это отвратительно, и я не могу fcntl () дескриптор файла, чтобы изменить разрешения. Любые предложения (если не считать ужасную синхронизацию в регионе?)
Почему chmod () противная? Частично потому, что не существует glibc-кода (то есть открытого), чтобы сообщить мне, где находится область разделяемой памяти (например, / dev / shm). В glibc есть некоторый код для просмотра монтирований, я бы предпочел не копировать его, но у него может не быть выбора, если никто не может дать мне лучшее решение, чем chmod ().