Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       ftok - преобразует путь и идентификатор проекта в ключ System V IPC

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <sys/ipc.h>

       key_t ftok(const char *pathname, int proj_id);

ОПИСАНИЕ

       Функция  ftok()  использует  отличительные  свойства  (identity)  файла с именем pathname (которое должно
       указывать на существующий и доступный файл) и младшие 8 бит аргумента proj_id  (который  должен  быть  не
       равен  нулю)  для  генерации ключа System V IPC key_t, который пригоден для работы с msgget(2), semget(2)
       или shmget(2).

       Возвращаемое значение одинаково для всех имён, указывающих на один и тот же файл при одинаковом  значении
       proj_id.   Возвращаемое   значение   будет   отличаться,  когда  (одновременно  существующие)  файлы  или
       идентификаторы проекта различаются.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При успешном выполнении возвращается сгенерированное значение key_t. При  ошибке  возвращается  -1,  а  в
       переменную errno записывается код ошибки согласно системному вызову stat(2).

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ ИнтерфейсАтрибутЗначение │
       ├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │ ftok()                                                              │ Безвредность в нитях │ MT-Safe  │
       └─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       POSIX.1-2008.

ИСТОРИЯ

       POSIX.1-2001.

ПРИМЕЧАНИЯ

       В некоторых старых системах прототип выглядел как:

           key_t ftok(char *pathname, char proj_id);

       В  наши  дни  proj_id  имеет  тип  int, хотя, как правило, по-прежнему из него используется только 8 бит.
       Обычно, при вызове этой функции в качестве proj_id передаётся  символ  ASCII,  именно  поэтому  поведение
       функции считается не определённым, если proj_id равен нулю.

       Естественно,   не  гарантируется,  что  возвращаемый  key_t  уникален.  Обычно  производится  объединение
       указанного байта proj_id с младшими 16 битами номера  inode  и  младшими  8  битам  номера  устройства  в
       32-битный  результат.  Легко могут возникать повторения, например между файлами на /dev/hda1 и файлами на
       /dev/sda1.

ПРИМЕРЫ

       See semget(2).

СМОТРИТЕ ТАКЖЕ

       msgget(2), semget(2), shmget(2), stat(2), sysvipc(7)

ПЕРЕВОД

       Русский перевод этой страницы  руководства  разработал(и)  Azamat  Hackimov  <azamat.hackimov@gmail.com>,
       Dmitry    Bolkhovskikh    <d20052005@yandex.ru>,    Yuri   Kozlov   <yuray@komyakino.ru>,   Иван   Павлов
       <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                          ftok(3)