Coder un archiver/unarchiver tar [C] - C - Programmation
Marsh Posté le 29-11-2009 à 14:29:58
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.
Marsh Posté le 29-11-2009 à 14:38:56
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...
Marsh Posté le 29-11-2009 à 14:51:26
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.
Marsh Posté le 28-11-2009 à 13:40:34
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!