编码中的行结尾效果如何?

时间:2012-08-08 01:07:02

标签: windows linux macos unix line-endings

为什么线路结尾因平台而异?甚至为什么在编程中会出现像行一样的术语?

我更喜欢以Unix / Linux格式保存我的代码,即使我在Windows上也是如此。我是否因为不以Windows或MacOS格式保存而丢失任何内容?如何在编码中结束行。

2 个答案:

答案 0 :(得分:1)

在早期,当打字机几乎是从计算机获取输出的唯一方式时,CR和LF做了不同的事情。 Unix开始使用单个字符标记行尾的传统,可能是因为它使得流水线更容易;如果需要,他们的驱动程序可以轻松地将单个LF转换为CR / LF。 Linux主要是一个Unix克隆,因此它保持了这种惯例。其他人因历史原因坚持CR / LF公约,尽管并非绝对必要。

某些语言(如C,C ++和Python)允许您在打开文件时指定文件类型(二进制文件或文本)。对于文本文件,执行转换,以便将单个LF转换为操作系统所需的行结束约定。

答案 1 :(得分:0)

基本上每个人都希望在创建操作系统时有所不同 - Un * x以LF开头,然后VMS和DOS想要CR / LF(就像打字机一样),当然MAC想要不同,所以他们只选择CR。

他们只是想让操作系统之间更难转移,以便你“买入”一个

因评论而添加

直到程序员 - 如果您需要支持不同的行结尾,那么您必须为它们编码。例如,您可以为行结尾创建一个#define,然后根据编译选项进行此更改