Книга: Программирование для Linux. Профессиональный подход
Чтение текстовых файлов DOS/Windows
Чтение текстовых файлов DOS/Windows
В Linux-программах нередко приходится читать файлы, созданные в DOS или Windows. Важно понимать разницу между тем, как структурируются текстовые файлы в Linux и в DOS/Windows.
В Linux каждая строка текстового файла оканчивается символом новой строки. Он представляется символьной константой 'n'
, ASCII-код которой равен 10. В Windows строки разделяются двухсимвольной комбинацией символ возврата каретки (константа 'r'
, ASCII-код 13), за которым идет символ новой строки.
Некоторые текстовые редакторы Linux при отображении текстовых файлов Windows ставят в конце каждой строки обозначение ^M
— символ возврата каретки. В Emacs такие файлы отображаются правильно, но в строке режима появляется запись (DOS)
. Многие Windows-редакторы, например Notepad (Блокнот), показывают содержимое текстовых файлов Linux в виде одной длинной строки, так как предполагают наличие в конце строки символа возврата каретки.
Если программа читает текстовые файлы, сгенерированные Windows-программами, желательно менять последовательность 'rn'
одним символом новой строки. Точно так же при записи текстовых файлов, которые будут читаться Windows-программами, нужно менять одиночные символы новой строки комбинациями 'rn'
.
В листинге Б.4 демонстрируется применение функции read()
. Программа отображает шестнадцатиричный дамп файла, заданного в командной строке. В каждой строке показано смещение от начала файла, а затем — следующие 16 байтов.
- Б.1.4. Чтение данных
- Чтение текстовых файлов DOS
- Резервное копирование многофайловых баз данных
- Восстановление из резервных копий многофайловых баз данных
- Создание файлов с блокировкой
- Рекомендуемое расширение для файлов баз данных - *.ib
- 4.4.3. Чтение и запись
- Создание многофайловой базы данных
- Правила именования файлов
- Глава 6 Файловые системы
- 3.4 Сетевая файловая система
- 6.4 Другие файловые системы