Системное программирование в UNIX средствами Free Pascal

в структуре tdes значение скорости


uses linux;
(* Установить скорость ввода *)
Procedure CFSetISpeed(var tdes:TermIOS; Speed:Longint);
(* Установить скорость вывода *)
Procedure CFSetOSpeed(var tdes:TermIOS; Speed:Longint);
uses stdio;
(* Получить скорость ввода *)
function cfgetispeed(var tdes:TermIOS):longint;
(* Получить скорость вывода *)
function cfgetospeed(var tdes:TermIOS):longint;
Следующий пример устанавливает в структуре tdes значение скорости терминала равное 9600 бод. Постоянная В9600 определена в файле stdio.
var
  tdes:termios;
(* Получает исходные настройки терминала * )
tcgetattr(0, tdes);
(* Изменяет скорость ввода и вывода *)
cfsetispeed(tdes, В9600);
cfsetospeed(tdes, В9600);
Конечно, эти изменения не будут иметь эффекта, пока не будет выполнен вызов tcsetattr:
tcsetattr(0, TCSAFLUSH, tdes);
Следующий пример устанавливает режим контроля четности, напрямую устанавливая необходимые биты:
tdes.c_cflag := tdes.c_cflag or PARENB or PARODD;
tcsetattr(0, TCSAFLUSH, tdes);
В этом примере установка флага PARENB включает проверку четности. Установленный флаг PARODD сообщает, что ожидаемый контроль – контроль нечетности. Если флаг PARODD сброшен и установлен флаг PARENB, то предполагается, что используется контроль по четности. (Термин четность, parity, относится к использованию битов проверки при передаче данных. Для каждого символа задается один такой бит. Это возможно благодаря тому, что набор символов ASCII занимает только семь бит из восьми, используемых для хранения символа на большинстве компьютеров. Значение бита проверки может использоваться для того, чтобы полное число битов в байте было либо четным, либо нечетным. Программист также может полностью выключить проверку четности.)

Содержание раздела