STDIPC(3C) STDIPC(3C)
НАЗВАНИЕ
stdipc: ftok - стандартный пакет для обмена сообщениями
между процессами
СИНТАКСИС
#include
#include
key_t ftok (path, id)
char *path;
char id;
ОПИСАНИЕ
Все средства обмена между процессами требуют от пользо-
вателя передачи ключа системным вызовам msgget(2),
semget(2) и shmget(2), предоставляющим идентификаторы
очередей сообщений. Один из предлагаемых способов фор-
мирования ключа - использование описываемой ниже функ-
ции ftok. Другой путь составления ключей - поместить
идентификатор проекта в старший байт и использовать ос-
тавшуюся часть как порядковый номер. Есть много других
способов формирования ключей, но для каждой системы не-
обходимо определить стандарт на их формирование. Если
стандарт не соблюдается, то возможно, что не связанные
между собой процессы будут непреднамеренно конфликто-
вать. Следует настоятельно рекомендовать помещать в
старший байт ключа символ, каким-либо образом идентифи-
цирующий проект; тогда ключи не будут пересекаться в
пределах данной системы.
Функция ftok возвращает ключ, сформированный по задан-
ным значениям path и id и готовый для использования в
последующих системных вызовах msgget, semget и shmget.
Аргумент path должен быть указателем на маршрутное имя
существующего файла, доступного данному процессу. Аргу-
мент id должен задавать символ, однозначно идентифици-
рующий проект. Заметим, что функция ftok возвращает
одинаковые ключи для разных ссылок на один и тот же
файл, если задается одно и то же значение id, и разные
ключи, если задаются одинаковые имена файлов, но разные
значения id.
СМ. ТАКЖЕ
intro(2), msgget(2), semget(2), shmget(2).
ДИАГНОСТИКА
Функция ftok возвращает значение (key_t) -1, если файл
с заданным маршрутным именем path не существует или
этот файл не доступен процессу.
ПРЕДОСТЕРЕЖЕНИЯ
Если файл, имя которого передавалось функции ftok, уда-
ляется, когда ключ еще ссылается на файл, то последую-
щие вызовы функции ftok с теми же аргументами path и id
завершаются неудачей. Если файл с тем же именем созда-
ется заново, то функция ftok, вероятно, возвратит дру-
гой ключ, отличный от того, что был выдан для первона-
чального файла.
|