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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   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)