Man page - fmtmsg(3)

Packages contains this manual

Available languages:

en fr ja ru

Manual

fmtmsg

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
ParamĂštres factices
Le paramĂštre classification
Le paramÚtre sévérité
VALEUR RENVOYÉE
ENVIRONNEMENT
ATTRIBUTS
STANDARDS
HISTORIQUE
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

fmtmsg - Afficher des messages d’erreur formatĂ©s

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

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 ().

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3884640-1.png

Avant la 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.

STANDARDS

fmtmsg ()
MSGVERB

POSIX.1-2008.

HISTORIQUE

fmtmsg ()

System V. POSIX.1-2001 and POSIX.1-2008. glibc 2.1.

MSGVERB

System V. POSIX.1-2001 and POSIX.1-2008.

SEV_LEVEL

System V.

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 <fmtmsg.h>
#include <stdio.h>
#include <stdlib.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)

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 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 .