Поле c_oflag
Поле с_оflag позволяет управлять режимом вывода. Наиболее важным флатом в этом поле является флаг OPOST. Если он не установлен, то выводимые символы передаются без изменений. В противном случае символы подвергаются обработке, заданной остальными флагами, устанавливаемыми в поле
c_oflag. Некоторые из них вызывают подстановку символа возврата каретки (CR) при выводе на терминал:
ONLCR | Преобразовать символ возврата каретки (CR) в символ возврата каретки (CR) и символ перевода строки (NL) | ||
OCRNL | Преобразовать символ возврата каретки (CR) в символ перевода строки (NL) |
| |
ONOCR | Не выводить символ возврата каретки (CR) в нулевом столбце | ||
ONLRET | Символ перевода строки (NL) выполняет функцию символа возврата каретки (CR) |
Если установлен флаг ONLCR, то символы перевода строки NL
преобразуются в последовательность CR+NL (символ возврата каретки и символ перевода строки). Это гарантирует, что каждая строка будет начинаться с левого края экрана. И наоборот, если установлен флаг OCRNL, то символ возврат каретки будет преобразовываться в символ перевода строки. Установка флага
ONLRET сообщает драйверу терминала, что для используемого терминала символы перевода строки будут автоматически выполнять и возврат каретки. Если установлен флаг ONOCR, то символ возврата каретки не будет посылаться при выводе строки нулевой длины.
Большинство остальных флагов поля c_oflag относятся к задержкам в передаче, связанным с интерпретацией специальных символов, таких как перевод строки, табуляция, перевод страницы и др. Эти задержки учитывают время позиционирования указателя знакоместа, где должен быть выведен следующий символ на экране или принтере. Подробное описание этих флагов должно содержать справочное руководство системы.