这个故事要回溯到电传打字机的时代。CR表示的是“回车(carriage return)”,CR控制符将把打印头返回到第0列,但不会递进纸。LF表示的是“换行(linefeed)”,LF控制符将把纸递进一行,但不移动打印头。因此,如果你想把打印头返回到第0列并且将纸递进一行,那么就需要同时需要CR和LF。

在UNIX中将LF定义为行结束符。UNIX在遇到LF时,默认加上一个CR,因此在实际文件中只需写入LF就可以了,这就为每行节约了一个字节。

UNIX将这个约定写入到C语言的标准中,在C语言中,结束一行时只需使用\n,而在运行库中将会把LF转换为CR+LF。