#linux #windows
Вопрос:
Я намерен написать следующий текстовый файл как в Windows, так и в Unix (Ubuntu):
Сегодня среда.
Завтра четверг.
Конец файла.
Когда я сохраняю его в Windows, он имеет длину 56 байт. В Ubuntu он имеет длину 54 байта. Объясните, пожалуйста, в чем разница.
Ответ №1:
Традиционно Windows использует как r
(возврат каретки), так и n
(перевод строки) для указания конца строки, в то время как Linux использует только n
. Это может объяснить разницу, в зависимости от того, сколько у вас было новых строк, и, возможно, кодировку файла.
Комментарии:
1. На современном компьютере MAC какой длины будет один и тот же файл???
2. Mac основан на Linux, но я не знаю, означает ли это, что он использует окончания строк в 1 байт или нет. Большинство современных систем будут обрабатывать новые строки друг друга — возможно, вам следует просто выбрать один стандарт и конвертировать ваши файлы в него или создать помощника, который будет по-разному учитывать размер в зависимости от текущей платформы. Похоже, что для вас важно знать размер файла, и вы можете столкнуться с проблемами, если попытаетесь предсказать, какие символы новой строки будут существовать в файле.
Ответ №2:
В Windows каждая строка заканчивается «возврат каретки,подача строки», В unix и современных Mac строки заканчиваются «подача строки», В ранних строках Mac (до Mac OS X) строки Mac заканчивались «возврат каретки».