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)