lywindly 发表于 2005-11-30 13:18:19

求救 关于程序里出现M控制符的问题

我有个程序 在LINUX 主机里 用VI打开后 每行后面都有个^M字符 但是在WIN下 或则其他编辑软件下打开 都没有这个符号 想问哈你 这个^M是什么意思呢 对程序的运行 会不会 有影响呢
谢谢你了

月下刀客 发表于 2005-11-30 15:58:26

好象是回车换行符之类的,没有影响。在不同的字符集里显示的一些控制字符会有所不同。

hew 发表于 2005-11-30 16:04:03

是其他编辑器留下的,没关系不影响运行.

daniel_zhy 发表于 2005-11-30 16:28:04

你可能是用binary的方式ftp上去文件吧.

lywindly 发表于 2005-11-30 23:02:48

就是哈

你可能是用binary的方式ftp上去文件吧.

不好吗? 因为我原来按DZ就是 要求用2进制

用哪种方式好呢

gucuiwen 发表于 2005-11-30 23:30:22

windows下的文本文件以“\r\n”作为换行符,但是unix/linux下以“\n”作为换行符。

如果文件是一个c/c++或其他编译性语言的原代码,那么不会有影响,但是编译的时候gcc
编译器会有“no new line at the end of file”的警告。但不影响编译通过,但是如果是一个脚本语言程序,很多情况下会影响程序的正确运行。

比如:一个文件名为numbers的文本文件内容如下:
1
2
3
4
5

在linux用如下命令,显示文件中每行的内容:

for i in `cat numbers`;do echo $i;done

如果numbers文件是UNIX/linux格式,这个语句会执行正确。
但如果这个文件是dos格式,那么这条命令将不能正确执行,只能显示第一行。

可以用如下命令对DOS格式的文件转换:
dos2unix oldfile newfile
或者:
cat oldfile |tr -d '\0x13' > newfile

daniel_zhy 发表于 2005-12-1 12:02:19

如果是源代码(c, c++, java....)的话, 就用text, 如果是tar,gz等二进制文件就用binary.
页: [1]
查看完整版本: 求救 关于程序里出现M控制符的问题