Die Komponente c_oflag
gibt an, wie die Ausgaben der Terminalschnittstelle behandelt werden. Sie wird durch bitweises inklusives Oder der folgenden Masken erzeugt, die sich bitweise unterscheiden. Die Maskennamen in der folgenden Tabelle sind in termios.h
definiert:
Maskenname | Beschreibung |
| Ausgaben nachbearbeiten |
| Bei Ausgabe Klein- in Großbuchstaben umwandeln. Wird zukünftig vom X/Open- |
| Bei Ausgabe |
| Bei Ausgabe |
|
|
|
|
| Füllzeichen für Verzögerung verwenden |
| Das Füllzeichen ist |
| Zeilenvorschub-(NL-)Verzögerungen auswählen:
|
| Wagenrücklauf-(
|
| Horizontaltabulator-Verzögerungen auswählen: Horizontaltabulator-Verzögerung Typ 0 |
| Backspace-Verzögerungen auswählen: Backspace-Verzögerung Typ 0 |
| Vertikaltabulator-Verzögerungen auswählen: Vertikaltabulator-Verzögerung Typ 0 |
| Seitenvorschub-Verzögerungen auswählen: Seitenvorschub-Verzögerung Typ 0 |
Wenn OPOST
gesetzt ist, dann werden Ausgabedaten gemäß den übrigen Bits von c_oflag
nachbearbeitet, damit die Textzeilen so verändert werden, dass sie korrekt am Terminal erscheinen, andernfalls werden die Zeichen ohne Änderung übertragen.
Bei gesetztem OLCUC
wird ein Kleinbuchstabe vor der Übertragung in den entsprechenden Großbuchstaben umgewandelt. Diese Funktion wird oft zusammen mit IUCLC
bei den Eingabemodi verwendet. Wird zukünftig vom X/Open-Standard nicht mehr unterstützt.
Bei gesetztem ONLCR
wird das NL
-Zeichen (Zeilenvorschub) als das Zeichenpaar CR-NL
(Wagenrücklauf-Zeilenvorschub) übertragen. Bei gesetztem OCRNL
wird das CR
-Zeichen als NL
-Zeichen übertragen. Bei gesetztem ONOCR
wird ein CR
-Zeichen in Spalte 0 (erste Stelle in der Zeile) nicht übertragen. Bei gesetztem ONLRET
wird angenommen, dass das NL
-Zeichen die Wagenrücklauf-Funktion übernimmt; der Spaltenzeiger wird auf 0 gesetzt und die spezifischen Wagenrücklauf-Verzögerungen werden verwendet. Ist ONLRET
nicht gesetzt, so wird angenommen, dass das NL
-Zeichen nur die Zeilenvorschub-Funktion hat; der Spaltenzeiger bleibt dann unverändert. Der Spaltenzeiger wird ferner auf 0 gesetzt, wenn das CR
-Zeichen übertragen wird.
Die Verzögerungs-Bits geben an, für wie lange die Übertragung angehalten wird, damit bestimmte mechanische oder sonstige Bewegungen bei der Übertragung bestimmter Zeichen am Terminal ausgeführt werden können. In allen Fällen bedeutet 0: keine Verzögerung. Bei gesetztem OFILL
wird die zeitliche Verzögerung durch die Übertragung von Füllzeichen er-
reicht. Dies ist bei Terminals mit hoher Übertragungsgeschwindigkeit nützlich, die nur eine minimale Verzögerung benötigen. Bei gesetztem OFDEL
wird DEL
als Füllzeichen verwendet, sonst NUL
.
Ist eine Seitenvorschub- oder Vertikaltabulator-Verzögerung angegeben, so dauert diese etwa 2 Sekunden.
Eine Zeilenvorschub-Verzögerung dauert etwa 0,10 Sekunden. Bei gesetztem ONLRET
werden statt der Zeilenvorschub-Verzögerungen die Wagenrücklauf-Verzögerungen verwendet. Bei gesetztem OFILL
werden zwei Füllzeichen übertragen.
Bei den Wagenrücklauf-Verzögerungen ist Typ 1 abhängig von der aktuellen Spaltenposition, Typ 2 dauert etwa 0,10 Sekunden, Typ 3 etwa 0,15 Sekunden. Bei gesetztem OFILL
werden bei Typ 1 zwei Füllzeichen übertragen, bei Typ 2 vier.
Bei den Horizontaltabulatoren-Verzögerungen ist Typ 1 abhängig von der aktuellen Spaltenposition, Typ 2 dauert etwa 0,10 Sekunden, Typ 3 gibt an, dass Tabulatoren zu Leerzeichen expandiert werden sollen. Bei gesetztem OFILL
werden für jede Verzögerung zwei Füllzeichen übertragen.
Die Backspace-Verzögerung dauert etwa 0,05 Sekunden. Bei gesetztem OFILL
wird ein Füllzeichen übertragen.
Die tatsächlichen Verzögerungen hängen von der Leitungsgeschwindigkeit und der Systemauslastung ab.
Der Anfangswert für die Ausgabemodi (Wert von c_oflag
) nach einem Aufruf von open()
ist, dass kein Bit gesetzt ist.