[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cpio und datei>2gb



On 2004-12-12 15:43:03 +0100, Christian Schnobrich wrote:
> Was ich im Netz zum Thema 2GB-Limit gefunden habe, war nicht schlüssig;
> beim einen hieß es, es sei eine Beschränkung des Dateisystems. Woanders
> stand, daß es ein Problem aller 32bit-Linuxe sei.

Das 2 GB-Limit liegt an den 32bit.
Die libc-Funktion read() liefert bei Erfolg die Anzahl der gelesenen
Bytes und im Fehlerfall -1. Als Datentyp wird dafür ein Integer
genutzt, der bei i386 nunmal 32 Bit hat. Damit ergibt sich als
Maximalwert den der Integer aufnehmen kann 2^31-1, also die 2GB.
Eine Lösung dafür ist Large File Support, da wird für die Rückgabe ein
64bit-Integer genommen womit die maximale Dateigröße bei 2^63-1.
Dafür muss aber das Programm passend kompiliert werden.
Im übrigen haben 64bit-Architekturen das Problem gar nicht, weil dort
ein Integer schon 64bit hat.

Michael



Reply to: