В окнах двоичный или текстовый режим отличаются в конце преобразования строки.
Система выполняет преобразование конца строки (например, через POSIX write
и read
низкого уровня). Но это не имеет значения: преобразование конца строки выполняется в текстовом режиме, а в двоичном режиме ничего не меняется.
printf
и другие функции форматирования заканчивают тем, что вызывают низкоуровневую функцию чтения / записи / любой другой функции, которая обрабатывает это преобразование конца строки.
- Когда вы пишете символ новой строки
\n
в файле, открытом в текстовом режиме, система добавляет символ \r
перед новой строкой.
- Когда вы читаете
\n
в файле, открытом в текстовом режиме, система удаляет символ \r
перед новой строкой. Если нет, то ничего не удаляется. Если есть 2 \r
символов, он удаляет только один.
Обратите внимание, что написание текстовых файлов в двоичном режиме может быть полезно, если вы хотите писать совместимые с Linux текстовые файлы без символа \r
.