Задать вопрос
@Borankin

Почему в .txt файле на Linux появляется «лишний» байт?

Создаю на рабочем столе Linux (Ubuntu 22) пустой текстовый файл 1.txt.
Проверяю в свойствах его размер - 0 байт.
Записываю в файл ровно один любой символ латинского алфавита, сохраняю. Размер файла становится 2 байта.
Почему собственно 2 байта, а не 1 байт?

Символы латинского алфавита кодируются же 8 битами (1 байт).
Если дописать ещё один любой латинский символ или цифру, то размер становится 3 байта.
То есть появление в файле первого символа даёт файлу 2 байта, каждый последующий символ как положено - по одному байту. Если в файле слово из трех букв, то его размер 4 байта и т.д.
Обращаю внимание, что никаких пробелов и переносов строк нет, только латинские буквы (цифры). Регистр букв — т.е. большие прописные или маленькие строчные на результат не влияют. В Debian то же самое. На других дистрибутивах не проверял.

Почему обратил внимание и заинтересовался? Просто накануне вникал в кодирование символов, тестировал немного на Windows 10. Там всё ясно и понятно. Пустой текстовый файл - 0 байт. Каждая латинская буква даёт размеру файла 1 байт. Т.е. всё работает логично.
Итак, откуда лишний байт на Linux и для чего он?
  • Вопрос задан
  • 660 просмотров
Подписаться 1 Простой 5 комментариев
Решение пользователя Rsa97 К ответам на вопрос (3)
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Откройте файл в шестнадцатеричном редакторе/вьюере, например wxHexEditor или GHex и посмотрите, что в нём лежит.
Ответ написан
Комментировать