This is an old revision of the document!
Files in Windows and Linux
There is a difference in how files are stored on these two operating systems.
By default, when files are created on a windows system, the end of the file is marked with a ctrl-r and a ctrl-n. The user does not insert this, it is done automatically by the software. This is not the case in the linux/unix environment. The end of line in linux is marked only by the ctrl-n. When performing text processing, the ctrl-r will cause problems in the linux environment.
Checking for **CTRL-R** on Linux
To see if your file contains ctrl-r use the linux command od. Od stands for Octal Dump and will display the contents of the file in various formats. In this case, you should run od -c filename. This will display each character in the file, with some special characters, like ctrl-r and ctrl-n proceeded by a slash.
In this example, the file foo.cpp has been created on a computer running windows and transferred to a computer running linux. To check the format, the user runs od -c foo.cpp. Note that each line ends in \r and \n
$ more foo.cpp
#include <iostream>
using namespace std;
int main() {
cout << "Hello World " << endl;
return 0;
}
$ od -c foo.cpp
0000000 # i n c l u d e < i o s t r e
0000020 a m > \r \n \r \n u s i n g n a m
0000040 e s p a c e s t d ; \r \n \r \n i
0000060 n t m a i n ( ) { \r \n
0000100 c o u t < < " H e l l o W
0000120 o r l d " < < e n d l ; \r
0000140 \n \r \n r e t u r n 0 ; \r
0000160 \n } \r \n
0000164
[bennett@mirkwood tmp]$