Provided by: manpages-fr-dev_4.27.0-1_all bug

NOM

       fmtmsg - Afficher des messages d'erreur formatés

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <fmtmsg.h>

       int fmtmsg(long classification, const char *étiquette,
                  int sévérité, const char *texte,
                  const char *action, const char *ancre);

DESCRIPTION

       Cette  fonction  affiche un message décrit par ses arguments sur le(s) périphérique(s) spécifié(s) par le
       paramètre classification. Pour  les  messages  écrits  sur  stderr,  le  format  dépend  de  la  variable
       d'environnement MSGVERB.

       Le  paramètre  étiquette  identifie  la  source  du message. La chaîne doit être composée de deux parties
       séparées par le caractère deux-points « : », où la première partie ne comporte pas plus de 10  caractères
       et la seconde, pas plus de 14.

       Le paramètre texte décrit la condition de l'erreur.

       Le paramètre action décrit les étapes possibles pour échapper à l'erreur. Si elle est affichée, elle sera
       préfixée par «TO FIX: ».

       Le  paramètre  ancre  est  une  référence  à  la  documentation  en  ligne  où  l'on  pourra trouver plus
       d'informations. Il devrait contenir la valeur étiquette et un numéro d'identification unique.

   Paramètres factices
       Chacun des paramètres peut avoir une valeur factice. La valeur de classification factice  MM_NULLMC  (0L)
       ne  spécifie  aucune sortie, ainsi, rien n'est affiché. La valeur de sévérité factice NO_SEV (0) signifie
       qu'aucune sévérité n'est fournie. Les valeurs MM_NULLLBL, MM_NULLTXT, MM_NULLACT et MM_NULLTAG  sont  des
       synonymes de ((char *) 0), la chaîne vide et MM_NULLSEV sont un synonyme de NO_SEV.

   Le paramètre classification
       Le paramètre classification est la somme des valeurs décrivant 4 types d'informations.

       La première valeur définit le canal de sortie.

       MM_PRINT    Sortie sur stderr.

       MM_CONSOLE  Sortie sur la console du système.

       MM_PRINT | MM_CONSOLE
                   Sortie sur les deux.

       La deuxième valeur est la source de l'erreur :

       MM_HARD     Une erreur matérielle est survenue.

       MM_FIRM     Une erreur de micrologiciel (« firmware ») est survenue.

       MM_SOFT     Une erreur logicielle est survenue.

       La troisième valeur encode le détecteur du problème :

       MM_APPL     L'erreur a été détectée par une application.

       MM_UTIL     L'erreur a été détectée par un utilitaire.

       MM_OPSYS    L'erreur a été détectée par le système d'exploitation.

       La quatrième valeur indique la gravité de l'incident :

       MM_RECOVER  L'erreur est récupérable.

       MM_NRECOV   L'erreur n'est pas récupérable.

   Le paramètre sévérité
       Le paramètre sévérité peut prendre l'une des valeurs suivantes :

       MM_NOSEV    Aucune sévérité ne sera affichée.

       MM_HALT     Cette valeur est affichée en tant que HALT.

       MM_ERROR    Cette valeur est affichée en tant que ERROR.

       MM_WARNING  Cette valeur est affichée en tant que WARNING.

       MM_INFO     Cette valeur est affichée en tant que INFO.

       Les  valeurs  numériques  sont  comprises entre 0 et 4. L'utilisation de addseverity(3) ou de la variable
       d'environnement SEV_LEVEL vous permet d'ajouter plus de niveaux et d'afficher plus de messages.

VALEUR RENVOYÉE

       La fonction peut retourner quatre valeurs :

       MM_OK       Tout s'est bien passé.

       MM_NOTOK    Échec complet.

       MM_NOMSG    Erreur lors de l'écriture sur stderr.

       MM_NOCON    Erreur lors de l'écriture sur la console.

ENVIRONNEMENT

       La variable d'environnement MSGVERB (« verbosité du message ») peut  être  utilisée  pour  supprimer  des
       parties  de la sortie vers stderr (cela n'a pas d'influence sur la sortie vers la console). Lorsque cette
       variable est définie, qu'elle est non vide et qu’elle est une liste de mots clés autorisés séparés par le
       caractère deux-points, seules les parties du message correspondant à ces mots clés seront affichées.  Les
       mots-clés  autorisés  sont  « label »  pour  l'étiquette, « severity » pour la sévérité, « text » pour le
       texte, « action » et « tag » pour l'ancre.

       La variable d'environnement SEV_LEVEL peut  être  utilisée  afin  d'introduire  de  nouveaux  niveaux  de
       sévérité.  Par  défaut,  seuls  les cinq niveaux de sévérité décrits précédemment sont disponibles. Toute
       autre valeur numérique fera que la  fonction  fmtmsg()  n'affichera  rien.  Si  l'utilisateur  positionne
       SEV_LEVEL avec un format comme

              SEV_LEVEL=[description[:description[:...]]]

       dans l'environnement du processus avant le premier appel à fmtmsg() où chaque description est de la forme

              sévérité, niveau, chaîne

       alors  fmtmsg()  acceptera  également  les valeurs indiquées pour le niveau (en plus des niveaux standard
       0-4), et utilisera la chaîne indiquée lorsqu'un tel niveau surviendra.

       La partie « sévérité » n'est pas utilisée par fmtmsg() mais elle doit être présente. La partie « niveau »
       est la représentation alphabétique d'un nombre. La valeur  numérique  doit  être  un  nombre  strictement
       supérieur  à 4.  Cette  valeur  doit  être  utilisée  dans  le  paramètre  « sévérité »  de fmtmsg() pour
       sélectionner cette classe. Il n'est pas  possible  de  surcharger  les  classes  prédéfinies.  La  partie
       « chaîne » est la chaîne qui sera affichée lorsqu'un message de cette classe est traité par fmtmsg().

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).
       ┌───────────┬──────────────────────┬────────────────────────────────────────────────────────────────────┐
       │ InterfaceAttributValeur                                                             │
       ├───────────┼──────────────────────┼────────────────────────────────────────────────────────────────────┤
       │ fmtmsg()  │ Sécurité des threads │ glibc >= 2.16: MT-Safe; glibc < 2.16: MT-Unsafe                    │
       └───────────┴──────────────────────┴────────────────────────────────────────────────────────────────────┘

       Avant  la  glibc 2.16, la fonction fmtmsg() utilisait une variable statique non protégée, et n’était donc
       pas sûre dans un contexte multithread.

       Depuis glibc 2.16, la fonction fmtmsg() utilise un verrou de protection de  la  variable  statique,  donc
       elle est sûre dans un contexte multithread.

STANDARDS

       fmtmsg()
       MSGVERB
              POSIX.1-2008.

HISTORIQUE

       fmtmsg()
              System V. POSIX.1-2001 and POSIX.1-2008. glibc 2.1.

       MSGVERB
              System V. POSIX.1-2001 and POSIX.1-2008.

       SEV_LEVEL
              System V.

       Les  pages  de  manuel System V et UnixWare disent que ces fonctions ont été remplacées par « pfmt() » et
       « addsev() » ou par « pfmt() », « vpfmt() », « lfmt() » et « vlfmt() » et seront supprimées par la suite.

EXEMPLES

       #include <fmtmsg.h>
       #include <stdio.h>
       #include <stdlib.h>

       int
       main(void)
       {
           long class = MM_PRINT | MM_SOFT | MM_OPSYS | MM_RECOVER;
           int err;

           err = fmtmsg(class, "util-linux : mount", MM_ERROR,
                        "option de montage inconnue", "Consultez mount(8).",
                        "util-linux : mount : 017");
           switch (err) {
           case MM_OK:
               break;
           case MM_NOTOK:
               printf("Rien à afficher\n");
               break;
           case MM_NOMSG:
               printf("Rien à afficher sur stderr\n");
               break;
           case MM_NOCON:
               printf("Pas de sortie sur la console\n");
               break;
           default:
               printf("Erreur inconnue de fmtmsg()\n");
           }
           exit(EXIT_SUCCESS);
       }

       La sortie devrait être :

           util-linux : mount : ERROR : option de montage inconnue
           TO FIX : consultez mount(8). util-linux : mount : 017

       et après

           MSGVERB=text:action; export MSGVERB

       la sortie devient :

           option de montage inconnue
           TO FIX : consultez mount(8).

VOIR AUSSI

       addseverity(3), perror(3)

TRADUCTION

       La  traduction  française   de   cette   page   de   manuel   a   été   créée   par   Christophe   Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>, François Micaux, Alain Portal  <aportal@univ-montp2.fr>,  Jean-Philippe  Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,     Thomas     Huriaux      <thomas.huriaux@gmail.com>,      Nicolas      François
       <nicolas.francois@centraliens.net>,     Florentin     Duneau    <fduneau@gmail.com>,    Simon    Paillard
       <simon.paillard@resel.enst-bretagne.fr>,    Denis    Barbier    <barbier@debian.org>,    David     Prévot
       <david@tilapin.org>, Frédéric Hantrais <fhantrais@gmail.com> et Grégoire Scano <gregoire.scano@malloc.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.

Pages du manuel de Linux 6.9.1                    15 juin 2024                                         fmtmsg(3)