Получить имя семафора POSIX - PullRequest
4 голосов
/ 26 февраля 2011

есть ли способ получить имя семафора с именем POSIX по его идентификатору (sem_t) в C ++?

Спасибо всем и наилучшими пожеланиями.

1 Ответ

5 голосов
/ 26 февраля 2011

К сожалению, нет.В спецификации семафора POSIX нет функции sem_name (или как бы вы ее ни называли).Также нет специфического для Linux обходного пути, поскольку он также не предоставляет sem_name и не сохраняет имя в sem_t, которое определено в <bits/semaphore.h> как

typedef union
{
  char __size[__SIZEOF_SEM_T];
  long int __align;
} sem_t;

Файлы /proc/sys/kernel/sem и /proc/sysvipc/sem, по-видимому, также не содержат этой информации.

Таким образом, ваш лучший вариант - сохранять имя самостоятельно при выполнении sem_open, предпочтительно в классе-оболочке.См. этот ответ для примера класса оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...