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, вероятно, возвратит дру- гой ключ, отличный от того, что был выдан для первона- чального файла.@