Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       fmtmsg - Afficher des messages d'erreur formates

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 decrit par ses arguments sur le(s)
       peripherique(s) specifie(s) par le parametre classification.  Pour  les
       messages   ecrits   sur   stderr,  le  format  depend  de  la  variable
       d'environnement MSGVERB.

       Le parametre label identifie la source du message. La chaine doit  etre
       composee  en  deux  parties,  separees  par  le  caractere  deux-points
       << : >>, ou la premiere partie ne comporte pas plus de 10 caracteres et
       la seconde, pas plus de 14.

       Le parametre text decrit la condition de l'erreur.

       Le   parametre  action  decrit  les  etapes  possibles  pour  recuperer
       l'erreur. Si elle est affichee, elle sera prefixee par <<TO FIX: >>.

       Le parametre tag est une reference a la documentation en ligne ou  l'on
       pourra trouver plus d'informations. Il devrait contenir la valeur label
       et un numero d'identification unique.

   Param`etres factices
       Chacun des parametres peut avoir  une  valeur  factice.  La  valeur  de
       classification factice MM_NULLMC (0L) ne specifie aucune sortie, ainsi,
       rien n'est affiche. La valeur de severite factice NO_SEV  (0)  signifie
       qu'aucune  severite  n'est fournie. Les valeurs MM_NULLLBL, MM_NULLTXT,
       MM_NULLACT, MM_NULLTAG sont des synonymes de ((char *)  0),  la  chaine
       vide, et MM_NULLSEV est un synonyme de NO_SEV.

   Le param`etre classification
       Le  parametre  classification est la somme de valeurs decrivant 4 types
       d'informations.

       La premiere valeur definit le canal de sortie.

       MM_PRINT    Sortie sur stderr.

       MM_CONSOLE  Sortie sur la console du systeme.

       MM_PRINT | MM_CONSOLE
                   Sortie sur les deux.

       La deuxieme valeur est la source de l'erreur :

       MM_HARD     Une erreur materielle est survenue.

       MM_FIRM     Une erreur micro-logicielle (<< firmware >>) est survenue.

       MM_SOFT     Une erreur logicielle est survenue.

       La troisieme valeur encode le detecteur du probleme :

       MM_APPL     L'erreur a ete detectee par une application.

       MM_UTIL     L'erreur a ete detectee par un utilitaire.

       MM_OPSYS    L'erreur a ete detectee par le systeme d'exploitation.

       La quatrieme valeur indique la gravite de l'incident :

       MM_RECOVER  L'erreur est recuperable.

       MM_NRECOV   L'erreur n'est pas recuperable.

   Le param`etre << severity >>
       Le parametre severity peut prendre l'une des valeurs suivantes :

       MM_NOSEV    Aucune severite ne sera affichee.

       MM_HALT     Cette valeur est affichee en tant que HALT.

       MM_ERROR    Cette valeur est affichee en tant que ERROR.

       MM_WARNING  Cette valeur est affichee en tant que WARNING.

       MM_INFO     Cette valeur est affichee en tant que INFO.

       Les  valeurs  numeriques  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'EE

       La fonction peut retourner 4 valeurs :

       MM_OK       Tout c'est bien passe.

       MM_NOTOK    Echec complet.

       MM_NOMSG    Erreur lors de l'ecriture sur stderr.

       MM_NOCON    Erreur lors de l'ecriture sur la console.

ENVIRONNEMENT

       La variable d'environnement MSGVERB (<< verbosite du  message >>)  peut
       etre utilisee 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  definie,  non  vide  et que c'est une liste de mots cles
       valides separes par le caractere deux-points,  seules  les  parties  du
       message  correspondant  a ces mots cles seront affichees. Les mots-cles
       valides sont << label >>, << severity >>, << text >>,  << action >>  et
       << tag >>.

       La   variable   d'environnement   SEV_LEVEL  peut  etre  utilisee  afin
       d'introduire de nouveaux niveaux de severite.  Par  defaut,  seuls  les
       cinq  niveaux  de severite decrits precedemment sont disponibles. Toute
       autre valeur numerique 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 a fmtmsg(), ou
       chaque description est de la forme

              severite, niveau, chaine

       alors fmtmsg() acceptera egalement les valeurs indiquees pour le niveau
       (en  plus des niveaux standard [0, 4]), et utilisera la chaine indiquee
       lorsqu'un tel niveau surviendra.

       La partie << severite >> n'est pas utilisee par fmtmsg() mais elle doit
       etre   presente.   La   partie   << niveau >>   est  la  representation
       alphabetique d'un nombre. La  valeur  numerique  doit  etre  un  nombre
       strictement  superieur  a  4.  Cette  valeur doit etre utilisee dans le
       parametre << severite >> de fmtmsg() pour selectionner cette classe. Il
       n'est  pas  possible  de  surcharger les classes predefinies. La partie
       << chaine >> est la chaine qui sera affichee lorsqu'un message de cette
       classe est traite par fmtmsg().

VERSIONS

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

CONFORMIT'E

       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 decrites dans POSIX.1-2001.

NOTES

       Les  pages  de manuel System V et Unixware disent que ces fonctions ont
       ete remplacees par << pfmt() et addsev() >> ou par << pfmt(),  vpfmt(),
       lfmt(), et vlfmt() >>, et seront supprimees 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 etre :

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

       et apres

           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.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

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

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

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

                                 14 juin 2008                        FMTMSG(3)