table of contents
- trixie-backports 4.30.0-1~bpo13+1
- testing 4.30.0-1
- unstable 4.30.0-1
| MAGIC(5) | File Formats Manual | MAGIC(5) |
NOM¶
magic — Fichier de
motifs magiques de la commande file(1)
DESCRIPTION¶
Cette page de manuel documente le format des fichiers magiques utilisés par la commande file(1) version 5.46. La commande file(1) identifie le type d’un fichier en utilisant, entre autres, un test qui vérifie si le fichier contient certains « motifs magiques ». La base de données de ces « motifs magiques » est en général contenue dans le fichier binaire pointé par /usr/share/misc/magic.mgc ou dans le dossier /usr/share/misc/magic qui contient les fichiers texte source de motifs magiques. La base de données spécifie les motifs qui doivent être testés, quel message ou type MIME doit être affiché si un motif particulier est trouvé, et des informations supplémentaires à extraire du fichier.
Le format des multiples fichiers source utilisés pour construire la base de données est le suivant : chaque ligne d’un fichier spécifie un test à effectuer. Chaque test compare les données situées à un certain décalage dans le fichier avec une valeur d’octet, une chaîne ou une valeur numérique. Si le test est positif, un message est affiché. Une ligne contient les champs suivants :
décalage- Un nombre spécifiant le décalage (en octets) dans le fichier
auquel se trouvent les données à tester. Ce décalage
peut être un nombre négatif :
- s’il s’agit du premier décalage direct de l’entrée magique (au niveau de continuation 0), auquel cas il sera interprété comme un décalage depuis la fin du fichier en allant en arrière. Cela ne fonctionne que si le fichier est un fichier normal et possède un descripteur de fichier.
- s’il s’agit d’un décalage de continuation
relatif à la fin du dernier champ de niveau supérieur
(
&).
type- Le type des données à tester. Les valeurs possibles
sont :
byte- Une valeur sur un octet.
short- Une valeur sur deux octets dans l’ordre des octets natif de la machine utilisée.
long- Une valeur sur quatre octets dans l’ordre des octets natif de la machine utilisée.
quad- Une valeur sur huit octets dans l’ordre des octets natif de la machine utilisée.
float- Un nombre en virgule flottante de l’IEEE en simple précision sur 32 bits dans l’ordre des octets natif de la machine utilisée.
double- Un nombre en virgule flottante IEEE en double précision sur 64 bits dans l’ordre des octets natif de la machine utilisée.
string- Une chaîne d’octets. La spécification du type
string peut être suivie d’une option /<taille> et
d’un jeu de symboles /[bCcftTtWw]*. La taille limite le nombre
de caractères à copier. Zéro signifie tous les
caractères. Les symboles valables sont les suivants :
- b
- Forcer un test de fichier binaire.
- C
- Utiliser une recherche de correspondance insensible à la casse pour les caractères du motif en capitales : les caractères du motif en capitales correspondront aux caractères en minuscules ou en capitales de la cible, alors que les caractères du motif en minuscules ne correspondront qu’aux caractères en capitales de la cible.
- c
- Utiliser une recherche de correspondance insensible à la casse pour les caractères du motif en minuscules : les caractères du motif en minuscules correspondront aux caractères en minuscules ou en capitales de la cible, alors que les caractères du motif en capitales ne correspondront qu’aux caractères en capitales de la cible. Pour une recherche de correspondance totalement insensible à la casse, spécifiez les deux symboles « c » et « C ».
- f
- La chaîne mise en correspondance doit être un mot entier, pas une portion de mot.
- T
- Rogner la chaîne, c’est-à-dire supprimer les blancs au début et à la fin.
- t
- Forcer le test de fichier texte.
- W
- Compacter les blancs dans la cible qui doit contenir au moins un
caractère blanc. Si le motif contient
nblancs consécutifs, la cible devra contenir au moinsnblancs consécutifs pour correspondre. - w
- Traiter chaque blanc comme un blanc optionnel. Il sera supprimé avant l’affichage de la chaîne.
pstring- Une chaîne de style Pascal où le premier byte/short/int
est interprété comme la longueur non signée. La
longueur par défaut est sur un octet et peut être
spécifiée à l’aide d’un
modificateur. Les modificateurs pris en charge sont les
suivants :
La chaîne n’est pas terminée par un caractère NULL. « J » est préféré à « I », car ce type de longueur est propre au format JPEG.
- B
- Une longueur sur 1 octet (par défaut).
- H
- Une longueur sur 2 octets gros-boutistes.
- h
- Une longueur sur 2 octets petit-boutistes.
- L
- Une longueur sur 4 octets gros-boutistes.
- l
- Une longueur sur 4 octets petit-boutistes.
- J
- Le champ longueur est inclus dans la longueur totale.
date- Une valeur sur 4 octets interprétée comme une date de style UNIX.
qdate- Une valeur sur 8 octets interprétée comme une date de style UNIX.
ldate- Une valeur sur 4 octets interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.
qldate- Une valeur sur 8 octets interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.
qwdate- Une valeur sur 8 octets interprétée comme une date de style Windows.
msdosdate- Une valeur sur 2 octets interprétée comme une date de style FAT/DOS.
msdostime- Une valeur sur 2 octets interprétée comme une heure de style FAT/DOS.
beid3- Une longueur ID3 sur 32 bits dans l’ordre gros-boutiste.
beshort- Une valeur sur 2 octets dans l’ordre gros-boutiste.
belong- Une valeur sur 4 octets dans l’ordre gros-boutiste.
bequad- Une valeur sur 8 octets dans l’ordre gros-boutiste.
befloat- Un nombre en virgule flottante de l’IEEE en simple précision sur 32 bits en ordre gros-boutiste.
bedouble- Un nombre en virgule flottante de l’IEEE en double précision sur 64 bits en ordre gros-boutiste.
bedate- Une valeur sur 4 octets dans l’ordre gros-boutiste interprétée comme une date de style UNIX.
beqdate- Une valeur sur 8 octets dans l’ordre gros-boutiste interprétée comme une date de style UNIX.
beldate- Une valeur sur 4 octets dans l’ordre gros-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.
beqldate- Une valeur sur 8 octets dans l’ordre gros-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.
beqwdate- Une valeur sur 8 octets dans l’ordre gros-boutiste interprétée comme une date de style Windows.
bemsdosdate- Une valeur sur 2 octets dans l’ordre gros-boutiste interprétée comme une date de style FAT/DOS.
bemsdostime- Une valeur sur 2 octets dans l’ordre gros-boutiste interprétée comme une heure de style FAT/DOS.
bestring16- Une chaîne unicode de caractères sur 2 octets (UCS16) dans l’ordre gros-boutiste.
leid3- Une longueur ID3 sur 32 bits dans l’ordre petit-boutiste.
leshort- Une valeur sur 2 octets dans l’ordre petit-boutiste.
lelong- Une valeur sur 4 octets dans l’ordre petit-boutiste.
lequad- Une valeur sur 8 octets dans l’ordre petit-boutiste.
lefloat- Un nombre en virgule flottante de l’IEEE en simple précision sur 32 bits en ordre petit-boutiste.
ledouble- Un nombre en virgule flottante de l’IEEE en double précision sur 64 bits en ordre petit-boutiste.
ledate- Une valeur sur 4 octets dans l’ordre petit-boutiste interprétée comme une date de style UNIX.
leqdate- Une valeur sur 8 octets dans l’ordre petit-boutiste interprétée comme une date de style UNIX.
leldate- Une valeur sur 4 octets dans l’ordre petit-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.
leqldate- Une valeur sur 8 octets dans l’ordre petit-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.
leqwdate- Une valeur sur 8 octets dans l’ordre petit-boutiste interprétée comme une date de style Windows.
lemsdosdate- Une valeur sur 2 octets dans l’ordre gros-boutiste interprétée comme une date de style FAT/DOS.
lemsdostime- Une valeur sur 2 octets dans l’ordre gros-boutiste interprétée comme une heure de style FAT/DOS.
lestring16- Une chaîne unicode à caractères sur 2 octets (UCS16) dans l’ordre petit-boutiste.
melong- Une valeur sur 4 octets dans l’ordre mi-boutiste (PDP-11).
medate- Une valeur sur 4 octets dans l’ordre mi-boutiste (PDP-11) interprétée comme une date de style UNIX.
meldate- Une valeur sur 4 octets dans l’ordre mi-boutiste interprétée comme une date de style UNIX, mais en heure locale au lieu de UTC.
indirect- Consulter à nouveau la base de données magique à
partir du décalage donné. Le décalage du magique
indirectest par défaut absolu dans le fichier, mais il est possible d’indiquer qu’il est relatif au début de l’entrée en spécifiant/r. name- Définition d’une instance magique « nommée » qui pourra être appelée depuis une autre entrée magique « use », comme une sous-routine. Les décalages magiques directs d’une instance nommée sont relatifs au décalage de l’entrée qui correspond précédente, mais les décalages indirects sont relatifs au début du fichier, comme c’est le plus souvent le cas. Les entrées magiques nommées correspondent toujours.
use- Appel récursif du magique nommé en débutant au
décalage actuel. Si le nom du magique
référencé est préfixé d’un
« ^ », le boutisme (endianness) est
inversé ; par exemple, si le magic mentionne
leshort, il sera traité commebeshort, et vice-versa. Cela permet d’éviter de dupliquer les règles pour différents boutismes. regex- Une correspondance d’expression rationnelle dans la syntaxe des
expressions rationnelles POSIX étendue (comme egrep(1)).
Le traitement des expressions rationnelles peut prendre un temps
considérable et leurs performances sont difficiles à
prévoir ; leur utilisation est donc
déconseillée. Pour une utilisation en production, leurs
performances doivent être vérifiées avec soin. La
taille de la chaîne à rechercher doit aussi être
limitée en spécifiant
/<taille>pour éviter des problèmes de performances lors du parcours de grands fichiers. La spécification du type peut aussi être suivie de/[c][s][l]. Le symbole « c » indique une recherche de correspondance insensible à la casse, alors que le symbole « s » définit le décalage au décalage du début des données qui correspondent au lieu de la fin. Le modificateur « l » fait que la limite de taille exprime un nombre de lignes au lieu d’un nombre d’octets. Les lignes sont délimitées par le délimiteur de ligne natif de la plateforme. Si un nombre de lignes est spécifié, un nombre implicite d’octets est aussi calculé en supposant que chaque ligne a une taille de 80 caractères. Si aucun nombre d’octets ou de lignes n’est spécifié, la recherche sera automatiquement limitée à 8 Kio. « ^ » et « $ » ne correspondent pas au début et à la fin du fichier, mais au début et à la fin de lignes individuelles, respectivement. search- Une recherche de chaîne littérale à partir du
décalage donné. Les symboles modificateurs sont les
mêmes que ceux utilisés pour les motifs de type
string. L’expression de recherche doit contenir l’étendue de recherche sous la forme/nombre, c’est-à-dire le nombre de positions auxquelles une correspondance positive est recherchée, à partir du décalage de départ. Ce type convient pour les recherches de grandes expressions binaires avec des décalages variables et utilisant des échappements\pour les caractères spéciaux. L’ordre des symboles modificateurs et du nombre n’a pas d’importance. default- Cette valeur n’a pas de type et doit être
utilisée avec le test x (qui renvoie toujours
vrai). Elle correspond lorsqu’aucun autre test n’a
déjà correspondu à ce niveau de continuation.
Pour effacer ces tests correspondant pour un niveau de continuation,
utiliser le test
clear. clear- Ce test renvoie toujours vrai et efface le symbole de correspondance
pour ce niveau de continuation. Il est à utiliser avec le test
default. der- Parcourir le fichier en le considérant comme un fichier de
certificat DER. Le champ test est utilisé comme un type DER qui
doit faire l’objet d’une recherche de correspondance.
Les types DER sont :
eoc,bool,int,bit_str,octet_str,null,obj_id,obj_desc,ext,real,enum,embed,utf8_str,rel_oid,time,res2,seq,set,num_str,prt_str,t61_str,vid_str,ia5_str,utc_time,gen_time,gr_str,vis_str,gen_str,univ_str,char_str,bmp_str,date,tod,datetime,duration,oid-irietrel-oid-iri. Ces types peuvent être suivis d’une valeur numérique qui indique la taille du champ en octets. guid- Un identificateur globalement unique analysé et affiché comme XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Son format est une chaîne.
décalage- C’est une valeur sur 8 octets indiquant le
décalage actuel dans le fichier. Elle permet de
déterminer la taille du fichier ou du tampon magique. Par
exemple, les entrées magiques :
-0 offset x ce fichier a une taille de %lld octets -0 offset <=100 doit être supérieur à 100 \ octets et ne fait que %lld octal- Une chaîne représentant un nombre octal.
À des fins de compatibilité avec le « Single UNIX Standard », les spécificateurs de type
dCetd1sont équivalents àbyte, les spécificateursuCetu1sont équivalents àubyte, les spécificateursdSetd2sont équivalents àshort, les spécificateursuSetu2sont équivalents àushort, les spécificateursdI,dLetd4sont équivalents àlong, les spécificateursuI,uLetu4sont équivalents àulong, le spécificateurd8est équivalent àquad, le spécificateuru8est équivalent àuquadet le spécificateursest équivalent àstring. En outre, le spécificateurdQest équivalent àquadet le spécificateuruQest équivalent àuquad.Chaque motif magique du niveau le plus haut (voir ci-après pour une explication à propos des niveaux) est classé comme de type texte ou binaire en fonction des types utilisés. Les types “regex” et “search” sont classés comme tests de type texte, à moins que des caractères non imprimables ne soient utilisés dans le motif. Tous les autres tests sont classés comme binaires. Un motif du niveau le plus haut est considéré comme texte de test lorsque tous ses motifs sont de type texte ; dans le cas contraire, il est considéré comme motif binaire. Lors de la recherche du type d’un fichier, les motifs binaires sont essayés en premier ; si aucune correspondance n’est trouvée et si le contenu du fichier ressemble à du texte, son encodage est déterminé et les motifs de type texte sont recherchés.
Les types numériques peuvent être suivis de
&et d’une valeur numérique pour indiquer que la valeur doit être combinée à l’aide d’un ET logique avec la valeur numérique avant d’effectuer toute comparaison. Préfixer le type avec unuindique que les comparaisons ordonnées doivent être non signées. test- La valeur à comparer avec la valeur issue du fichier. Si le type
est numérique, cette valeur est spécifiée au format
C ; si le type est une chaîne, cette valeur est
spécifiée comme une chaîne C avec les
échappements habituellement permis (par exemple \n pour une
nouvelle ligne).
Les valeurs numériques peuvent être préfixées d’un caractère indiquant l’opération à exécuter. Il peut s’agir de
=pour indiquer que la valeur issue du fichier doit être égale à la valeur spécifiée,<pour indiquer que la valeur issue du fichier doit être inférieure à la valeur spécifiée,>pour indiquer que la valeur issue du fichier doit être supérieure à la valeur spécifiée,&pour indiquer que tous les bits de la valeur issue du fichier qui correspondent aux bits à 1 de la valeur spécifiée doivent être à 1,^pour indiquer que tous les bits de la valeur issue du fichier qui correspondent aux bits à 1 de la valeur spécifiée doivent être à 0,~pour indiquer que la valeur qui suit doit être inversée ouxpour indiquer que toute valeur correspondra.Si aucun caractère n’est indiqué, il est supposé être=. Les opérateurs&,^et~ne fonctionnent pas avec les nombres en virgule flottante et ceux en double précision. L’opérateur!spécifie que la ligne correspond si le test échoue.Les valeurs numériques sont spécifiées au format C ; par exemple,
13est décimal,013est octal et0x13est hexadécimal.Les types date ne font pas l’objet d’opérations numériques ; à la place, la valeur numérique est interprétée comme un décalage.
Pour les valeurs de type chaîne, la chaîne du fichier doit correspondre à la chaîne spécifiée. Les opérateurs
=,<et>(mais pas&) peuvent s’appliquer aux chaînes. La taille utilisée pour la recherche de correspondance est celle de l’argument chaîne dans le fichier magique. Cela signifie qu’une ligne peut correspondre à toute chaîne non vide (en général utilisée ensuite pour afficher la chaîne) avec >\0 (car toute chaîne non vide est supérieure à la chaîne vide).Les dates sont traitées comme des valeurs numériques selon leur représentation interne.
Le test spécial x renvoie toujours vrai.
message- Le message à afficher si la correspondance est positive. Si la chaîne contient une spécification de format de type printf(3), la valeur issue du fichier (à laquelle aura été appliqué tout masque spécifié) est affichée en utilisant le message comme chaîne de format. Si la chaîne commence par « \b », le message affiché est le reste de la chaîne sans espace ajoutée avant : plusieurs correspondances sont normalement séparées par des espaces uniques.
Les type et créateur APPLE de caractères APPLE 4+4 peuvent être spécifiés sous la forme :
!:apple CREATYPE
Une liste d’extensions de nom de fichier couramment rencontrées séparées par des barres obliques peut être spécifiée sous la forme :
!:ext ext[/ext...]
autrement dit, la chaîne littérale « !:ext » suivie d’une liste d’extensions couramment rencontrées séparées par des barres obliques ; par exemple, pour les images JPEG :
!:ext jpeg/jpg/jpe/jfif
Un type MIME est indiqué sur une ligne séparée qui doit être la première ligne ni vide, ni de commentaire après la ligne magique qui identifie le type de fichier, et possède le format suivant :
!:mime TYPE_MIME
autrement dit, la chaîne littérale « !:mime » suivie du type MIME.
Une force peut être indiquée sur une ligne séparée qui fait référence à la description magique actuelle et utilise le format suivant :
!:strength OP VALEUR
L’opérateur OP peut
être +, -,
* ou / et
VALUE est une constante entre 0
et 255. Cette constante est appliquée à la force
magique par défaut actuellement calculée en utilisant
l’opérateur spécifié.
Certains formats de fichier contiennent des informations supplémentaires qui doivent être affichées avec le type de fichier ou qui impliquent des tests supplémentaires pour déterminer le véritable type du fichier. Ces tests supplémentaires sont introduits par un ou plusieurs caractères > qui précèdent le décalage. Le nombre de > sur la ligne indique le niveau du test ; une ligne sans > au début est considérée comme étant de niveau 0. Les tests sont organisés selon une hiérarchie arborescente : si le test sur une ligne de niveau n réussit, tous les tests suivants de niveau n+1 sont effectués, et les messages affichés si les tests réussissent, jusqu’à ce qu’une ligne de niveau n (ou moins) apparaisse. Pour des fichiers plus complexes, il est possible d’utiliser des messages vides juste pour obtenir l’effet « si/alors » de la façon suivante :
0 string MZ >0x18 uleshort <0x40 MS-DOS executable >0x18 uleshort >0x3f extended PC executable (e.g., MS Windows)
Les décalages ne doivent pas forcément être constants, mais peuvent aussi être lus depuis le fichier en cours d’examen. Si le premier caractère suivant le dernier > est un (, la chaîne après la parenthèse est interprétée comme un décalage indirect. Cela signifie que le nombre après la parenthèse est utilisé comme décalage dans le fichier. Les décalages indirects sont de la forme : (x [[.,][bBcCeEfFgGhHiIlmosSqQ]][+-][ y ]). La valeur de x est utilisée comme décalage dans le fichier. En fonction du spécificateur de type [bBcCeEfFgGhHiIlLmsSqQ], la valeur lue à ce décalage sera un octet, un id3 length, un short ou un long. La valeur est considérée comme signée si « , » est spécifié ou comme non signée si « . » est spécifié. Les types en capitale interprètent le nombre comme une valeur gros-boutiste, alors que les types en minuscule l’interprètent comme une valeur petit-boutiste ; le type m interprète le nombre comme une valeur mi-boutiste (PDP-11). La valeur de y est ajoutée à ce nombre et le résultat est utilisé comme décalage dans le fichier. Si aucun type n’est spécifié, le type par défaut est long. Les types reconnus sont les suivants :
| Type | Mnémonique | Boutisme | Taille |
| bcBC | Byte/Char | N/A | 1 |
| efg | Double | Little | 8 |
| EFG | Double | Big | 8 |
| hs | Half/Short | Little | 2 |
| HS | Half/Short | Big | 2 |
| i | ID3 | Little | 4 |
| I | ID3 | Big | 4 |
| l | Long | Little | 4 |
| L | Long | Big | 4 |
| m | Middle | Middle | 4 |
| o | Octal | Textual | Variable |
| q | Quad | Little | 8 |
| Q | Quad | Big | 8 |
De cette manière, les structures de longueur variable peuvent être examinées :
# Les exécutables MS Windows sont aussi des exécutables MS-DOS valables 0 string MZ >0x18 uleshort <0x40 MZ executable (MS-DOS) # sauter tout le bloc suivant si ce n’est pas un exécutable étendu >0x18 uleshort >0x3f >>(0x3c.l) string PE\0\0 PE executable (MS-Windows) >>(0x3c.l) string LX\0\0 LX executable (OS/2)
Cette stratégie d’examen a un inconvénient : vous devez vous assurer que quelque chose sera finalement affiché, sinon les utilisateurs pourront obtenir une sortie vide (comme s’il n’y avait ni PE\0\0, ni LE\0\0 dans l’exemple précédent).
Si ce décalage indirect ne peut pas être utilisé directement, des opérations simples sont possibles : ajouter [+-*/%&|^]nombre à la fin du contenu des parenthèses permet de modifier la valeur lue depuis le fichier avant qu’elle ne soit utilisée comme décalage :
# Les exécutables MS Windows sont aussi des exécutables MS-DOS valables 0 string MZ # parfois, la valeur à 0x18 est inférieure à celle à 0x40, mais il y a # encore un exécutable étendu simplement ajouté à la fin du fichier >0x18 uleshort <0x40 >>(4.s*512) leshort 0x014c COFF executable (MS-DOS, DJGPP) >>(4.s*512) leshort !0x014c MZ executable (MS-DOS)
Parfois, le décalage exact n’est pas connu, car il dépend de la taille et de la position des champs précédents (quand une indirection a été utilisée auparavant). Il est possible de spécifier un décalage relatif à la fin du dernier champ de plus haut niveau en préfixant le décalage avec « & » :
0 string MZ >0x18 uleshort >0x3f >>(0x3c.l) string PE\0\0 PE executable (MS-Windows) # le type de CPU suit immédiatement la signature PE >>>&0 leshort 0x14c for Intel 80386 >>>&0 leshort 0x8664 for x86-64 >>>&0 leshort 0x184 for DEC Alpha
Les décalages indirects et relatifs peuvent être combinés :
0 string MZ >0x18 uleshort <0x40 >>(4.s*512) leshort !0x014c MZ executable (MS-DOS) # si ce n’est pas COFF, revenir en arrière de 512 octets et ajouter # le décalage pris depuis l’octet 2/3, ce qui constitue une autre # manière de trouver le début de l’exécutable étendu >>>&(2.s-514) string LE LE executable (MS Windows VxD driver)
Ou l’autre manière :
0 string MZ >0x18 uleshort >0x3f >>(0x3c.l) string LE\0\0 LE executable (MS-Windows) # au décalage 0x80 (-4, car les décalages relatifs commencent à la fin # de la correspondance de plus haut niveau) dans l’en-tête LE, on trouve # le décalage absolu vers la zone de données où nous recherchons # une signature spécifique >>>(&0x7c.l+0x26) string UPX \b, UPX compressed
Ou même les deux !
0 string MZ >0x18 uleshort >0x3f >>(0x3c.l) string LE\0\0 LE executable (MS-Windows) # au décalage 0x58 dans l’en-tête LE, on trouve le décalage relatif # vers une zone de données où nous recherchons une signature spécifique >>>&(&0x54.l-3) string UNACE \b, ACE self-extracting archive
Si vous avez affaire à des paires décalage/taille dans votre fichier, même la seconde valeur dans une expression entre parenthèses peut être obtenue depuis le fichier lui-même en utilisant un autre jeu de parenthèses. Notez que ce décalage indirect supplémentaire est toujours relatif au début du décalage indirect principal.
0 string MZ >0x18 uleshort >0x3f >>(0x3c.l) string PE\0\0 PE executable (MS-Windows) # recherche de la section PE appelée ".idata"... >>>&0xf4 search/0x140 .idata # ... et aller à la fin de celle-ci calculé à partir de début+taille ; # ceux-là sont situés 14 et 10 octets après le nom de section >>>>(&0xe.l+(-4)) string PK\3\4 \b, ZIP self-extracting archive
Si vous avez une liste de valeurs connues à un niveau de continuation particulier, et si vous voulez prévoir une liste de cas avec défaut de style switch :
# supprimer la correspondance de ce niveau de continuation >18 clear x >18 lelong 1 one >18 lelong 2 two >18 default x # afficher la correspondance par défaut >>18 lelong x unmatched 0x%x
VOIR AUSSI¶
file(1) — la commande qui lit ce fichier.
BOGUES¶
Les formats long,
belong, lelong,
melong, short,
beshort et leshort ne
dépendent pas de la taille des types de données C
short et long sur la
plateforme, bien que la Single UNIX Specification
stipule le contraire. Cependant, étant donné que OS X Mountain
Lion a réussi la suite de validation de la Single
UNIX Specification et fournit une version de
file(1) dans laquelle ils ne dépendent pas des
tailles des types de données C et qui est compilée pour
un environnement sur 64 bits dans lequel long
est sur 8 octets au lieu de 4, la suite de validation ne
vérifie probablement pas si, par exemple,
long fait référence à un item
de la même taille que le type de données C
long. Il serait ici souhaitable de disposer des noms
de type int8,
uint8, int16,
uint16, int32,
uint32, int64 et
uint64 et de leurs variantes avec boutisme
différent pour indiquer plus clairement que ces types ont les tailles
spécifiées.
TRADUCTION¶
La traduction française de cette page de manuel a été créée par Lucien Gentis <lucien.gentis@univ-lorraine.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org
| 27 novembre 2024 | Nixpkgs |