Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1817 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C] Coder un archiver/unarchiver tar

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Coder un archiver/unarchiver tar

n°1945559
scarecrows​'nox
Keep on D(r)ummin'!!!!
Posté le 28-11-2009 à 13:40:34  profilanswer
 

Bonjour tout le monde,
J'ai un petit exo a faire et je ne sais pas du tout comment commencer:
Je dois comme dit le sujet faire un archiver/unarchiver de .tar
j'ai vu sur Wiki qu'un .tar contient un header pourchaque fichier qu'il contient mais je ne comprends pas un truc:
 
 
Field Offset  Field Size  Field
0  100  File name
100  8  File mode
108  8  Owner's numeric user ID
116  8  Group's numeric user ID
124  12  File size in bytes
136  12  Last modification time in numeric Unix time format
148  8  Checksum for header block
156  1  Link indicator (file type)
157  100  Name of linked file
 
Link indicator  
field Value  Meaning
'0'  Normal file
(ASCII NUL)  Normal file (now obsolete)
'1'  Hard link
'2'  Symbolic link
'3'  Character special
'4'  Block special
'5'  Directory
'6'  FIFO
 
Donc si je veux gerer l'arborescence de mes dossier je dois utiliser le '5' pr le Link indicator?
 
Sinon niveau algo je compter parser en recursif mes dossier, bufferiser chaque fichier avec les infos correspondante au header et ecrire tout ça ds un fichier .tar et le tester avec winrar. Apres je me plante p-e.
Je vous poste mon bout de code des que j'aurais compris les fonction d'open de write et de tte manip sur files.
merci beaucoup!

mood
Publicité
Posté le 28-11-2009 à 13:40:34  profilanswer
 

n°1945664
malka1986
Posté le 29-11-2009 à 14:29:58  profilanswer
 

Pour en avoir fait un recement, c'est bien "5" pour les dossiers. Accessoirement, dans les headers il faut forcer une size de 0 pour les dossiers.

n°1945667
scarecrows​'nox
Keep on D(r)ummin'!!!!
Posté le 29-11-2009 à 14:38:56  profilanswer
 

Ok, Bon j'ai un peu avancer pour le Header mais maintenant je suis bloquer a plusieurs petites choses comme le Checksum ou encore le devmajor et le devminor je sais pas du tt ce que c'est...

n°1945671
malka1986
Posté le 29-11-2009 à 14:51:26  profilanswer
 

checksum = addition de la valeur ascii de tout le header (sachant que le checksum fait 8 caracteres et est rempli d'espaces a l'origine) + la valeur d'un espace supplémentaire.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C] Coder un archiver/unarchiver tar

 

Sujets relatifs
recherche des ressources Visual C++bzip2 dans code C
[C++] classe array 1d et delete[][C++] Map statique dans une classe
addition de caracteres en C ...Logiciel pour coder en php et yaml sous windows ?
[C] [resolu] lecture matrice alloué dynamiquement{C++} Tableau de structure
[C/C++] Coût d'une allocation mémoire[C#] Héritage de Template (généric)
Plus de sujets relatifs à : [C] Coder un archiver/unarchiver tar


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR