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

首先明确一点,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删除显然就不合适了。

猜你喜欢

转载自allenshao.iteye.com/blog/851114