Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Standard-Eingabeverarbeitung

&pagelevel(5)&pagelevel

Bei der Standard-Eingabeverarbeitung werden Eingaben von einem Terminal zeilenweise bearbeitet. Eine Zeile wird begrenzt durch ein Neue-Zeile-Zeichen (LF), ein Dateiende- oder Zeilenende-Zeichen. Für mehr Informationen zu EOF und EOL siehe auch Abschnitt "Sonderzeichen“. Dies bedeutet, dass ein lesendes Programm so lange angehalten wird, bis eine vollständige Zeile eingegeben wurde. Ebenso besteht die Eingabe aus maximal einer Zeile, gleichgültig, wie viele Zeichen in dem Leseaufruf angefordert wurden. Es muss jedoch nicht eine ganze Zeile auf einmal gelesen werden; es kann eine beliebige Anzahl Zeichen in einem Leseaufruf angefordert werden (auch nur 1 Zeichen), ohne dass Daten verloren gehen.

{MAX_CANON}, die maximale Anzahl von Bytes in einer Zeile (siehe limits.h), muss größer oder gleich {_POSIX_MAX_CANON} sein. Wenn diese Grenze überschritten wird, dann ist das Verhalten des Systems undefiniert. Wenn {MAX_CANON} nicht definiert ist, dann gibt es keine solche Grenze (siehe auch pathconf()). Beide Konstanten haben für BS2000-Blockterminals keine Wirkung, weil die Ein-/Ausgabe dort von TIAM gesteuert wird.

Die Verarbeitung von ERASE- und KILL-Zeichen geschieht dann, wenn eines der Sonderzeichen ERASE und KILL gelesen wird (siehe Abschnitt "Sonderzeichen“). Die Verarbeitung dieser Zeichen betrifft den Eingabepuffer, der noch nicht durch ein Neue-Zeile-Zeichen (LF), ein Dateiende- oder ein Zeilenende-Zeichen begrenzt wurde. Diese noch nicht begrenzten Daten bilden die aktuelle Zeile. Das Löschzeichen ERASE löscht das zuletzt eingegebene Zeichen der aktuellen Zeile, sofern ein solches nach dem Zeilenanfang vorhanden ist. Das Löschzeichen KILL entfernt die gesamte aktuelle Eingabezeile, sofern eine solche vorhanden ist. Dabei kann wahlweise die Ausgabe eines neuen Neue-Zeile-Zeichens erfolgen. Die Zeichen ERASE und KILL haben keine Wirkung, wenn sich keine Daten in der aktuellen Zeile befinden. Die Löschzeichen selbst werden nicht im Eingabepuffer abgelegt. Beide Zeichen wirken unmittelbar bei Betätigen der entsprechenden Taste, unabhängig von eventuell eingegebenen Backspace- oder Tabulatorzeichen. Sie können auch direkt als Konstante eingegeben werden, indem man ihnen das Escape-Zeichen \ voranstellt. Das Escape-Zeichen selbst wird nicht gelesen. Die Löschzeichen können geändert werden.