Bonjour,
J'essaye avec difficulté d'utiliser la librairie libtar, pour créer des archives, ajouter des fichiers, lire le contenu de l'archive...
Je n'ai pas trouvé de réelle documentation, ni d'exemple clair pouvant m'aider..
Est-ce que quelqu'un pourrais me poster un bout de code pour m'aider à démarrer ?
merci de votre aide.
# Docs
Posté par mrlem (site web personnel) . Évalué à 3.
Les pages dispos son :
- tar_append_file.3
- tar_block_read.3
- tar_extract_all.3
- tar_extract_file.3
- tar_open.3
- th_get_pathname.3
- th_print_long_ls.3
- th_read.3
- th_set_from_stat.3
Et là tu vas me dire, "oui mais des exemples". Certes, ça manque, et google est bien muet sur le coup. Tout ce que j'ai pu trouver c'est un code source en C qui comporte notamment une ouverture de fichier TAR avec cette lib (j'ai bien regardé le code source de gnozip, malheureusement celui-ci utilise une implémentation maison du détarrage...)
http://darcs.frugalware.org/repos/pacman-i18n/src/pacman.c
Voilà, entre ça, les man pages, et ta débrouillardise, ça devrait aller ? ;-)
Désolé de ne pas avoir donné de code à moi, mais je n'ai jamais utilisé cette lib pour être honnête ! Bonne chance.
[^] # Re: Docs
Posté par helmut . Évalué à 1.
Voilà où je bute encore :
lorsque je veux utiliser la fonction,
j'obtiens le message suivant :
Or j'ai bien linké la libtar, et dans le manuel, il semble que la valeur de oflags ne peut-être que O_RDONLY ou O_WONLY...
Est-ce que je dois définir cette constante quelque part ?
[^] # Re: Docs
Posté par helmut . Évalué à 1.
Voilà où je bute encore :
lorsque je veux utiliser la fonction,
j'obtiens le message suivant :
Or j'ai bien linké la libtar, et dans le manuel, il semble que la valeur de oflags ne peut-être que O_RDONLY ou O_WONLY...
Est-ce que je dois définir cette constante quelque part ?
[^] # Re: Docs
Posté par helmut . Évalué à 1.
[^] # Re: Docs
Posté par mrlem (site web personnel) . Évalué à 2.
Autrement dit un problème de linkage (pardon, édition de liens). Ton code est donc probablement correct au niveau des inclusions, mais la subtilité doit être sur la ligne de commande pour compiler, sachant que la mienne était :
(test.c étant ton source)
[^] # Re: Docs
Posté par mrlem (site web personnel) . Évalué à 2.
[^] # Re: Docs
Posté par mrlem (site web personnel) . Évalué à 2.
Pour le reste, je te laisse, j'suis crevé. Pis ça te donnera l'occasion de reviser le fonctionnement de ces joyeusetés ;o) Faudrait pas que je sois le seul à bosser !
[^] # Re: Docs
Posté par mrlem (site web personnel) . Évalué à 2.
[^] # Re: Docs
Posté par mrlem (site web personnel) . Évalué à 2.
[^] # Re: Docs
Posté par helmut . Évalué à 1.
Je suis nouveau en c, et je pensais qu'en déclarant le pointeur, il n'y avait pas besoin d'allouer de la mémoire, puisque celui-ci utiliserait la mémoire déjà alouer par la fonction tar_open, dans la librairie correspondante...
Si c'est pas le cas, je comprend maintenant les fautes de segmentation que j'ai obtenu dans d'autre prog. Pourrais tu m'expliquer comment il faut procéder ici (ca me permettra de comprendre mon erreur)
J'ai bien acheté de livres, mais il manque parfois des exemples concrets, et j'ai toujours besoin de me planter pour enregister ;)
[^] # Re: Docs
Posté par mrlem (site web personnel) . Évalué à 2.
Oui, c'est bien ça : comme je le dis un peu plus haut, j'ai sorti une belle anerie (je n'avais pas lu la man page de tar_open en entier. Cela dit si tu as des segfaults dans d'autres cas, c'est bien vers ce genre de problème qu'il faut s'orienter.
[^] # Re: Docs
Posté par helmut . Évalué à 1.
Je suis nouveau en c, et je pensais qu'en déclarant le pointeur, il n'y avait pas besoin d'allouer de la mémoire, puisque celui-ci utiliserait la mémoire déjà alouer par la fonction tar_open, dans la librairie correspondante...
Si c'est pas le cas, je comprend maintenant les fautes de segmentation que j'ai obtenu dans d'autre prog. Pourrais tu m'expliquer comment il faut procéder ici (ca me permettra de comprendre mon erreur)
J'ai bien acheté de livres, mais il manque parfois des exemples concrets, et j'ai toujours besoin de me planter pour enregister ;)
# merci à toi
Posté par helmut . Évalué à 1.
Donc si j'ai bien compris, je revois le linkage et je décommente la ligne d'initialisation de la variable type ?
Un grand, grand merci pour ton aide ! J'espère que ca me permettra d'avancer
[^] # Re: merci à toi
Posté par mrlem (site web personnel) . Évalué à 2.
J'espère aussi que ça t'aidera à avancer :o)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.