[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Некоторые флаги режимов

Следующая страница  перечисляет некоторые  атрибуты терминала, которые
могут быть  изменены. Флаги,  перечисленные во второй колонке таблицы,
являются символьными  константами, определенными  в <sys/termios.h>, и
представляют собой  значения отдельных битов. Приложение в конце этого
раздела перечисляет  все доступные  флаги. Значения  флагов хранятся в
следующих четырех полях структуры termios:

c_iflag Поле c_iflag  описывает режим обработки ввода. Если установлен
        флаг   IGNBRK,    то   условие   разрыва   (break   condition)
        игнорируется, то есть не помещается в очередь ввода и не может
        быть считано  ни одним  процессом. Иначе, если установлен флаг
        BRKINT,  условие    разрыва  генерирует  сигнал  прерывания  и
        сбрасывает входную и выходную очереди.

        Если установлен  ISTRIP, то  вводимые символы  обрезаются до 7
        бит,  иначе   они  передаются   как  8-битные  значения.  Если
        установлен ICRNL, то символ CR переводится в символ NL.

        Если установлен  IXON, разрешается  старт/стоповое  управление
        выводом. Получение  СТОП-символа будет  задерживать  вывод,  а
        СТАРТ-символ  -   возобновляет  его.   Все  СТАРТ/СТОП-символы
        игнорируются и  не  читаются.  Если  установлен  IXANY,  любой
        введенный символ будет возобновлять приостановленный вывод.

c_oflag Поле c_oflag  содержит флаги,  управляющие обработкой  вывода.
        Если установлен  флаг OPOST,  выводимые  символы  подвергаются
        постобработке в  соответствии с  остальными флагами, иначе они
        передаются без изменений.

        Если установлен  ONLCR, символ  NL передается  как пара CR-NL.
        TAB3 и XTABS задают замену символов табуляции пробелами.

c_cflag Поле c_cflag  управляет аппаратными  атрибутами  терминального
        интерфейса. Биты  CBAUD задают  скорость передачи.  Биты CSIZE
        задают размер  символа в  битах как  для  приема,  так  и  для
        передачи.

        Если CSTOPB  установлен, передаются  два стоповых  бита. Флаги
        PARENB и PARODD управляют контролем четности.

c_lflag Если  установлен   ICANON,  разрешена  каноническая  обработка
        ввода. Допускаются  функции редактирования  (забой и  стирание
        строки) и объединение вводимых символов в строки, ограниченные
        символами NL,  EOF, EOL,  EOL2.  Если  ICANON  не  установлен,
        данные для  удовлетворения запросов  чтения берутся  прямо  из
        "сырой" очереди.  Неканоническая обработка  будет  обсуждаться
        вкратце.

        Если установлен  ECHO, на  каждый полученный  символ  выдается
        эхо.  Если  установлен  режим  ICANON,  доступен  ряд  функций
        управления эхо. Если установлены флаги ECHO и ECHOE, а ECHOPRT
        не установлен,  эхо для символа забоя выдается как ASCII BS SP
        BS (сдвиг  каретки назад  - пробел - сдвиг каретки назад), что
        очищает последний  символ  на  экране  терминала.  Если  ECHOK
        установлен, а  ECHOKE нет,  то после  символа стирания  строки
        передается NL,  чтобы подчеркнуть,  что  строка  была  стерта.
        Символ переключения  режима (escape),  идущий перед  символами
        очистки или стирания строки, лишает эти символы их функции.
        Если установлен  флаг ISIG,  вводимые символы  проверяются  на
        совпадение с символами INTR, QUIT, SUSP и DSUSP. Если вводимый
        символ  соответствует  одному  из  них,  выполняется  функция,
        ассоциированная с  этим символом.  Если ISIG не установлен, не
        выполняется никакой проверки.

        Если установлен  флаг IEXTEN,  то над  входными данными  будут
        выполняться  функции  из  расширенного  набора,  зависящие  от
        реализации. Этот флаг должен быть установлен для распознавания
        символов WERASE, REPEINT, DISCARD и LNEXT.
                       НЕКОТОРЫЕ ФЛАГИ РЕЖИМОВ

          IGNBRK   Игнорировать условие разрыва линии
          BRKINT   Посылать сигнал прерывания при разрыве линии
c_iflag   ISTRIP   Срезать старший бит у символов
          ICRNL    Преобразовывать CR в NL при вводе
          IXON     Разрешить старт/стоповое управление вводом
          IXANY    Любой символ возобновляет вывод

          OPOST    Постобработка вывода
c_oflag   ONLCR    Преобразовывать NL в CR-NL при выводе
          TAB3     Преобразует табуляцию в пробелы

          B1200    1200 бит/сек
          B2400    2400 бит/сек
          CS7      Семибитные символы
c_cflag   CS8      Восьмибитные символы
          CSTOPB   Посылать два стоповых бита (иначе - один)
          PARENB   Разрешить контроль четности
          PARODD   Проверять нечетность, иначе - четность

          ISIG     Разрешить сигналы
          ICANON   Канонический ввод (забой и стирание строки)
c_lflag   ECHO     Разрешить эхо
          ECHOE    Эхо для символа очистки BS-SP-BS
          ECHOK    Выдавать NL после символа стирания строки
          IEXTEN   Разрешить функции расширения