русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Получение и установка атрибутов терминала


Дата добавления: 2013-12-23; просмотров: 1144; Нарушение авторских прав


 

Первые две функции, описанные на странице Руководства termios(3C), используются для полу­чения и установки атрибутов терминала. tcgetattr(3C) получает текущие установки терминально­го устройства. tcsetattr(3C) изменяет эти установки. Эти функции получают и передают требуе­мые параметры в виде управляющей структуры termios.

Параметры функций tcgetattr(3C) и tcsetattr(3C) таковы:

fildes дескриптор файла, соответствующий терминальному устройству. Для этого дескрипто­ра вызов isatty(3F) должен возвращать ненулевое значение.

optional_actions Комбинация флагов, определенных в <termios.h>. optional_actions определяет, когда должны быть выполнены изменения и что делать с находящимися в буферах устройства данными при изменении параметров.

termios_p указатель на структуру termios. Эта структура содержит флаги и битовые поля, ис­пользуемые для управления терминальным интерфейсом ввода/вывода. Флаги и поля этой структуры обсуждаются позже.

После исполнения tcgetattr(3C) рекомендуется сохранить копию этой структуры, чтобы програм­ма могла вернуть начальное состояние терминального интерфейса. Дело в том, что функции tcsetattr(3C) изменяют настройки не файлового дескриптора вашего процесса, а настройки драйвера в ядре Unix. Внесенные вами изменения не откатываются автоматически при заверше­нии программы, поэтому ненормально завершившаяся программа может оставить терминал в непригодном для работы состоянии.

В некоторых случаях, для восстановления параметров терминала можно воспользоваться ко­мандой stty(1). В Solaris, команда stty sane пытается привести терминал в режим, пригодный для интерактивной работы.

При изменении настроек терминала, вместо того, чтобы формировать значения полей структуры termios самостоятельно, рекомендуется получить текущие настройки терминала вызовом tcgetattr(3C), затем поменять нужные вам параметры в структуре и установить новые параметры вызовом tcsetattr(3C). При этом вы, по возможности, сохраните те настройки, которые пользова­тель мог сделать до запуска вашей программы. Кроме того, в последующих версиях Solaris и в других Unix-системах, в структуре termios могут появиться дополнительные поля или флаги. Если ваша программа не будет без нужды изменять незнакомые ей настройки, это значительно облегчит её адаптацию к новым версиям Solaris и ее перенос на другие платформы.



 

Параметр optinal_actions функции tcsetattr(2)

 

Параметр optional_actions функции tcsetattr(2) может принимать следующие значения:

TCSANOW Атрибуты изменяются немедленно.

TCSADRAIN Изменения атрибутов происходят только после того, как был передан («осушен») весь вывод в fildes. Этот запрос может быть использован при изменении атрибутов, которые влияют на обработку вывода.

TCSAFLUSH Это похоже на TCADRAIN. Изменение происходит после того, как весь вывод в fildes был передан, а непрочитанный ввод сброшен. Например, этот запрос полезен, если нужно проигнорировать все символы в буфере ввода.

 



<== предыдущая лекция | следующая лекция ==>
Канонический ввод | Управляющие символы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.062 сек.