Я пытаюсь запрограммировать функцию tar, но у меня есть некоторые проблемы. Я хочу прочитать данные tar tar и parse. вот моя структураПлохое значение при анализе заголовка tar
struct header {
char nom[100];
char droits[3];
char taille[12];
char date_modif[12];
char type[1];
};
А теперь мой код для анализа данных заголовка:
while (fread(head.nom, 100, 1, archive) != 0){
printf("NOM : %s\n", head.nom);
//droits
fread(head.droits, 3, 1, archive);
printf("DROITS : %s\n", head.droits);
//taille
fread(head.taille, 12, 1, archive);
printf("TAILLE : %s\n", head.taille);
//last modif
fread(head.date_modif, 12, 1, archive);
printf("MODIF : %s\n", head.date_modif);
//type
fread(head.type, 1, 1, archive);
printf("TYPE : %s\n", head.type);
printf("NOM : %s\n", head.nom);
exit(1);
// on se place a la fin du premier fichier
fseek(archive, oct2dec(atoi(head.taille)), SEEK_CUR);
//fprintf(stdout, "%s %d \n", head.nom, oct2dec(atoi(head.taille)));
i++;
}
И результат:
NOM : a.txt...............................................................................................
DROITS : 664
TAILLE : 936.........
MODIF : 1352910882..
TYPE : 1
NOM : a.txt...............................................................................................664936.........1352910882..1
Моя проблема заключается в том, что дисплей последней строки все мои данных, и я хочу отображать только a.txt .... (как в первой строке). Как это сделать, чтобы исправить эту проблему?
Thanks
Спасибо, это работает. – guillaume
Действительно? Стандарт - 100 для старого tar, и некоторые довольно разные вещи для нового ustar. – bmargulies
Да, я тоже удивлен, потому что я выбрал 100 из-за спецификации tar:/ – guillaume