MAGIC(5) File Formats Manual MAGIC(5) NOM magic - Fichier de motifs magiques de la commande file(1) DESCRIPTION Cette page de manuel decrit le format des fichiers magiques utilises par la commande file(1) version 5.46. La commande file(1) identifie le type d'un fichier en testant, entre autres, si le fichier contient certains << motifs magiques >>. La base de donnees de ces << motifs magiques >> se trouve en general dans un fichier binaire pointe par /usr/share/file/misc/magic.mgc ou dans le dossier /usr/share/misc/magic qui contient les fichiers texte source de motifs magiques. La base de donnees specifie les motifs qui doivent etre testes, le message ou le type MIME a afficher si un motif particulier est trouve et des informations supplementaires a extraire du fichier. Le format des multiples fichiers source utilises pour construire la base de donnees est le suivant : chaque ligne d'un fichier specifie un test a effectuer. Chaque test compare les donnees situees a un certain decalage dans le fichier avec une valeur d'octet, une chaine ou une valeur numerique. Si le test est positif, un message est affiche. Une ligne contient les champs suivants : decalage Un nombre specifiant le decalage (en octets) dans le fichier auquel se trouvent les donnees a tester. Ce decalage peut etre un nombre negatif : o s'il s'agit du premier decalage direct de l'entree magique (au niveau de continuation 0), auquel cas il sera interprete comme un decalage depuis la fin du fichier en allant en arriere. Cela ne fonctionne que si le fichier est un fichier normal et possede un descripteur de fichier. o s'il s'agit d'un decalage de continuation relatif a la fin du dernier champ de niveau superieur (&). Si le decalage commence par le symbole << + >>, tous les decalages seront interpretes par rapport au debut du fichier (comportement par defaut). type Le type des donnees a 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 utilisee. long Une valeur sur quatre octets dans l'ordre des octets natif de la machine utilisee. quad Une valeur sur huit octets dans l'ordre des octets natif de la machine utilisee. float Un nombre en virgule flottante de l'IEEE en simple precision sur 32 bits dans l'ordre des octets natif de la machine utilisee. double Un nombre en virgule flottante IEEE en double precision sur 64 bits dans l'ordre des octets natif de la machine utilisee. string Une chaine d'octets. La specification du type string peut etre suivie d'une option / et d'un jeu de symboles /[bCcftTtWw]*. La taille limite le nombre de caracteres a copier. Zero signifie tous les caracteres. Les symboles valables sont les suivants : b Forcer un test de fichier binaire. C Utiliser une recherche de correspondance insensible a la casse pour les caracteres du motif en capitales : les caracteres du motif en capitales correspondront aux caracteres en minuscules ou en capitales de la cible, alors que les caracteres du motif en minuscules ne correspondront qu'aux caracteres en capitales de la cible. c Utiliser une recherche de correspondance insensible a la casse pour les caracteres du motif en minuscules : les caracteres du motif en minuscules correspondront aux caracteres en minuscules ou en capitales de la cible, alors que les caracteres du motif en capitales ne correspondront qu'aux caracteres en capitales de la cible. Pour une recherche de correspondance totalement insensible a la casse, specifiez les deux symboles << c >> et << C >>. f La chaine mise en correspondance doit etre un mot entier, pas une portion de mot. T Rogner la chaine, c'est-a-dire supprimer les blancs au debut et a la fin. t Forcer le test de fichier texte. W Compacter les blancs dans la cible qui doit contenir au moins un caractere blanc. Si le motif contient n blancs consecutifs, la cible devra contenir au moins n blancs consecutifs pour correspondre. w Traiter chaque blanc comme un blanc optionnel. Il sera supprime avant l'affichage de la chaine. pstring Une chaine de style Pascal ou le premier byte/short/int est interprete comme la longueur non signee. La longueur par defaut est sur un octet et peut etre specifiee a l'aide d'un modificateur. Les modificateurs pris en charge sont les suivants : B Une longueur sur 1 octet (par defaut). 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. La chaine n'est pas terminee par un caractere NULL. << J >> est prefere a << I >>, car ce type de longueur est propre au format JPEG. date Une valeur sur 4 octets interpretee comme une date de style UNIX. qdate Une valeur sur 8 octets interpretee comme une date de style UNIX. ldate Une valeur sur 4 octets interpretee comme une date de style UNIX, mais en heure locale au lieu de UTC. qldate Une valeur sur 8 octets interpretee comme une date de style UNIX, mais en heure locale au lieu de UTC. qwdate Une valeur sur 8 octets interpretee comme une date de style Windows. msdosdate Une valeur sur 2 octets interpretee comme une date de style FAT/DOS. msdostime Une valeur sur 2 octets interpretee 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 precision sur 32 bits en ordre gros- boutiste. bedouble Un nombre en virgule flottante de l'IEEE en double precision sur 64 bits en ordre gros- boutiste. bedate Une valeur sur 4 octets dans l'ordre gros- boutiste interpretee comme une date de style UNIX. beqdate Une valeur sur 8 octets dans l'ordre gros- boutiste interpretee comme une date de style UNIX. beldate Une valeur sur 4 octets dans l'ordre gros- boutiste interpretee 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 interpretee 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 interpretee comme une date de style Windows. bemsdosdate Une valeur sur 2 octets dans l'ordre gros- boutiste interpretee comme une date de style FAT/DOS. bemsdostime Une valeur sur 2 octets dans l'ordre gros- boutiste interpretee comme une heure de style FAT/DOS. bestring16 Une chaine unicode de caracteres 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 precision sur 32 bits en ordre petit- boutiste. ledouble Un nombre en virgule flottante de l'IEEE en double precision sur 64 bits en ordre petit- boutiste. ledate Une valeur sur 4 octets dans l'ordre petit- boutiste interpretee comme une date de style UNIX. leqdate Une valeur sur 8 octets dans l'ordre petit- boutiste interpretee comme une date de style UNIX. leldate Une valeur sur 4 octets dans l'ordre petit- boutiste interpretee 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 interpretee 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 interpretee comme une date de style Windows. lemsdosdate Une valeur sur 2 octets dans l'ordre gros- boutiste interpretee comme une date de style FAT/DOS. lemsdostime Une valeur sur 2 octets dans l'ordre gros- boutiste interpretee comme une heure de style FAT/DOS. lestring16 Une chaine unicode a caracteres 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) interpretee comme une date de style UNIX. meldate Une valeur sur 4 octets dans l'ordre mi- boutiste interpretee comme une date de style UNIX, mais en heure locale au lieu de UTC. indirect Consulter a nouveau la base de donnees magique a partir du decalage donne. Le decalage du magique indirect est par defaut absolu dans le fichier, mais il est possible d'indiquer qu'il est relatif au debut de l'entree en specifiant /r. name Definition d'une instance magique << nommee >> qui pourra etre appelee depuis une autre entree magique << use >>, comme une sous-routine. Les decalages magiques directs d'une instance nommee sont relatifs au decalage de l'entree qui correspond precedente, mais les decalages indirects sont relatifs au debut du fichier, comme c'est le plus souvent le cas. Les entrees magiques nommees correspondent toujours. use Appel recursif du magique nomme en debutant au decalage actuel. Si le nom du magique reference est prefixe d'un << ^ >>, le boutisme (endianness) est inverse ; par exemple, si le magic mentionne leshort, il sera traite comme beshort, et vice-versa. Cela permet d'eviter de dupliquer les regles pour differents boutismes. regex Une correspondance d'expression rationnelle dans la syntaxe des expressions rationnelles POSIX etendue (comme egrep(1)). Le traitement des expressions rationnelles peut prendre un temps considerable et leurs performances sont difficiles a prevoir ; leur utilisation est donc deconseillee. Pour une utilisation en production, leurs performances doivent etre verifiees avec soin. La taille de la chaine a rechercher doit aussi etre limitee en specifiant / pour eviter des problemes de performances lors du parcours de grands fichiers. La specification du type peut aussi etre suivie de /[c][s][l]. Le symbole << c >> indique une recherche de correspondance insensible a la casse, alors que le symbole << s >> definit le decalage au decalage du debut des donnees 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 delimitees par le delimiteur de ligne natif de la plateforme. Si un nombre de lignes est specifie, un nombre implicite d'octets est aussi calcule en supposant que chaque ligne a une taille de 80 caracteres. Si aucun nombre d'octets ou de lignes n'est specifie, la recherche sera automatiquement limitee a 8 Kio. << ^ >> et << $ >> ne correspondent pas au debut et a la fin du fichier, mais au debut et a la fin de lignes individuelles, respectivement. search Une recherche de chaine litterale a partir du decalage donne. Les symboles modificateurs sont les memes que ceux utilises pour les motifs de type string. L'expression de recherche doit contenir l'etendue de recherche sous la forme /nombre, c'est-a-dire le nombre de positions auxquelles une correspondance positive est recherchee, a partir du decalage de depart. Ce type convient pour les recherches de grandes expressions binaires avec des decalages variables et utilisant des echappements \ pour les caracteres speciaux. L'ordre des symboles modificateurs et du nombre n'a pas d'importance. default Cette valeur n'a pas de type et doit etre utilisee avec le test x (qui renvoie toujours vrai). Elle correspond lorsqu'aucun autre test n'a deja correspondu a 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 a utiliser avec le test default. der Parcourir le fichier en le considerant comme un fichier de certificat DER. Le champ test est utilise 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-iri et rel-oid-iri. Ces types peuvent etre suivis d'une valeur numerique qui indique la taille du champ en octets. guid Un identificateur globalement unique analyse et affiche comme XXXXXXXX-XXXX-XXXX-XXXX- XXXXXXXXXXXX. Son format est une chaine. decalage C'est une valeur sur 8 octets indiquant le decalage actuel dans le fichier. Elle permet de determiner la taille du fichier ou du tampon magique. Par exemple, les entrees magiques : -0 offset x ce fichier a une taille de %lld octets -0 offset <=100 doit etre superieur a 100 \ octets et ne fait que %lld octal Une chaine representant un nombre octal. A des fins de compatibilite avec le << Single UNIX Standard >>, les specificateurs de type dC et d1 sont equivalents a byte, les specificateurs uC et u1 sont equivalents a ubyte, les specificateurs dS et d2 sont equivalents a short, les specificateurs uS et u2 sont equivalents a ushort, les specificateurs dI, dL et d4 sont equivalents a long, les specificateurs uI, uL et u4 sont equivalents a ulong, le specificateur d8 est equivalent a quad, le specificateur u8 est equivalent a uquad et le specificateur s est equivalent a string. En outre, le specificateur dQ est equivalent a quad et le specificateur uQ est equivalent a uquad. Chaque motif magique du niveau le plus haut (voir ci-apres pour une explication a propos des niveaux) est classe comme de type texte ou binaire en fonction des types utilises. Les types "regex" et "search" sont classes comme tests de type texte, a moins que des caracteres non imprimables ne soient utilises dans le motif. Tous les autres tests sont classes comme binaires. Un motif du niveau le plus haut est considere comme texte de test lorsque tous ses motifs sont de type texte ; dans le cas contraire, il est considere comme motif binaire. Lors de la recherche du type d'un fichier, les motifs binaires sont essayes en premier ; si aucune correspondance n'est trouvee et si le contenu du fichier ressemble a du texte, son encodage est determine et les motifs de type texte sont recherches. Les types numeriques peuvent etre suivis de & et d'une valeur numerique pour indiquer que la valeur doit etre combinee a l'aide d'un ET logique avec la valeur numerique avant d'effectuer toute comparaison. Prefixer le type avec un u indique que les comparaisons ordonnees doivent etre non signees. test La valeur a comparer avec la valeur issue du fichier. Si le type est numerique, cette valeur est specifiee au format C ; si le type est une chaine, cette valeur est specifiee comme une chaine C avec les echappements habituellement permis (par exemple \n pour une nouvelle ligne). Les valeurs numeriques peuvent etre prefixees d'un caractere indiquant l'operation a executer. Il peut s'agir de = pour indiquer que la valeur issue du fichier doit etre egale a la valeur specifiee, < pour indiquer que la valeur issue du fichier doit etre inferieure a la valeur specifiee, > pour indiquer que la valeur issue du fichier doit etre superieure a la valeur specifiee, & pour indiquer que tous les bits de la valeur issue du fichier qui correspondent aux bits a 1 de la valeur specifiee doivent etre a 1, ^ pour indiquer que tous les bits de la valeur issue du fichier qui correspondent aux bits a 1 de la valeur specifiee doivent etre a 0, ~ pour indiquer que la valeur qui suit doit etre inversee ou x pour indiquer que toute valeur correspondra.Si aucun caractere n'est indique, il est suppose etre =. Les operateurs &, ^ et ~ ne fonctionnent pas avec les nombres en virgule flottante et ceux en double precision. L'operateur ! specifie que la ligne correspond si le test echoue. Les valeurs numeriques sont specifiees au format C ; par exemple, 13 est decimal, 013 est octal et 0x13 est hexadecimal. Les types date ne font pas l'objet d'operations numeriques ; a la place, la valeur numerique est interpretee comme un decalage. Pour les valeurs de type chaine, la chaine du fichier doit correspondre a la chaine specifiee. Les operateurs =, < et > (mais pas &) peuvent s'appliquer aux chaines. La taille utilisee pour la recherche de correspondance est celle de l'argument chaine dans le fichier magique. Cela signifie qu'une ligne peut correspondre a toute chaine non vide (en general utilisee ensuite pour afficher la chaine) avec >\0 (car toute chaine non vide est superieure a la chaine vide). Les dates sont traitees comme des valeurs numeriques selon leur representation interne. Le test special x renvoie toujours vrai. message Le message a afficher si la correspondance est positive. Si la chaine contient une specification de format de type printf(3), la valeur issue du fichier (a laquelle aura ete applique tout masque specifie) est affichee en utilisant le message comme chaine de format. Si la chaine commence par << \b >>, le message affiche est le reste de la chaine sans espace ajoutee avant : plusieurs correspondances sont normalement separees par des espaces uniques. Les type et createur APPLE de caracteres APPLE 4+4 peuvent etre specifies sous la forme : !:apple CREATYPE Une liste d'extensions de nom de fichier couramment rencontrees separees par des barres obliques peut etre specifiee sous la forme : !:ext ext[/ext...] autrement dit, la chaine litterale << !:ext >> suivie d'une liste d'extensions couramment rencontrees separees par des barres obliques ; par exemple, pour les images JPEG : !:ext jpeg/jpg/jpe/jfif Un type MIME est indique sur une ligne separee qui doit etre la premiere ligne ni vide, ni de commentaire apres la ligne magique qui identifie le type de fichier, et possede le format suivant : !:mime TYPE_MIME autrement dit, la chaine litterale << !:mime >> suivie du type MIME. Une force peut etre indiquee sur une ligne separee qui fait reference a la description magique actuelle et utilise le format suivant : !:strength OP VALEUR L'operateur OP peut etre +, -, * ou / et VALUE est une constante entre 0 et 255. Cette constante est appliquee a la force magique par defaut actuellement calculee en utilisant l'operateur specifie. Certains formats de fichier contiennent des informations supplementaires qui doivent etre affichees avec le type de fichier ou qui impliquent des tests supplementaires pour determiner le veritable type du fichier. Ces tests supplementaires sont introduits par un ou plusieurs caracteres > qui precedent le decalage. Le nombre de > sur la ligne indique le niveau du test ; une ligne sans > au debut est consideree comme etant de niveau 0. Les tests sont organises selon une hierarchie arborescente : si le test sur une ligne de niveau n reussit, tous les tests suivants de niveau n+1 sont effectues, et les messages affiches si les tests reussissent, jusqu'a 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 facon suivante : 0 string MZ >0x18 uleshort <0x40 MS-DOS executable >0x18 uleshort >0x3f extended PC executable (e.g., MS Windows) Les decalages ne doivent pas forcement etre constants, mais peuvent aussi etre lus depuis le fichier en cours d'examen. Si le premier caractere suivant le dernier > est un (, la chaine apres la parenthese est interpretee comme un decalage indirect. Cela signifie que le nombre apres la parenthese est utilise comme decalage dans le fichier. Les decalages indirects sont de la forme : (x [[.,][bBcCeEfFgGhHiIlmosSqQ]][+-][ y ]). La valeur de x est utilisee comme decalage dans le fichier. En fonction du specificateur de type [bBcCeEfFgGhHiIlLmsSqQ], la valeur lue a ce decalage sera un octet, un id3 length, un short ou un long. La valeur est consideree comme signee si << , >> est specifie ou comme non signee si << . >> est specifie. Les types en capitale interpretent le nombre comme une valeur gros-boutiste, alors que les types en minuscule l'interpretent comme une valeur petit-boutiste ; le type m interprete le nombre comme une valeur mi-boutiste (PDP-11). La valeur de y est ajoutee a ce nombre et le resultat est utilise comme decalage dans le fichier. Si aucun type n'est specifie, le type par defaut est long. Les types reconnus sont les suivants : Type Mnemonique 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 maniere, les structures de longueur variable peuvent etre examinees : # Les executables MS Windows sont aussi des executables MS-DOS valables 0 string MZ >0x18 uleshort <0x40 MZ executable (MS-DOS) # sauter tout le bloc suivant si ce n'est pas un executable etendu >0x18 uleshort >0x3f >>(0x3c.l) string PE\0\0 PE executable (MS-Windows) >>(0x3c.l) string LX\0\0 LX executable (OS/2) Cette strategie d'examen a un inconvenient : vous devez vous assurer que quelque chose sera finalement affiche, 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 precedent). Si ce decalage indirect ne peut pas etre utilise directement, des operations simples sont possibles : ajouter [+-*/%&|^]nombre a la fin du contenu des parentheses permet de modifier la valeur lue depuis le fichier avant qu'elle ne soit utilisee comme decalage : # Les executables MS Windows sont aussi des executables MS-DOS valables 0 string MZ # parfois, la valeur a 0x18 est inferieure a celle a 0x40, mais il y a # encore un executable etendu simplement ajoute a 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 decalage exact n'est pas connu, car il depend de la taille et de la position des champs precedents (quand une indirection a ete utilisee auparavant). Il est possible de specifier un decalage relatif a la fin du dernier champ de plus haut niveau en prefixant le decalage avec << & >> : 0 string MZ >0x18 uleshort >0x3f >>(0x3c.l) string PE\0\0 PE executable (MS-Windows) # le type de CPU suit immediatement la signature PE >>>&0 leshort 0x14c for Intel 80386 >>>&0 leshort 0x8664 for x86-64 >>>&0 leshort 0x184 for DEC Alpha Les decalages indirects et relatifs peuvent etre combines : 0 string MZ >0x18 uleshort <0x40 >>(4.s*512) leshort !0x014c MZ executable (MS-DOS) # si ce n'est pas COFF, revenir en arriere de 512 octets et ajouter # le decalage pris depuis l'octet 2/3, ce qui constitue une autre # maniere de trouver le debut de l'executable etendu >>>&(2.s-514) string LE LE executable (MS Windows VxD driver) Ou l'autre maniere : 0 string MZ >0x18 uleshort >0x3f >>(0x3c.l) string LE\0\0 LE executable (MS-Windows) # au decalage 0x80 (-4, car les decalages relatifs commencent a la fin # de la correspondance de plus haut niveau) dans l'en-tete LE, on trouve # le decalage absolu vers la zone de donnees ou nous recherchons # une signature specifique >>>(&0x7c.l+0x26) string UPX \b, UPX compressed Ou meme les deux ! 0 string MZ >0x18 uleshort >0x3f >>(0x3c.l) string LE\0\0 LE executable (MS-Windows) # au decalage 0x58 dans l'en-tete LE, on trouve le decalage relatif # vers une zone de donnees ou nous recherchons une signature specifique >>>&(&0x54.l-3) string UNACE \b, ACE self-extracting archive Si vous avez affaire a des paires decalage/taille dans votre fichier, meme la seconde valeur dans une expression entre parentheses peut etre obtenue depuis le fichier lui-meme en utilisant un autre jeu de parentheses. Notez que ce decalage indirect supplementaire est toujours relatif au debut du decalage indirect principal. 0 string MZ >0x18 uleshort >0x3f >>(0x3c.l) string PE\0\0 PE executable (MS-Windows) # recherche de la section PE appelee ".idata"... >>>&0xf4 search/0x140 .idata # ... et aller a la fin de celle-ci calcule a partir de debut+taille ; # ceux-la sont situes 14 et 10 octets apres le nom de section >>>>(&0xe.l+(-4)) string PK\3\4 \b, ZIP self-extracting archive Si vous avez une liste de valeurs connues a un niveau de continuation particulier, et si vous voulez prevoir une liste de cas avec defaut 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 defaut >>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 dependent pas de la taille des types de donnees C short et long sur la plateforme, bien que la Single UNIX Specification stipule le contraire. Cependant, etant donne que OS X Mountain Lion a reussi la suite de validation de la Single UNIX Specification et fournit une version de file(1) dans laquelle ils ne dependent pas des tailles des types de donnees C et qui est compilee pour un environnement sur 64 bits dans lequel long est sur 8 octets au lieu de 4, la suite de validation ne verifie probablement pas si, par exemple, long fait reference a un item de la meme taille que le type de donnees 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 different pour indiquer plus clairement que ces types ont les tailles specifiees. TRADUCTION La traduction francaise de cette page de manuel a ete creee par Lucien Gentis Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3: https://www.gnu.org/licenses/gpl-3.0.html concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a debian-l10n-french@lists.debian.org Linux 6.19.10-arch1-1 27 novembre 2024 Linux 6.19.10-arch1-1