六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 368|回复: 0

注意文件每行结尾的^M,CR/LF区分

[复制链接]

升级  23.33%

21

主题

21

主题

21

主题

秀才

Rank: 2

积分
85
 楼主| 发表于 2013-2-7 06:11:10 | 显示全部楼层 |阅读模式
首先明确一点,Dos和windows采用回车+换行CR/LF表示下一行, 而UNIX/Linux采用换行符LF表示下一行。
 
Linux下某些针对硬件配置的config file如果是在windows下创建的,有时你会发现在行尾会有“^M”符号,这时注意千万不要直接VIM 【X】删除这些符号,因为这样做会把换行符删掉,导致这些文件file IO的时候无法判断结束从而导致target莫名其妙的错误。
 
因为每行的结尾都会带有特殊ASCII,如图

 
CR(Carriage Return)0x0d代表回车,LF(Line Feed)0x0a代表换行符。
将^M删除,会将CR去掉,只剩LF。
 
如果在file io的时候判断行尾是用的CRLF,那么将^M删除显然就不合适了。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表