Следует отметить, что преобразование из
Следует отметить, что преобразование из текстового имени файла в число основывается на расположении указанного файла на жестком диске или ином физическом носителе. Поэтому для образования ключа следует применять файлы, не меняющие своего положения в течение времени организации взаимодействия процессов;
Второй компонент значения ключа используется для того, чтобы позволить программисту связать с одним и тем же именем файла более одного экземпляра каждого средства связи. В качестве такого компонента можно задавать порядковый номер соответствующего экземпляра.
Получение значения ключа из двух компонентов осуществляется функцией ftok().
Функция для генерации ключа System V IPC
Прототип функции
#include <sys/types.h> #include <sys/ipc.h> key_t ftok(char *pathname, char proj);
Описание функции
Функция ftok служит для преобразования имени существующего файла и небольшого целого числа, например, порядкового номера экземпляра средств связи, в ключ System V IPC.
Параметр pathname должен являться указателем на имя существующего файла, доступного для процесса, вызывающего функцию.
Параметр proj – это небольшое целое число, характеризующее экземпляр средства связи.
В случае невозможности генерации ключа функция возвращает отрицательное значение, в противном случае она возвращает значение сгенерированного ключа. Тип данных key_t обычно представляет собой 32-битовое целое.
|
Еще раз подчеркнем три важных момента, связанных с использованием имени файла для получения ключа. Во-первых, необходимо указывать имя файла, который
уже существует в файловой системе и для которого процесс
имеет право доступа на чтение (не путайте с заданием имени файла при создании FIFO, где указывалось имя
для вновь создаваемого специального файла). Во-вторых, указанный файл должен
сохранять свое положение на диске до тех пор, пока все процессы, участвующие во взаимодействии, не получат ключ System V IPC. В-третьих, задание имени файла, как одного из компонентов для получения ключа, ни в коем случае не означает, что информация, передаваемая с помощью ассоциированного средства связи, будет располагаться в этом файле.Информация будет храниться
внутри адресного пространства операционной системы, а заданное имя файла лишь позволяет различным процессам сгенерировать идентичные ключи.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий