Чтение текстовых файлов DOS/Windows из Linux

В Linux-программах нередко приходится читать файлы, созданные в DOS или Windows. Важно понимать разницу между тем, как структурируются текстовые файлы в Linux и в DOS/Windows.

В Linux каждая строка тестового файла оканчивается символом новой строки, т.е. символьной константой '\n', ASCII: Расшифровка аббревиатуры, история и применение-код которой равен 10. В Windows строки разделяются двухсимвольной комбинацией: символ возврата коретки (константа '\r', ASCII: Расшифровка аббревиатуры, история и применение-код 13), за которым идет символ новой строки.

Некоторые текстовые редакторы Linux при отображении текстовых файлов Windows ставят в конце строки обозначение ^M - символ возврата коретки. Многие Windows -редакторы показывают содержимое текстовых файлов Linux в виде одной длинной строки, так как предполагают наличие в конце строки символа возврата каретки.

Если программа читает текстовые файлы, сгенерированные Windows- программами, желательно менять последовательность '\r\n' одним символом новой строки. Точно так же при записи текстовых файлов, которые будут читаться Windows-программами, нужно менять одиночные символы новой строки комбинациями '\r\n'.