Что такое IPC_EXCL? - PullRequest
       4

Что такое IPC_EXCL?

2 голосов
/ 13 июля 2020

Меня действительно интересует полное имя флага IPC_EXCL, когда я использую функцию shmget в Linux. Я знаю, что он используется с IPC_CREAT, чтобы гарантировать сбой, если сегмент разделяемой памяти уже существует. Мы будем благодарны за любой ответ.

Ответы [ 2 ]

3 голосов
/ 13 июля 2020

Предположение Халка в комментариях к вопросу верное: «EXCL» - это сокращение от «эксклюзив». Это не очевидно из спецификации самого IPC_EXCL (цитируется https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_ipc.h.html):

IPC_EXCL Ошибка, если ключ существует.

... но если вы знаете, что флаг был назван по аналогии с open(2) flag O_EXCL, то это очевидно из спецификация , что флаг (цитируется https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html):

O_EXCL Флаг исключительного использования.

2 голосов
/ 13 июля 2020

Это означает эксклюзивный . IPC_CREAT|IPC_EXCL отражает O_CREAT|O_EXCL (используется с open) в том смысле, что он гарантирует, что вызывающий поток либо станет эксклюзивным создателем объекта (или файла) IP C (межпроцессное взаимодействие), либо функция завершится с ошибкой с EEXIST.

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