在Windows環境中,如果輸入到文本文件,程序中的一個'\n'換行符被解釋成'\r'、'\n'兩個字符(回車、換行);相反,如果讀取文本文件,文件中的相鄰的兩個'\r'、'\n'會合並為一個'\n'輸出。
而在Unix/Linux環境下,'\n'就是'\n',保持不變。
因此,Windows下的文本文件和Unix/Linux下的文本文件的格式是不同的,其原因就在於對於程序中的'\n'換行符的解釋不同。
在Linux下的換行是\n,而在Windows下的換行是\r\n。不經過處理的話,兩者的文件在顯示的時候會出現問題,比如一個Linux的文本文件用Windows記事本打開的時候不會換行格式很亂,一個Windows文件在Linux下用VI打開的話會出現^M字符等。
在Windows下用C語言以文本方式讀文件的話,Windows會自動把\r\n轉換成\n,而用二進制方式則不發生任何轉換。而在Linux下不區分文本和二進制。