Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

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

LIBRARY

       Standard C library (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-2001, POSIX.1-2008.

ЗАМЕЧАНИЯ

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

           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>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы  обнаружите  ошибки  в  переводе этой страницы руководства, пожалуйста, отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.