Rozumiem różnicę między nimi, więc nie ma potrzeby, aby się w to zagłębiać, ale zastanawiam się, jakie jest powody, dla których system Windows używa zarówno CR, jak i LF do wskazania podziału wiersza. Wydaje się, że metoda Linuksa (po prostu używając LF) ma dużo więcej sensu, oszczędza miejsce i jest łatwiejsza do przeanalizowania.
85
Odpowiedzi:
Historycznie podczas używania
drukarki igłoweteletypes CR zwróci karetkę do pierwszej pozycji linii, podczas gdy LF przejdzie do następnej linii. Zastosowanie CR + LF w samym pliku umożliwiło przesłanie pliku bezpośrednio do drukarki, bez żadnego sterownika drukarki.Dzięki @zaph wskazując, że to teletypy, a nie drukarki igłowe
źródło
@sshannin opublikował adres URL z bloga Raymonda Chena, ale to już nie działa. Blog zmienił swoje oprogramowanie wewnętrzne, więc zmieniły się adresy URL.
Po przeszukaniu starych postów na nowym blogu znalazłem go tutaj .
Cytat z bloga:
Zmieniłem ten drugi link na migawkę w The Wayback Machine, ponieważ rzeczywista strona nie jest już dostępna.
Mam nadzieję, że to odpowiada na twoje pytanie.
źródło
Pochodzi z maszyn dalekopisowych (i maszyn do pisania) z dawnych czasów.
Kiedyś, kiedy kończyłeś pisać wiersz, trzeba było przesunąć karetkę maszyny do pisania (która trzymała papier i przesuwała się w lewo podczas pisania) z powrotem na początek wiersza (CR). Następnie trzeba było przesunąć papier o jedną linię (LF), aby przejść do następnej linii.
Są przypadki, w których możesz nie chcieć wysuwać wiersza podczas powrotu karetki, na przykład jeśli zamierzasz przekreślić znak z myślnikiem (po prostu go nadpisałeś).
Ale w zasadzie sprowadza się do konwencji. DOS używał pełnej konwencji CR / LF, a UNIX nieco ją skrócił. Teraz utknęliśmy!
źródło
Inni udzielili odpowiedzi, ale chciałem dodać ... Wydaje mi się, że jesteś za młody, by używać maszyny do pisania? ;) Wózek to bęben. Przesunięcie go poziomo w prawo przenosi nagłówek tekstu stacjonarnego z powrotem na lewy margines strony. Obracanie karetki za pomocą palca i kciuka powoduje przewijanie strony o jedną linię.
źródło
Z Wikipedii :
źródło
Widziałem więcej niż jedno konto, z którego wynika, że powodem wysłania dwóch znaków (a czasem więcej) zamiast jednego było lepsze dopasowanie szybkości przesyłania danych do fizycznej szybkości drukowania ( było to dawno temu ). Przesuwanie głowicy drukującej trwało dłużej niż drukowanie pojedynczego znaku, a wysyłanie dodatkowych znaków było sposobem na uniknięcie przedostania się transferu danych przed urządzenie drukujące. Tak więc powód, dla którego mamy wiele znaków końca linii w systemie Windows, jest w zasadzie taki sam jak powód, dla którego mamy klawiatury QWERTY - miało to spowolnić działanie .
Oczywiście powód, dla którego ta praktyka trwa w systemie Windows do dziś, jest oparty na pewnym pojęciu ciągłej kompatybilności wstecznej, a ostatecznie po prostu po prostu bezwładności.
Należy jednak zauważyć, że ta konwencja nie jest ściśle egzekwowana przez system Windows na poziomie systemu operacyjnego . Każda aplikacja systemu Windows może zignorować tę konwencję, w zależności od innych aplikacji, z którymi ma być zgodna.
Co ciekawe, w artykule Wikipedii o „Newline” stwierdza się, że Windows 8 może wprowadzić zmianę w używaniu tylko LF. Artykuł stwierdza również, że Mac OS X wprowadził przejście z LF + CR do samego LF.
źródło