Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

DIAL(3C)

НАЗВАНИЕ
dial - установление связи через терминальную линию

СИНТАКСИС


	#include <dial.h>



	int dial (call)

	CALL *call;

	

	void undial (fd)

	int fd;

ОПИСАНИЕ
Функция dial возвращает дескриптор файла для терминальной линии, открытой на ввод/вывод. Аргументом функции dial является указатель на структуру типа CALL (тип определен во включаемом файле ).

После завершения работы с линией программа должна вызвать функцию undial, чтобы освободить семафор, установленный в момент захвата терминального устройства.

Тип структуры CALL определяется во включаемом файле следующим образом:


	typedef struct {

	  struct termio *attr; /* Указатель  на структуру атри-

	                          бутов termio */

	  int baud;            /* Скорость передачи */

	  int speed;           /* Модем 212A: 300 или 1200 */

	  char *line;          /* Имя устройства для терминаль-

	                          ной линии */

	  char *telno;         /* Указатель на цепочку -  номер

	                          телефона */

	  int modem;           /* Управление модемом для прямо-

	                          го соединения */

	  int *device;         /* Сюда  будет записано имя уст-

	                          ройства, через которое  уста-

	                          новлено соединение */

	  int dev_len;         /* Длина имени устройства */

	} CALL;

Элемент speed предназначен только для использования при установлении соединения по телефонной линии; в этом случае его значение должно равняться 300 или 1200 для модемов 113A или 212A. Отметим, что модем 113A, а также модем 212A, установленный в низкоскоростной режим, могут передавать на любой скорости от 0 до 300 бит в секунду. Однако модем 212A, установленный в высокоскоростной режим может передавать и принимать только на скорости 1200 бит в секунду.

Элемент baud задает желаемую скорость передачи. Например, можно установить baud равным 110, а speed равным 300. Однако если компонент speed равен 1200, baud также должен равняться 1200.

Если нужная терминальная линия является прямым соединением, то указатель на имя устройства должен быть помещен в элемент line. Допустимые значения для таких терминальных устройств содержатся в файле L-devices. В этом случае не требуется заполнять элемент baud, его значение определяется из файла L-devices.

Элемент telno является указателем на цепочку символов, представляющих телефонный номер, по которому должно произойти соединение. Терминирующий символ не нужно включать в цепочку, передаваемую dial, поскольку функция добавит его сама.

Элемент modem специфицирует управление модемом в случае прямого соединения. Если требуется управление модемом, этот элемент должен быть ненулевым.

Элемент attr является указателем на структуру типа termio, описанную во включаемом файле . Элемент attr может быть равен NULL, но если это не так, то все атрибуты, заданные компонентами структуры termio, будут установлены для терминальной линии перед попыткой выполнить соединение, что существенно для таких атрибутов, как четность и скорость передачи.

Элемент device используется для хранения имени устройства, через которое было установлено соединение.

Элемент devlen содержит длину имени устройства, записанного в массив device.

ФАЙЛЫ


	/usr/lib/uucp/L-devices

	/usr/spool/uucp/LCK..устройство

СМ. ТАКЖЕ
uucp(1C) в Справочнике пользователя.
alarm(2), read(2), write(2).
termio(7) в Справочнике администратора.

ДИАГНОСТИКА
В случае неудачного завершения возвращается отрицательное значение, об ясняющее причину неудачи. Мнемоники для этих отрицательных кодов завершения определены во включаемом файле <dial.h>:


	INTRPT (-1)   /* Случилось прерывание */

	D_HUNG (-2)   /*  Повешена  трубка  (чтобы прервать запись) */

	NO_ANS (-3)   /* В течение 10 секунд нет ответа */

	ILL_BD (-4)   /* Некорректная скорость обмена */

	A_PROB (-5)   /* Ошибка при наборе номера */

	L_PROB (-6)   /* Ошибка в линии связи */

	NO_Ldv (-7)   /* Не открывается файл L-devices */

	DV_NT_A (-8)  /* Требуемое устройство недоступно */

	DV_NT_K (-9)  /* Требуемое устройство неизвестно */

	NO_BD_A (-10) /* Нет доступных устройств для работы  на

        		 указанной скорости обмена */

	NO_BD_K (-11) /*  Нет известных устройств для работы на

        		  указанной скорости обмена */

ПРЕДОСТЕРЕЖЕНИЯ
Функция dial(3C) несовместима со стандартными сетевыми средствами (см. подраздел 1C) версии 5 ОС UNIX.

Включение файла <dial.h> автоматически приводит к включению файла <termio.h>.

Поскольку функция dial включает файл <stdio.h>, размер программ, не использующих стандартный ввод/вывод помимо dial, может оказаться больше ожидаемого.

СЮРПРИЗЫ
Функция dial выдает системный вызов alarm(2) на 3600 секунд и затем перехватывает сигнал SIGALRM, "массируя" файл-семафор LCK..устройство и поддерживая тем самым занятость линии. Без подобной меры uucp(1C) может удалить файл LCK..устройство во время своих сеансов чистки, повторяющихся каждые 90 минут. Если сигнал SIGALRM придет во время выполнения пользователем системных вызовов read(2) или write(2), они закончатся неудачей. Если программа пользователя должна выполняться более часа, в случае неудачи системных вызовов read следует проверять значение переменной errno (errno==EINTR), после чего read должен быть выдан повторно.

VPS в 21 локации

От 104 рублей в месяц

Безлимитный трафик. Защита от ДДоС.

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...