#### 17.5.5 Output Modes ¶

This section describes the terminal flags and fields that control how output characters are translated and padded for display. All of these are contained in the `c_oflag` member of the `struct termios` structure.

The `c_oflag` member itself is an integer, and you change the flags and fields using the operators `&`, `|`, and `^`. Don’t try to specify the entire value for `c_oflag`—instead, change only specific flags and leave the rest untouched (see Setting Terminal Modes Properly).

Macro: `tcflag_t` OPOST ¶

  If this bit is set, output data is processed in some unspecified way so that it is displayed appropriately on the terminal device. This typically includes mapping newline characters (`'\n'`) onto carriage return and linefeed pairs.

  If this bit isn’t set, the characters are transmitted as-is.

The following three bits are effective only if `OPOST` is set.

Macro: `tcflag_t` ONLCR ¶

  If this bit is set, convert the newline character on output into a pair of characters, carriage return followed by linefeed.

Macro: `tcflag_t` OXTABS ¶

  If this bit is set, convert tab characters on output into the appropriate number of spaces to emulate a tab stop every eight columns. This bit exists only on BSD systems and GNU/Hurd systems; on GNU/Linux systems it is available as `XTABS`.

Macro: `tcflag_t` ONOEOT ¶

  If this bit is set, discard `C-d` characters (code `004`) on output. These characters cause many dial-up terminals to disconnect. This bit exists only on BSD systems and GNU/Hurd systems.