@sshannin đã đăng một URL từ blog của Raymond Chen, nhưng nó không hoạt động nữa. Blog đã thay đổi phần mềm nội bộ của nó, vì vậy các URL đã thay đổi.
Sau khi xem qua các bài viết cũ trong blog mới, tôi đã tìm thấy nó ở đây .
Trích dẫn từ blog:
Tại sao đầu cuối dòng CR + LF?
Giao thức này có từ thời của những người viết bài từ xa. CR là viết tắt của “xuống dòng” - ký tự điều khiển CR trả lại đầu in (“xuống dòng”) về cột 0 mà không cần chuyển giấy. LF là viết tắt của “linefeed” - ký tự điều khiển LF nâng giấy lên một dòng mà không cần di chuyển đầu in. Vì vậy, nếu bạn muốn trả đầu in về cột 0 (sẵn sàng để in dòng tiếp theo) và tiến giấy (để nó in trên giấy mới), bạn cần cả CR và LF.
Nếu bạn truy cập các tài liệu giao thức internet khác nhau, chẳng hạn như RFC 0821 (SMTP), RFC 1939 (POP), RFC 2060 (IMAP) hoặc RFC 2616 (HTTP), bạn sẽ thấy rằng tất cả chúng đều chỉ định CR + LF là trình tự kết thúc dòng. Vì vậy, câu hỏi thực sự không phải là "Tại sao CP / M, MS-DOS và Win32 sử dụng CR + LF làm dấu chấm dứt dòng?" mà đúng hơn là "Tại sao những người khác lại chọn khác với các tài liệu tiêu chuẩn này và sử dụng một số đầu cuối đường dây khác?"
Unix đã sử dụng LF thuần túy làm trình tự kết thúc dòng. Nếu bạn nhìn vào các tùy chọn stty, bạn sẽ thấy rằng tùy chọn onlcr chỉ định liệu một LF có nên được thay đổi thành CR + LF hay không. Nếu bạn cài đặt sai cài đặt này, bạn sẽ nhận được văn bản bậc thang, trong đó
each
line
begins
nơi dòng trước đó đã dừng lại. Vì vậy, ngay cả unix, khi để ở chế độ thô, yêu cầu CR + LF để kết thúc các dòng. CR ngầm trước LF là một phát minh unix, có thể là một nền kinh tế, vì nó tiết kiệm một byte trên mỗi dòng.
Tổ tiên unix của ngôn ngữ C đã đưa quy ước này vào tiêu chuẩn ngôn ngữ C, chỉ yêu cầu “\ n” (mã hóa LF) để kết thúc các dòng, tạo gánh nặng cho các thư viện thời gian chạy để chuyển đổi dữ liệu tệp thô thành các dòng logic.
Ngôn ngữ C cũng đưa ra thuật ngữ “dòng mới” để thể hiện khái niệm “dấu chấm cuối dòng chung”. Tôi được biết rằng ủy ban ASCII đã đổi tên ký tự 0x0A thành “dòng mới” vào khoảng năm 1996, vì vậy mức độ nhầm lẫn đã được nâng cao hơn nữa.
Đây là một cuộc thảo luận khác về chủ đề này, từ góc độ unix
Tôi đã thay đổi liên kết thứ hai này thành ảnh chụp nhanh trong The Wayback Machine, vì trang thực tế không còn nữa.
Tôi mong bạn trả lời câu hỏi này.