Я создал глобальный семафор, используя sem_open () с пользователем root:
sem_t * sem = sem_open ("ghMutex", O_CREAT, 0644, 1);
, поэтому, когда я делаю:ls -al / dev / shm /
-rw-r - r-- 1 root root 32 янв. 23 00:23 sem.ghMutex
Теперь у меня другой пользователь в Linux (скажем, User1), который снова вызывает ту же функцию sem_open для создания семафора:
sem_t * sem = sem_open ("ghMutex", O_CREAT, 0644, 1);
В последнем вызове функции,Я получаю ошибку EACCES (разрешение отклонено), так как семафор с таким именем уже создан с пользователем root.
Мои вопросы:
1) как я могу создать семафор с тем же именем длядругой пользователь ??
2) Как лучше всего использовать соглашение об именах для семафора в sem_open (), чтобы к нему могли обращаться несколько пользователей ??