Écrire un fichier compressé

Problème

Vous souhaitez écrire dans un fichier des données à compresser au format gz ou bz2.

Solution

Si vous voulez compresser un fichier au format gz, utilisez gzopen() pour ouvrir le fichier, puis au choix gzwrite(), gzprintf() ou gzputs() pour écrire et gzclose() pour le fermer.

Si vous voulez compresser un fichier au format bz2, utilisez fopen() suivi de BZ2_bzWriteOpen() pour ouvrir le fichier, puis BZ2_bzWrite() pour écrire et BZ2_bzWriteClose() suivi de fclose() pour le fermer.

Discussion

L’écriture d’un fichier compressé ressemble de près à celle d’un fichier normal. Elle suit le même ordre d’idées que la lecture d’un fichier compressé vu dans la recette précédente. Seuls les appels à gzopen() et à BZ2_bzWriteOpen() ont quelques particularités dans le cas d’une ouverture pour écriture.

Ainsi, le second argument de gzopen() est la chaîne de caractères "wbX", qui est la même que pour fopen(), avec en plus la possibilité de mettre un chiffre entre zéro et neuf à la place du X pour indiquer le taux de compression. Zéro permet d’avoir un taux de compression nul, ce qui revient à ne pas compresser. Ce taux nul est intéressant pour déboguer. Inversement, neuf est le meilleur taux de compression.

Dans le cas de BZ2_bzWriteOpen(), les arguments sont les suivants. Le premier est un pointeur...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Lire un fichier compressé
Suivant
Compresser des données en mémoire