.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 Giorgio Ciucci (giorgio@crcc.it) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified 2001-11-28, by Michael Kerrisk, .\" Changed data type of proj_id; minor fixes .\" aeb: further fixes; added notes. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ftok 3 "20 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ ftok \- преобразует путь и идентификатор проекта в ключ System V IPC .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .fi .PP \fBkey_t ftok(const char *\fP\fIpathname\fP\fB, int \fP\fIproj_id\fP\fB);\fP .SH ОПИСАНИЕ Функция \fBftok\fP() использует отличительные свойства (identity) файла с именем \fIpathname\fP (которое должно указывать на существующий и доступный файл) и младшие 8 бит аргумента \fIproj_id\fP (который должен быть не равен нулю) для генерации ключа System V IPC \fIkey_t\fP, который пригоден для работы с \fBmsgget\fP(2), \fBsemget\fP(2) или \fBshmget\fP(2). .PP Возвращаемое значение одинаково для всех имён, указывающих на один и тот же файл при одинаковом значении \fIproj_id\fP. Возвращаемое значение будет отличаться, когда (одновременно существующие) файлы или идентификаторы проекта различаются. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении возвращается сгенерированное значение \fIkey_t\fP. При ошибке возвращается \-1, а в переменную \fIerrno\fP записывается код ошибки согласно системному вызову \fBstat\fP(2). .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBftok\fP() T} Безвредность в нитях MT\-Safe .TE .sp 1 .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001. .SH ЗАМЕЧАНИЯ В некоторых старых системах прототип выглядел как: .PP .in +4n .EX \fBkey_t ftok(char *\fP\fIpathname\fP\fB, char \fP\fIproj_id\fP\fB);\fP .EE .in .PP В наши дни \fIproj_id\fP имеет тип \fIint\fP, хотя, как правило, по\-прежнему из него используется только 8 бит. Обычно, при вызове этой функции в качестве \fIproj_id\fP передаётся символ ASCII, именно поэтому поведение функции считается не определённым, если \fIproj_id\fP равен нулю. .PP Естественно, не гарантируется, что возвращаемый \fIkey_t\fP уникален. Обычно производится объединение указанного байта \fIproj_id\fP с младшими 16 битами номера inode и младшими 8 битам номера устройства в 32\-битный результат. Легко могут возникать повторения, например между файлами на \fI/dev/hda1\fP и файлами на \fI/dev/sda1\fP. .SH ПРИМЕРЫ See \fBsemget\fP(2). .SH "СМ. ТАКЖЕ" \fBmsgget\fP(2), \fBsemget\fP(2), \fBshmget\fP(2), \fBstat\fP(2), \fBsysvipc\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .