Man Fmtmsg en français
fmtmsg(3) Manuel du programmeur Linux fmtmsg(3)
NOM
fmtmsg - Afficher des messages d'erreur formates
SYNOPSIS
#include
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 parametres sur le(s)
peripherique(s) specifie(s) par le parametre classification. Pour les
messages ecrits sur stderr, le format depend de la variable d'environ-
nement 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'information. Il devrait contenir la valeur label
et un numero d'identification unique.
Parametres factices
Chacun des parametres peut avoir une valeur factice. La valeur de
classification factice MM_NULLMC (0L) ne specifie aucune sortie, aussi,
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 parametre classification
Le parametre classification est la somme de valeurs decrivant 4 types
d'informations.
La premiere valeur definit le canal de sortie.
MM_PRINT Sortir sur stderr.
MM_CONSOLE Sortir sur la console du systeme.
MM_PRINT | MM_CONSOLE
Sortir 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 parametre 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 prises entre 0 et 4. Utiliser addseverity()
ou la variable d'environnement SEV_LEVEL vous permet d'ajouter d'autres
niveaux et messages a afficher.
ENVIRONNEMENT
La variable d'environnement MSGVERB ( volubilite 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 correspondantes 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'intro-
duire de nouveaux niveaux de gravite. Par defaut, seuls les cinqs
niveaux de gravite decrits precedemment sont disponibles. Toute autre
valeur numerique fera que 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
severity-keyword,level,printstring
alors fmtmsg() acceptera egalement les valeurs indiquees pour le niveau
(en plus des niveaux standards 0-4), et utilisera la chaine a afficher
(printstring) indiquee lorsqu'un tel niveau surviendra.
La partie severity-keyword n'est pas utilisee par fmtmsg() mais doit
etre presente. La partie level 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
severity de fmtmsg() pour selectionner cette classe. Il n'est pas
possible de surcharger les classes predefinies. La partie printstring
est la chaine qui sera affichee lorsqu'un message de cette classe est
traite par fmtmsg().
VALEURS RENVOYEES
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.
CONFORMITE
Les fonctions fmtmsg() et addseverity(), et les variables d'environ-
nement MSGVERB et SEV_LEVEL proviennent de Systeme V. La fonction
fmtmsg() et la variable d'environnement MSGVERB sont decrites dans la
specification POSIX.1-2001.
NOTES
Les pages de manuel System V et Unixware nous 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
#include
int main() {
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");
}
return 0;
}
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)
TRADUCTION
Ce document est une traduction realisee par Alain Portal le 4 juillet 2005 et revisee le 7 decembre 2006.
L'equipe de traduction a fait le maximum pour realiser une adaptation
francaise de qualite. La version anglaise la plus a jour de ce document
est toujours consultable via la commande : LANG=C man 3 fmtmsg .
N'hesitez pas a signaler a l'auteur ou au traducteur, selon le cas,
toute erreur dans cette page de manuel.
LDP 1er novembre 2003 fmtmsg(3)
|