Bu protokol teletipewriters günlerine dayanıyor. CR "satır başı" anlamına gelir - CR kontrol karakteri, kağıdı ilerletmeden yazıcı kafasını ("satır başı") 0 sütununa döndürdü. LF "satır besleme" anlamına gelir - LF kontrol karakteri, yazdırma kafasını hareket ettirmeden kağıdı bir satır ilerletir. Bu nedenle, baskı kafasını sıfır sütununa (bir sonraki satırı yazdırmaya hazır) iade etmek ve kağıdı ilerletmek istiyorsanız (böylece yeni kağıda yazdırır), hem CR hem de LF'ye ihtiyacınız vardır.
RFC 0821 (SMTP), RFC 1939 (POP), RFC 2060 (IMAP) veya RFC 2616 (HTTP) gibi çeşitli İnternet protokolü belgelerine giderseniz, hepsinin CR + LF olarak belirtildiğini göreceksiniz. hat sonlandırma sırası. Bu nedenle asıl soru "Neden CP / M, MS-DOS ve Win32 satır sonlandırıcı olarak CR + LF kullanıyor?" bunun yerine "Neden diğer insanlar bu standart belgelerden farklı olmayı seçtiler ve başka bir satır sonlandırıcı kullandılar?"
Unix, hat sonlandırma dizisi olarak düz LF'yi benimsemiştir. Stty seçeneklerine bakarsanız, onlcr seçeneğinin bir LF'nin CR + LF olarak değiştirilip değiştirilmeyeceğini belirttiğini göreceksiniz. Bu ayarı yanlış yaparsanız, merdiven basamağı metni alırsınız, nerede
each
line
begins
önceki satırın kaldığı yerden. Bu nedenle, unix, ham modda bırakıldığında, satırları sonlandırmak için CR + LF gerektirir. LF'den önce gelen CR, satır başına bir bayt tasarruf ettiğinden, muhtemelen bir ekonomi olarak unix bir buluştur.
C dilinin unix atağı, bu sözleşmeyi satırları sonlandırmak için yalnızca "\ n" (LF'yi kodlayan) gerektiren ve böylece ham dosya verilerini mantıksal satırlara dönüştürmek için çalışma zamanı kitaplıkları üzerindeki yükü yükleyen C dili standardına taşıdı.
C dili aynı zamanda "jenerik hat sonlandırıcı" kavramını ifade etmek için "newline" terimini de kullandı. ASCII komitesine 1996 yılında 0x0A karakterinin adını "newline" olarak değiştirdim, böylece karışıklık seviyesi daha da yükseldi.
\r\n
. Aynı zamanda çoğu metin tabanlı internet protokolü (örneğin SMTP, HTTP, vb.) Tarafından çoğunlukla Windows ile aynı sebeple (yani tarihçe) kullanılır.