int t_free(char *ptr, int struct_type);
Аргумент struct_type
определяет, для какой структуры данных выделяется память. Он может принимать следующие значения:
Значение поля struct_type | Структура данных |
---|---|
T_BIND | struct t_bind |
T_CALL | struct t_call |
T_DIS | struct t_discon |
T_INFO | struct t_info |
T_OPTMGMT | struct t_optmgmt |
T_UNITDATA | struct t_unitdata |
T_UDERROR | struct t_uderr |
Co структурами, приведенными в таблице, мы познакомимся при обсуждении функций TLI. Большинство из них включают несколько элементов netbuf
. Поскольку в некоторых случаях может отсутствовать необходимость размещения всех элементов netfuf
, поле fields
позволяет указать, какие конкретно буферы необходимо разместить для данной структуры:
Значение поля fields | Размещаемые и инициализируемые поля |
---|---|
T_ALL | Все необходимые поля |
T_ADDR | Поле addr в структурах t_bind , t_call , t_unitdata , t_uderr |
T_OPT | Поле opt в структурах t_call , t_unitdata , t_uderr , t_optmgmt |
T_UDATA | Поле udata в структурах t_call , t_unitdata , t_discon |
Отметим одну особенность. Фактический размер буфера и, соответственно, структуры netbuf
зависят от значения поля maxlen
этой структуры. В свою очередь, этот параметр зависит от конкретного поставщика транспортных услуг — именно он определяет максимальный размер адреса, опций и прикладных данных. Чуть позже мы увидим, что эта информация ассоциирована с транспортным узлом и может быть получена после его создания с помощью функции fd
, являющийся дескриптором транспортного узла, который возвращается процессу функцией
Перейдем к основным функциям TLI.
Как видно из рис. 6.18 и 6.19, в качестве первого этапа создания коммуникационного узла используется функция
#include
#include
int t_open(const char *path, int oflags, struct t_info *info);
Аргумент path
является именем специального файла устройства, являющегося поставщиком транспортных услуг, например, /dev/tcp или /dev/udp. Аргумент oflags
определяет флаги открытия файла и соответствует аналогичному аргументу системного вызова info
, имеющей следующие поля:
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии