Compresser un fichier en gzip à partir de code C ? - C++ - Programmation
Marsh Posté le 29-07-2002 à 15:41:32
Si le code est bien écrit, on doit pouvoir le savoir !! C'est au développeur de le gérer.
Cf http://www.gnu.org/software/gzip/gzip.html (par google)
dont http://www.gzip.org/#sources
Marsh Posté le 29-07-2002 à 15:42:50
Je pense avoir mal lu . C'est pour lancer gzip.exe par shell à partir d'un code perso ?
Marsh Posté le 29-07-2002 à 15:43:55
ct une pub perso, parce que je vois pas bien le rapport...
Marsh Posté le 29-07-2002 à 15:49:05
carbon_14 : ouaip ce serait pour lancer gzip à partir d'un code C perso.
Y'a t-il un moyen propre de le faire (c plutôt déconseillé d'appeler un éxécutable à partir d'un autre...)
Marsh Posté le 29-07-2002 à 15:51:05
Poulou a écrit a écrit : carbon_14 : ouaip ce serait pour lancer gzip à partir d'un code C perso. Y'a t-il un moyen propre de le faire (c plutôt déconseillé d'appeler un éxécutable à partir d'un autre...) |
system("gzip" );
System doit renvoyer la valeur de retour de gzip si je me souvient bien, donc 0 si tout c bien passé.
Marsh Posté le 29-07-2002 à 15:56:30
Ben sinon il y a la zlib qui existe et qui ne doit pas être trop difficile à utiliser.
Je l'utilise mais pas sur des fichiers mais il me semble qu'il y a les fonction nécessaires... oui oui elles y sont !!!
Marsh Posté le 29-07-2002 à 16:05:51
BB138 a écrit a écrit : Ben sinon il y a la zlib qui existe et qui ne doit pas être trop difficile à utiliser. Je l'utilise mais pas sur des fichiers mais il me semble qu'il y a les fonction nécessaires... oui oui elles y sont !!! |
Heu si, c une usine à gaz
T'aurais pas qq bon tutauriaux ?
Marsh Posté le 29-07-2002 à 16:27:13
Désolé pour les tutoriaux, je n'en ai pas... j'ai fait avec la documentation des fonctions et comme pour l'instant je n'utilise que compress() et uncompress() je n'ai pas eu trop de soucis...
Marsh Posté le 29-07-2002 à 16:28:09
Les fonctions de zlib sont sur http://www.gzip.org/zlib/manual.html
Marsh Posté le 06-09-2005 à 02:29:39
bb138 a écrit : Désolé pour les tutoriaux, je n'en ai pas... j'ai fait avec la documentation des fonctions et comme pour l'instant je n'utilise que compress() et uncompress() je n'ai pas eu trop de soucis... |
Je déterre cette vieille discussion ^^,
j'essaie d'utiliser la zlib et plus particulièrement la fonction uncompress() sans grand succès...
Le prototype est :
Code :
|
et moi j'utilise en gros
Code :
|
Je suis sur (ou presque) de la variable 'payload', je pense que je me goure dans les paramètres mais où? ... Quelqu'un a un exemple d'utilisation ? si quelqu'un voit l'erreur ou a une indic, qu'il n'hésite pas !
Marsh Posté le 06-09-2005 à 08:47:17
Les paramètres sont peut-être bons, car le programme ne plante pas, et le code d'erreur ne concerne pas les paramètres. Le code d'erreur semble plutôt indiquer que le format des données à décompresser n'est pas le bon.
Il est spécifié dans la doc sur http://www.gzip.org/zlib/manual.html
Citation : The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files rfc1950.txt (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). |
Il existe bien d'autres formats.
Connais-tu les premiers octets du fichier à décompresser ?
Si les deux premiers octets sont "PK", le fichier ne pourra pas être décompressé par zlib, car "PK" (initiales du regretté Phil Katz, mort le 14 avril 2000, à l'age de 37 ans) identifie un fichier PKziped qui n'est pas traité par zlib, ce qui est dommage car le format PKZip est utilisé dans près de 90 pourcent des cas sous Windows.
Marsh Posté le 06-09-2005 à 17:08:39
En fait j'essaie de lire une page HTML, un des paramètres du serveur est : "Content-Encoding: gzip"
donc la trame qu'il envoie est compressée. Ethereal arrive bien à la lire mais mon programme ...
Ethereal m'affiche "............[o.8.." pour les premiers octets, donc je pense que la zlib devrait pouvoir décoder.
Tiens je viens de me rendre compte que les premiers messages de la trame non compressés ne s'affichent pas (comme "Server: Apache/2.0.54 (Unix) PHP/4.3.11" par exemple), mon problème ne vient pas de zlib , je vais enquêter, je reviens
Marsh Posté le 07-09-2005 à 10:40:47
yolanc a écrit : |
Marsh Posté le 29-07-2002 à 15:30:36
Comment faire pour éxécuter le plus proprement possible une compression gzip à partir d'un code C ? Est-ce qu'on a un retour pour savoir si celle-ci s'est bien déroulé ?
Merci