perror - Afficher un message d'erreur système
Bibliothèque C standard (
libc,
-lc)
#include <stdio.h>
void perror(const char *s);
#include <errno.h>
int errno; /* Not really declared this way; see errno(3) */
[[deprecated]] const char *const sys_errlist[];
[[deprecated]] int sys_nerr;
sys_errlist,
sys_nerr :
From glibc 2.19 to glibc 2.31:
_DEFAULT_SOURCE
glibc 2.19 and earlier:
_BSD_SOURCE
La fonction
perror() produit un message sur la sortie d'erreur standard
décrivant la dernière erreur rencontrée lors d'un appel
à une fonction système ou de bibliothèque.
First (if
s is not NULL and
*s is not a null byte ('\0')), the
argument string
s is printed, followed by a colon and a blank. Then an
error message corresponding to the current value of
errno and a
new-line.
Pour être la plus utile possible, la chaîne en argument doit
inclure le nom de la fonction dans laquelle l'erreur est survenue.
La liste globale d'erreurs
sys_errlist[] pouvant être
indexée par
errno peut être utilisée pour obtenir
le message d'erreur sans le saut de ligne. Le plus grand numéro de
message contenu dans cette table est
sys_nerr - 1. Soyez prudents lors
des accès directs à cette liste car de nouvelles valeurs
d’erreurs n'ont peut-être pas été ajoutées
dans
sys_errlist[]. L'utilisation de
sys_errlist[] est
maintenant obsolète, utilisez
strerror(2) à la place.
Quand un appel système échoue, il renvoie habituellement
-1, et place le code d'erreur dans
errno (les codes sont
décrits dans
<errno.h>). Beaucoup de fonctions de
bibliothèque se comportent également ainsi. La fonction
perror() permet de traduire les codes d'erreur en une forme humainement
lisible. Notez que
errno est indéfinie après un appel de
fonction système ou de bibliothèque réussi. Une telle
fonction peut modifier
errno même si elle réussit, ne
serait-ce que parce que des appels système internes peuvent
échouer. Ainsi, si un appel qui échoue n'est pas
immédiatement suivi par
perror, la valeur de
errno doit
être sauvegardée.
Since glibc 2.32, the declarations of
sys_errlist and
sys_nerr are
no longer exposed by
<stdio.h>.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
perror() |
Sécurité des threads |
MT-Safe race:stderr |
perror(),
errno: POSIX.1-2001, POSIX.1-2008, C99, 4.3BSD.
Les variables externes
sys_nerr et
sys_errlist proviennent de BSD
mais ne sont pas définies par POSIX.1.
Les variables externes
sys_nerr et
sys_errlist sont
définies par la glibc, mais dans
<stdio.h>.
err(3),
errno(3),
error(3),
strerror(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Frédéric Hantrais <
[email protected]> et Grégoire
Scano <
[email protected]>
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 à
[email protected]