Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       fmtmsg - Afficher des messages d'erreur formatés

SYNOPSIS

       #include <fmtmsg.h>

       int fmtmsg(long classification, const char *label,
                  int severity, const char *text,
                  const char *action, const char *tag);

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  label  identifie la source du message. La chaîne doit être composée en 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 text décrit la condition de l'erreur.

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

       Le paramètre tag est une référence à la documentation en ligne où l'on pourra trouver plus
       d'informations. Il devrait contenir la valeur label 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, MM_NULLTAG sont des synonymes de ((char *) 0), la chaîne vide,  et
       MM_NULLSEV est un synonyme de NO_SEV.

   Le paramètre classification
       Le paramètre classification est la somme de 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 micro-logicielle (« 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 « severity »
       Le paramètre severity 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. Utiliser addseverity(3) ou la variable
       d'environnement SEV_LEVEL  vous  permet  d'ajouter  plus  de  niveaux  et  d'afficher  des
       messages.

VALEUR RENVOYÉE

       La fonction peut retourner 4 valeurs :

       MM_OK       Tout c'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, non vide et que c'est une liste de
       mots clés valides 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 valides sont « label »,
       « severity », « text », « action » et « tag ».

       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

   Multithreading (voir pthreads(7))
       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(), addseverity(3), les variables d'environnement MSGVERB et SEV_LEVEL
       proviennent  de System V. La fonction fmtmsg() et la variable d'environnement MSGVERB sont
       décrites dans POSIX.1-2001.

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.

EXEMPLE

       #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,
                       "unknown mount option", "See mount(8).",
                       "util-linux:mount:017");
           switch (err) {
           case MM_OK:
               break;
           case MM_NOTOK:
               printf("Nothing printed\n");
               break;
           case MM_NOMSG:
               printf("Nothing printed to stderr\n");
               break;
           case MM_NOCON:
               printf("No console output\n");
               break;
           default:
               printf("Unknown error from fmtmsg()\n");
           }
           exit(EXIT_SUCCESS);
       }

       La sortie devrait être :

           util-linux:mount: ERROR: unknown mount option
           TO FIX: See mount(8). util-linux:mount:017

       et après

           MSGVERB=text:action; export MSGVERB

       la sortie devient :

           unknown mount option
           TO FIX: See mount(8).

VOIR AUSSI

       addseverity(3), perror(3)

COLOPHON

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

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <http://po4a.alioth.debian.org/>  par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Alain  Portal  <http://manpagesfr.free.fr/> (2004-2006).  Florentin  Duneau  et   l'équipe
       francophone de traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».

                                           21 juin 2013                                 FMTMSG(3)