|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Kirill Frolov 2:5030/827.2 08 Feb 2004 07:27:08 To : Andrew Alexandrov Subject : Re: FAT32 file size limit - кто виноват? -------------------------------------------------------------------------------- On Mon, 02 Feb 04 08:02:44 +0300, Andrew Alexandrov wrote: AA> Почему в эхотаге 2.4.5 лимит на размер файла на разделе с FAT32 - 2Gb вместо AA> положенных 4Gb. Кого винить и как пофиксить? Потому, что в FAT32, как и в любом FAT, на размер файла отведено 32 разряда. Двоичные числа со знаком представляются в ЭВМ таким образом, что самый старший разряд содержит знак числа. Таким образом, остаётся 31 двоичный разряд на представление размера файла. Это 2^31 == 2ГБайт - 1 байт. Возникает вопрос -- а почему со знаком? А потому, что программы так написаны, что очень часто используются именно числа со знаком, для хранения каких угодно величин. Теоретически, с помощью дискового редактора например, возможно создать файл размером 4ГБайт - 1 байт. Почему минус один байт? Потому, что 0 означает именно то что он и означает -- пустой файл, а все 32 установленных разряда -- 4ГБайт - 1 байт. Так вот файл такого размера создать можно, но значительная часть программ, с ним корректно работать не сможет, как раз из-за знакового разряда. Файл получит отрицательный размер. Хочу особо подчеркнуть: файл размером ДВА ГИГАБАЙТА тоже невозможно создать. Максимальный размер файла для любой модификации файловой системы FAT -- ДВА ГИГАБАЙТА МИHУС ОДИH БАЙТ. Именно так. Поэтому говорить об /максимальном размере файла/ в 2 ГБайт некорректно, на самом деле верхний предел меньше ровно на один байт. --- [ZX] * Origin: Это письмо написано в Vim (2:5030/827.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3833c7051a26.html, оценка из 5, голосов 10
|