pour ton problème de Z_DATA_ERROR, je ne sais pas ;-(
mais, sinon, je ne saisis pas pourquoi tu utliises ce découpage en bloc... ou j'ai raté quelque chose.
tu dois accéder à un fichier de quelques Go de manière aléatoire ? c'est-à-dire ?
d'après ton test.c j'ai l'impression au final que l'intégralité de ton fichier (de plusieurs Go) est saucissonnée en blocs de 32 ko et que chacun de ces blocs est compressé, et tu te retrouves en une série de blocs de 32 ko compressés mis à la suite les uns des autres.
pourquoi tu ne compresse pas à la volée ton fichier (en lisant par blocs de 32ko si tu veux) et en écrivant directement dans un fichier compressé unique
je verrais bien un truc du style :
// compression loop
for(i = 0; i < block_number; i++){
// read data
actual_read_size = read(fd_in, buffer, block_size);
// write data
actual_write_size = gzwrite(file_out, buffer, block_size);
}
qu'est-ce que tu en penses ?
même principe pour la décompression, avec gzread et write cette fois-ci.
# pourquoi les blocs ?
Posté par aedrin . En réponse au message problème aléatoire d'utilisation de la zlib. Évalué à 1.
mais, sinon, je ne saisis pas pourquoi tu utliises ce découpage en bloc... ou j'ai raté quelque chose.
tu dois accéder à un fichier de quelques Go de manière aléatoire ? c'est-à-dire ?
d'après ton test.c j'ai l'impression au final que l'intégralité de ton fichier (de plusieurs Go) est saucissonnée en blocs de 32 ko et que chacun de ces blocs est compressé, et tu te retrouves en une série de blocs de 32 ko compressés mis à la suite les uns des autres.
pourquoi tu ne compresse pas à la volée ton fichier (en lisant par blocs de 32ko si tu veux) et en écrivant directement dans un fichier compressé unique
je verrais bien un truc du style :
qu'est-ce que tu en penses ?
même principe pour la décompression, avec gzread et write cette fois-ci.