| Die Artikel Zeilenvorschub und Zeilenumbruch überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Bitte äußere dich in der Diskussion über diese Überschneidungen, bevor du diesen Baustein entfernst. 84.57.97.161 14:26, 9. Nov. 2008 (CET) |
Unter Zeilenvorschub (englisch line feed) versteht man im ursprünglichen Sinne das Drehen der Walze bei einer Schreibmaschine. Mit dem Aufkommen der elektronischen Datenverarbeitung und damit der dazugehörigen Drucker und Bildschirme benötigte man ein Steuerzeichen, das sinngemäß genau das Gleiche hervorruft, nämlich das Bewegen in die nächste Zeile.
Dies ist notwendig, um Texte mit Umbrüchen und Absätzen entsprechend ausgeben zu können. Daher wurde in praktisch allen Zeichensätzen ein solches Steuerzeichen vorgesehen. Im ASCII-Zeichensatz, dem am weitesten verbreiteten und meistgenutzten Zeichensatz weltweit, wurde z. B. das Zeichen hexadezimal 0A bzw. dezimal 10 dafür vorgesehen, im EBCDIC-Code das Zeichen hexadezimal 25 bzw. dezimal 37. Die übliche Abkürzung ist LF.
Historisch wurde zunächst auf Fernschreibern die Zeichenkette CR LF als Zeichenvorschub eingeführt, also erst ein Wagenrücklauf (englisch carriage return) und dann der Sprung in die nächste Zeile. Das rührt daher, dass ein simpler Zeilenvorschub im historischen Sinn nur die Walze vorschiebt, den Cursor also in die nächste Zeile befördert. Erst der Wagenrücklauf bringt ihn ganz an den Anfang dieser Zeile. Mit Einführung moderner Computer wurde damit uneinheitlich verfahren: Bei manchen Betriebssystemen wurde dieses Doppelzeichen unverändert weiterbenutzt, bei anderen auf ein einzelnes Zeichen verkürzt, Details im Folgenden.
| Betriebssystem | Zeichen | C-Code | ASCII hexadez. | ASCII dezimal |
|---|---|---|---|---|
| DEC RT-11, CP/M, MS-DOS, Windows | CR LF |
\r\n | 0D0A | 13 10 |
| Commodore, Apple II, Apple Mac OS bis Version 9 | CR |
\r | 0D | 13 |
| Multics, alle Unix-Derivate, Mac OS X | LF |
\n | 0A | 10 |
| IBM-EBCDIC-Systeme | NL |
15 | 21 |
Die Codierung der Zeilenumbrüche ist unter verschiedenen Betriebssystemen nicht einheitlich.
CR LF. Für Microsoft Windows wurde dieses System beibehalten.LF, also einen einfachen Zeilenvorschub, der den Cursor automatisch an den Anfang der nächsten Zeile befördert.CR, welches, wie LF unter Unix, für Zeilenvorschub und Wagenrücklauf sorgte. Seit Mac OS X wird jedoch auch LF verwendet, da dieses vollständig neu entwickelt wurde und nun auf Unix aufsetzt.CR LF als Zeilentrenner vorgeschrieben. Typische Implementierungen tolerieren aber auch LF.Aus diesem Grund ist der Austausch von Textdaten zwischen diesen unterschiedlichen Betriebssystemen erheblich erschwert. Viele Programme, zum Beispiel Browser, akzeptieren daher jedes dieser Steuerzeichen als Zeilenvorschub, auch wenn dies technisch nicht ganz korrekt ist.
Bekannt ist auch das FTP, welches für dieses Problem sogar zwei Übertragungsmodi entwickelt hat: ASCII und binary. Während letzteres die Daten unverändert überträgt, kümmert sich beim ASCII-Übertragungsverfahren der Server darum, dass der Zeilenvorschub den entsprechenden Erfordernissen angepasst wird. Wird also von einem Windows-Client auf einen Unix-Server im ASCII-Format übertragen, werden CR LF automatisch zu LF umgewandelt.
Zu viel Verwirrung führen auch Fehler beim Ausführen von Skripten, welche auf die Shebang-Zeile zurückzuführen sind, siehe Problematik des Zeilenendes bei der Shebang-Zeile.