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

НАИМЕНОВАНИЕ
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)