IXANY | При установке IXANY любой принятый символ (не просто Control-Q) перезапускает передачу выходных данных. Этот флаг в POSIX не определен. |
IMAXBEL | При установке IMAXBEL предупреждающий символ ('а') передается тогда, когда символ принимается, а входной буфер уже полон. Этот флаг в POSIX не определен. |
16.5.5. Флаги режима вывода
Флаги режима вывода модифицируют обработку выходных данных OPOST. Ни один из этих флагов не переносим, поскольку POSIX определяет только OPOST и называет его 'реализация определена'. Однако вы обнаружите, что настоящие приложения обработки терминалов часто нуждаются в обработке выходных данных, а флаги режима вывода, доступные в Linux, доступны также в большинстве систем Unix, включая SVR4.
Код терминала отслеживает текущий столбец, что позволяет подавить лишние символы возврата каретки ('
') и преобразовать, где возможно, табуляцию в пробелы. Столбцы отсчитываются, начиная с нуля. Текущий столбец устанавливается в ноль всякий раз, когда передается или предполагается символ возврата каретки ('
'), как может быть вызвано символом новой строки ('
') при установке ONLRET или ONLCR, или когда текущий столбец установлен в единицу и передается символ забоя ('').
Флаги, работающие на с_oflag, перечислены ниже.
OPOST | Это единственный флаг режима вывода, определенный в POSIX, который сообщает, что он включает обработку выходных данных, 'определяемую реализацией'. Если OPOST не установлен, к другим флагам режима вывода не обращаются и обработка выходных данных не выполняется. |
OLCUC | При установке OLCUC символы нижнего регистра передаются терминалу как символы верхнего регистра. Этот флаг в POSIX не определен. |
ONLCR | При установке ONLCR перед передачей символа новой строки ('
') передается символ возврата каретки ('
'). Текущий столбец устанавливается в ноль. Этот флаг в POSIX не определен. |
ONOCR | При установке ONOCR символы возврата каретки ('
') ни обрабатываются, ни передаются, если текущий столбец равен нулю. Этот флаг в POSIX не определен. |
OCRNL | При установке OCRNL символы возврата каретки ('
') преобразуются в символы новой строки ('
'). При установке ONLRET текущий столбец устанавливается в ноль. Этот флаг в POSIX не определен. |
ONLRET | При установке ONLRET во время передачи символа новой строки ('
') или возврата каретки ('
') текущий столбец устанавливается в ноль. Этот флаг в POSIX не определен. |
OXTABS | При установке OXTABS символы табуляции преобразуются в пробелы. Позиции табуляции установлены после каждого восьмого символа, а количество передаваемых пробелов определяется текущим столбцом. Этот флаг в POSIX не определен. |
Кроме того, существуют флаги задержки, которые устанавливать не нужно; они предназначены для компенсации старого, плохо спроектированного и на данный момент, к счастью, редко встречающегося оборудования. За управление флагами задержки ответственны библиотеки termcap и terminfo. Это означает, что в их модификации нет необходимости. В [37] они упомянуты как устаревшие. Ядро Linux не реализует их в данный момент, и, поскольку это свойство не пользуется спросом, они вряд ли будут реализованы в будущем.
16.5.6. Управляющие флаги
Флаги режима управления влияют на такие параметры протокола, как четность и управление потоком[114]. Флаги, устанавливаемые в с_cflag, описаны ниже.
CLOCAL | При установке CLOCAL линии управления модемом игнорируются. Если он не установлен, open() блокируется до тех пор, пока модем не объявит состояние ответа абонента, утвердив линию обнаружения несущей. |
CREAD | Символы могут приниматься только в случае установки CREAD. Его сбрасывать не обязательно. ( |
