[OT] problemi con la funzione fseek() per file maggiori di 4G
Salve a tutti.
Pur non essendo questa una lista che parla di C, ho un problema del
codice che sto scrivendo sulla mia Debian 5.0.3 a 33 bit, per cui...
Eccomi qua.
Ho cominciato a giocare col C e ho scritto una programmino, il cui
compito e' il file A in N sotto-file B1, B2, B3, etc estraendo dei
blocchi e sparpaglandoli nei sottofile con un certo criterio.
Ora, il programmino funziona con un file A di prova (circa 40M), quando
pero' vado a usarlo sul file di lavoro (10G) ecco che ad un certo punto
il programma "sbarella" e da un comportalento sbagliato.
Svolte le indagini del caso, ho trovato "colpevole" la funzion del C
"fseek()"
(questo e' il suo prototipo: int fseek(FILE *stream_pointer, long
offset, int origin); )
che uso per puntare al file A.
Poiche' A e' piu grande di 2^32 e poiche fseek() ha come offset un long,
ecco che quando l'offset eccede i 2^32, ho il problema.
Domanda:
e' possibile forzare fseek con un offset a 64bit?
Oppure esiste una funzione fseek() a 64bit che posso usare?
Oppure sono obbligato a spostarmi su una Debian a 64bit?
Reply to: