Le principe de zlib est relativement simple. Votre programme utilise des instructions read et write : il suffit de les remplacer par les instructions de la zlib. En d'autres termes, plutôt que d'utiliser les instructions fournies par la glibc pour lire et écrire dans un fichier, on utilise les fonctions de la zlib. Voici un exemple de lecture dans un fichier : Un extrait de programme avant modification :
int fh; char buffer[BUFFER_MAX_SIZE]; fh = open(filename, O_RDONLY); while(read(fh, buffer, BUFFER_MAX_SIZE)) traitement_du_buffer(buffer); close(fh);
Le même extrait de programme après modification :
gzFile gzfh = NULL; char buffer[BUFFER_MAX_SIZE]; gzfh = gzopen(filename, "rb"); while(gzread(gzfh, buffer, BUFFER_MAX_SIZE)) traitement_du_buffer(buffer); gzclose(gzfh);
Et qu'est-ce qui a changé ? Le type du descripteur du fichier qui était int et qui devient gzFile, et les instructions d'entrées/sorties qui forcément appartiennent à la zlib. Plus le mode de lecture du fichier qui est spécifié à l'ouverture du fichier. Par contre, tous les autres arguments n'ont pas changé.
© 2000 Yves Mettier