Fichier tar.h

Objectif

Contient les définitions des indicateurs utilisés dans l'en-tête d'archive tar .

Descriptif

Le fichier /usr/include/tar.h contient des définitions étendues utilisées dans letypeflagetmodezones du bloc d'en-tête d'archivage tar . Le fichier fournit également des valeurs pour les entrées POSIX requises.

Bloc d'en-tête d'archive tar

Chaque fichier archivé à l'aide de la commande tar est représenté par un bloc d'en-tête décrivant le fichier, suivi de zéro ou plusieurs blocs qui donnent le contenu du fichier. L'indicateur de fin d'archivage se compose de deux blocs remplis de zéros binaires. Chaque bloc a une taille fixe de 512 octets.

Les blocs sont regroupés pour les opérations d'E-S physiques et les groupes peuvent être écrits à l'aide d'une seule opération de sous-routine écriture . Sur bande magnétique, le résultat de cette opération d'écriture est un enregistrement de bande unique. Le dernier enregistrement est toujours un total de 512 octets. Les blocs après les zéros de fin d'archivage contiennent des données non définies.

La structure du bloc d'en-tête est présentée dans le tableau suivant. Toutes les longueurs et tous les décalages sont au format décimal.

Tableau 1. Structure de bloc d'en-tête
Nom de zone structure
name
Décalage :
0
Longueur en octets:
100
Contenu :
Nom de fichier sans barre oblique (/)
mode
Décalage :
100
Longueur en octets:
8
Contenu :
Mode de fichier
uid
Décalage :
108
Longueur en octets:
MAXIMPL_NOM_D'UTILISATEUR_MAX
Contenu :
ID utilisateur
gid
Décalage :
116
Longueur en octets:
MAXIMPL_NOM_D'UTILISATEUR_MAX
Contenu :
ID groupe
size
Décalage :
124
Longueur en octets:
12
Contenu :
Taille en octets
mtime
Décalage :
136
Longueur en octets:
12
Contenu :
Heure de la dernière modification
cksum
Décalage :
148
Longueur en octets:
8
Contenu :
Total de contrôle du fichier et de l'en-tête
typeflag
Décalage :
156
Longueur en octets:
1
Contenu :
Type de fichier
linkname
Décalage :
157
Longueur en octets:
100
Contenu :
Nom de chemin lié ou nom de fichier
magic
Décalage :
257
Longueur en octets:
6
Contenu :
Représentation de format pour tar
version
Décalage :
263
Longueur en octets:
3
Contenu :
Représentation de version pour tar
uname
Décalage :
265
Longueur en octets:
32
Contenu :
Nom d'utilisateur
gname
Décalage :
297
Longueur en octets:
32
Contenu :
Nom du groupe
devmajor
Décalage :
329
Longueur en octets:
8
Contenu :
Représentation de l'unité principale
devminor
Décalage :
337
Longueur en octets:
8
Contenu :
Représentation d'unité secondaire
prefix
Décalage :
345
Longueur en octets:
155
Contenu :
Nom de chemin sans barres obliques de fin

Les noms sont conservés uniquement si les caractères sont choisis dans le jeu de caractères de nom de fichier portable POSIX ou si le même jeu de caractères étendu est utilisé entre les systèmes. Lors d'une opération de lecture, un fichier peut être créé uniquement si le fichier d'origine est accessible à l'aide de la sous-routine ouvrir, stat, répertoire chdir, fcntlou opendir .

Zones de bloc d'en-tête

Chaque zone du bloc d'en-tête et chaque caractère du support d'archivage sont contigus. Il n'y a pas de remplissage entre les zones. Pour plus d'informations sur les zones spécifiques et leurs valeurs, procédez comme suit:

name
Le nom de chemin du fichier est créé à l'aide de cette zone ou en utilisant cette zone en relation avec laprefix:NONE. Si la commandeprefixest incluse, le nom du fichier estprefix/name. Cette zone se termine par une valeur nulle, sauf si chaque caractère n'est pas null.
mode
Fournit 9 bits pour les droits d'accès aux fichiers et 3 bits pour les modes SUID, SGID, et SVTX. Toutes les valeurs de cette zone sont en octal. Lors d'une opération de lecture, les bits de mode désignés sont ignorés si l'utilisateur ne dispose pas de droits égaux (ou supérieurs) ou si les modes ne sont pas pris en charge. Les zones numériques se terminent par un espace et un octet nul. Le fichier tar.h contient les valeurs possibles suivantes pour cette zone:
Indicateur Octal Descriptif
IDSUT 04000 Définissez l'ID utilisateur lors de l'exécution.
identification de groupe de stockage temporaire 02000 Définir l'ID groupe lors de l'exécution.
TSVTX 01000 Réservé.
TUREAD 00400 Lu par le propriétaire.
TUWRITE 00200 Ecriture par le propriétaire.
TUEXEC 00100 Exécuter ou rechercher par propriétaire.
TGREAD 00040 Lu par le groupe.
ETECRITURE 00020 Ecriture par groupe.
Commande TGEXEC 00010 Exécuter ou rechercher par groupe.
LECTURE EN LECTURE 00004 Lu par les autres.
ECRITURE 00002 Ecrivez par d'autres.
Commande TOEXEC 00001 Exécuter ou rechercher par un autre.
uid
Extrait des zones d'archive correspondantes sauf si un utilisateur disposant des privilèges appropriés restaure le fichier. Dans ce cas, la valeur de la zone est extraite du mot de passe et des fichiers de groupe à la place. Les zones numériques se terminent par un espace et un octet nul.
gid
Extrait des zones d'archive correspondantes sauf si un utilisateur disposant des privilèges appropriés restaure le fichier. Dans ce cas, la valeur de la zone est extraite du mot de passe et des fichiers de groupe à la place. Les zones numériques se terminent par un espace et un octet nul.
size
La valeur est 0 lorsque le typeflagest défini sur TYPE DE LNK. Cette zone se termine par un espace uniquement.
mtime
La valeur est obtenue à partir de la zone d'heure de modification de la sous-routine stat . Cette zone se termine par un espace uniquement.
chksum
Lors du calcul, la somme de tous les octets de la structure d'en-tête est traitée comme des espaces. Chaque octet non signé est ajouté à un entier non signé (initialisé à 0) avec une précision d'au moins 17 bits. Les zones numériques se terminent par un espace et un octet nul.
typeflag
Le fichier tar.h contient les valeurs possibles suivantes pour cette zone:
Indicateur Valeur Descriptif
REGTYPE '0' Fichier standard.
AREGTYPE '\0' Fichier standard.
TYPE DE LNK '1' Lien.
TYPE DE SYM '2' Réservé.
TYPE CRH '3' Caractère spécial.
TYPE DE BLK '4' Blocage spécial.
TYPE DE DIRDE '5' Répertoire. Dans ce cas, lesizeLa zone n'a pas de signification.
FIFOTYPE '6' FIFO spécial. L'archivage d'un fichier FIFO archive son existence et non son contenu.
CONTENU '7' Réservé.

Si d'autres valeurs sont utilisées, le fichier est extrait en tant que fichier standard et un avertissement est émis pour la sortie d'erreur standard. Les zones numériques se terminent par un espace et un octet nul.

L'indicateur TYPE DE LNK représente un lien vers un autre fichier, de tout type, précédemment archivé. Ces fichiers liés sont identifiés par chaque fichier ayant le même dispositif et le même numéro de série de fichier. Le nom de la liaison est spécifié dans lelinkname, incluant un octet NULL de fin.

linkname
N'utilise pas leprefixpour générer un nom de chemin. Si le nom de chemin oulinknameest trop longue, un message d'erreur est renvoyé et toute action sur ce fichier ou répertoire est annulée. Cette zone est terminée par une valeur NULL sauf si chaque caractère n'est pas NULL.
magic
Contient la valeur TMAGIC , qui reflète le format d'archive tar étendu. Dans ce cas, leunameetgnamecontient la représentation ASCII du propriétaire du fichier et du groupe de fichiers. Si un fichier est restauré par un utilisateur disposant des droits appropriés, lauidetgidles zones sont extraites des fichiers de mot de passe et de groupe (à la place des zones d'archive correspondantes). Cette zone est terminée par une valeur NULL.
version
Représente la version de la commande tar utilisée pour archiver le fichier. Cette zone se termine par un espace uniquement.
uname
Contient la représentation ASCII du propriétaire du fichier. Cette zone est terminée par une valeur NULL.
gname
Contient la représentation ASCII du groupe de fichiers. Cette zone est terminée par une valeur NULL.
devmajor
Contient le numéro principal de l'unité. Terminé par un espace et un octet nul.
devminor
Contient le numéro mineur de l'unité. Terminé par un espace et un octet nul.
prefix
Si cette zone n'est pas nulle, le nom de chemin du fichier est créé à l'aide de laprefix/namevaleurs ensemble. NULL-terminé sauf si chaque caractère n'est pas NULL.