Il clone di Lele Gaifax ha segretamente scritto: > La limitazione non è del filesystem in senso stretto, ma del sistema > operativo in generale: Precisazione: vado a memoria, per cui non e` da prendere come oro colato. Internamente al kernel gli offset sono tenuti come interi a 64 bit anche su piattaforme a 32 (il tipo e` kloff_t, se non erro: a suo tempo ero andato a vedere come funzionava il VFS, e parlo di qualche anno fa). Se poi ext2 su piattaforme a 32 bit tronca (a suo tempo troncava - adesso non credo), e` un problema di ext2. Riguardo a lseek() con un off_t da 32 bit, non e` di per se` un problema insormontabile: invece di una lseek() sola ne fai due o piu` in fila, la prima con SEEK_SET, le successive con SEEK_CUR (per cui gli offset si sommano). Funziona, posto che il filesystem (quando di file su un filesystem si tratta - i block device non cascano in questa categoria) appunto supporti file piu` lunghi di 2GB. Chiaro che usare N lseek() in fila non e` il massimo della vita. Da qui una variante di lseek() (lseek64()? lseek_64? llseek()? non mi ricordo piu` il nome) da usarsi con un tipo piu` grande, e che e` stata inclusa qualche tempo fa nel kernel se non ricordo male. Non so che interfaccia offra la GNU libc, cmq. gia` ci dovrebbe essere da tempo. > Esistono delle patch per portare a 64 bit quel tipo di dato anche > sulle architetture a 32 bit, ma Linus si è sempre detto contrarissimo > a includerle. Infatti, mi pare che lui vada per kloff_t, da usarsi con la versione a 64 bit delle system call. Chiaro che koff_t e kloff_t sono i tipi definiti dal kernel, e appunto usabili solo dal codice all'interno del kernel, mentre la libc dovrebbe avere i propri (off_t e loff_t? La mia versione non proprio recente della GNU libc 2.x si include di straforo alcuni header del kernel, e definisce questi ultimi in termini di koff_t e kloff_t). -- UNIX diapers by Pannolini USPTO 2039887 http://www.uspto.gov Matteo Ianeselli ianezz AT sodalia.it (+39) 0461 316452 Visita il LinuxTrent: http://www.linuxtrent.it -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx