Provided by: manpages-fr-dev_4.13-4_all bug

NOM

       fmtmsg - Afficher des messages d'erreur formatés

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().

VERSIONS

       fmtmsg() est fournie par la glibc depuis la version 2.1.

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 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.

CONFORMITÉ

       Les fonctions fmtmsg() et addseverity(3) ainsi que les variables  d'environnement  MSGVERB  et  SEV_LEVEL
       proviennent de System V.

       La   fonction  fmtmsg()  et  la  variable  d'environnement  MSGVERB  sont  conformes  à  POSIX.1-2001  et
       POSIX.1-2008.

NOTES

       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 <stdio.h>
       #include <stdlib.h>
       #include <fmtmsg.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)

COLOPHON

       Cette page fait partie de la publication 5.10 du projet man-pages Linux. Une description du projet et des
       instructions  pour  signaler  des  anomalies et la dernière version de cette page peuvent être trouvées à
       l'adresse https://www.kernel.org/doc/man-pages/.

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.

                                                   9 juin 2020                                         FMTMSG(3)