.\" Copyright (C) 1993 David Metcalfe (david@prism.demon.co.uk) .\" and Copyright (C) 2005, 2014 Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sat Jul 24 18:05:30 1993 by Rik Faith .\" Modified Fri Feb 16 14:25:17 1996 by Andries Brouwer .\" Modified Sun Jul 21 20:55:44 1996 by Andries Brouwer .\" Modified Mon Oct 15 21:16:25 2001 by John Levon .\" Modified Tue Oct 16 00:04:43 2001 by Andries Brouwer .\" Modified Fri Jun 20 03:04:30 2003 by Andries Brouwer .\" 2005-12-13, mtk, Substantial rewrite of strerror_r() description .\" Addition of extra material on portability and standards. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH STRERROR 3 "18 mars 2014" "" "Manuel du programmeur Linux" .SH NOM strerror, strerror_r, strerror_l \- Obtenir le libellé d'un numéro d'erreur .SH SYNOPSIS .nf \fB#include \fP .sp \fBchar *strerror(int \fP\fIerrnum\fP\fB);\fP .sp \fBint strerror_r(int \fP\fIerrnum\fP\fB, char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB);\fP /* conforme XSI */ .sp \fBchar *strerror_r(int \fP\fIerrnum\fP\fB, char *\fP\fIbuf\fP\fB, size_t \fP\fIbuflen\fP\fB);\fP /* spécifique GNU */ \fBchar *strerror_l(int \fP\fIerrnum\fP\fB, locale_t \fP\fIlocale\fP\fB);\fP .fi .sp .in -4n Exigences de macros de test de fonctionnalités pour la glibc (consultez \fBfeature_test_macros\fP(7))\ : .in .ad l .sp \fBstrerror_r\fP(): .RS 4 La version compatible XSI est fournie si\ : .br (_POSIX_C_SOURCE\ >=\ 200112L || _XOPEN_SOURCE\ >=\ 600) && !\ _GNU_SOURCE .br Autrement, c'est la version GNU qui est fournie. .RE .ad .SH DESCRIPTION .\" La fonction \fBstrerror\fP() renvoie un pointeur vers une chaîne qui décrit le code d'erreur passé en argument \fIerrnum\fP, en utilisant éventuellement la catégorie \fBLC_MESSAGES\fP de la localisation pour sélectionner la langue appropriée (par exemple, si \fIerrnum\fP est \fBEINVAL\fP, la description renvoyée sera «\ Argument invalide\ »). Cette chaîne ne doit pas être modifiée par l'application, mais peut être écrasée par un appel ultérieur à \fBstrerror\fP() ou \fBstrerror_l\fP(). Aucune autre fonction de bibliothèque, y compris \fBperror\fP(3), ne modifie cette chaîne. .SS strerror_r() La fonction \fBstrerror_r\fP() est identique à \fBstrerror\fP() mais fonctionne correctement dans un environnement multithread. Cette fonction est disponible en deux versions\ : une version conforme XSI spécifiée dans POSIX.1\-2001 (disponible depuis la glibc\ 2.3.4, mais non compatible POSIX avant la glibc\ 2.13) et une version spécifique GNU (disponible depuis la glibc\ 2.0). La version compatible XSI est fournie par la macro de test mentionnée dans le \fBSYNOPSIS\fP, sinon la version spécifique GNU est fournie. Si aucune macro de test n'est définie explicitement, alors (depuis la glibc\ 2.4) \fB_POSIX_SOURCE\fP est définie par défaut avec la valeur 200112L, de telle sorte que la version compatible XSI de \fBstrerror_r\fP() est fournie par défaut. La version de \fBstrerror_r\fP() conforme XSI est préférée pour les applications portables. Elle renvoie la chaîne dans le tampon \fIbuf\fP de longueur \fIbuflen\fP fourni par l'appelant. .\" La version de \fBstrerror_r\fP() spécifique GNU renvoie un pointeur sur une chaîne contenant le message d'erreur. Cela peut être soit un pointeur vers une chaîne que la fonction stocke dans \fIbuf\fP, soit un pointeur vers une chaîne statique (immuable) (auquel cas \fIbuf\fP n'est pas utilisé). Si la fonction stocke une chaîne dans \fIbuf\fP, au plus \fIbuflen\fP octets sont stockés (la chaîne peut être tronquée si \fIbuflen\fP est trop petit et qu'\fIerrnum\fP est inconnu). La chaîne inclut toujours l'octet nul final («\ \e0\ »). .SS strerror_l() \fBstrerror_l\fP() est semblable à \fBstrerror\fP(), mais fait correspondre à \fIerrnum\fP un message d'erreur adapté à la localisation précisée par \fIlocale\fP. Le comportement de \fBstrerror_l\fP() n'est pas défini la la localisation \fIlocale\fP est l'objet de localisation spécial \fBLC_GLOBAL_LOCALE\fP ou si elle n'a pas la valeur d'une localisation valide. .SH "VALEUR RENVOYÉE" Les fonction \fBstrerror\fP(), \fBstrerror_l\fP() et la fonction GNU \fBstrerror_r\fP() renvoient la description correspondant au code transmis, ou un message «\ Unknown error nnn\ » si le numéro d'erreur n'existe pas. La fonction \fBstrerror_r\fP() conforme XSI renvoie 0 si elle réussit. En cas d'erreur, un numéro (positif) d'erreur est renvoyé (depuis la glibc\ 2.13), ou \-1 est renvoyé et \fIerrno\fP est définit pour indiquer l'erreur (pour les version de la glibc antérieures à 2.13). POSIX.1\-2001 et POSIX.1\-2008 exigent qu'un appel réussi de \fBstrerror\fP() ou \fBstrerror_l\fP() laisse \fIerrno\fP non modifié. Remarquez que, puisqu'aucune valeur de retour de fonction n'est réservée pour indiquer d'erreur, une application qui désire vérifier les erreurs devrait initialiser \fIerrno\fP à zéro avant l'appel, et vérifier \fIerrno\fP après l'appel. .SH ERREURS .TP \fBEINVAL\fP La valeur de \fIerrnum\fP n'est pas un code d'erreur valide. .TP \fBERANGE\fP Le tampon fourni n'est pas assez grand. .SH ATTRIBUTS .SS "Multithreading (voir pthreads(7))" La fonction \fBstrerror\fP() n'est pas sûre dans un contexte multithread. .LP .\" FIXME Need a thread-safety statement about strerror_l() La fonction \fBstrerror_r\fP() est sûre dans un contexte multithread. .SH VERSIONS La fonction \fBstrerror_l\fP() est apparue dans la glibc\ 2.6. .SH CONFORMITÉ \fBstrerror\fP() est spécifiée par POSIX.1\-2001, POSIX.1\-2008, C89 et C99. \fBstrerror_r\fP() est spécifiée par POSIX.1\-2001 et POSIX.1\-2008. \fBstrerror_l\fP() est spécifiée dans POSIX.1\-2008. La fonction \fBstrerror_r\fP() spécifique GNU n'est pas une extension standard. .\" e.g., Solaris 8, HP-UX 11 .\" e.g., FreeBSD 5.4, Tru64 5.1B POSIX.1\-2001 permet à \fBstrerror\fP() d'écrire \fIerrno\fP si l'appel rencontre une erreur mais ne spécifie pas quelle valeur devrait être retournée comme résultat de fonction dans l'éventualité d'une erreur. Sur certains systèmes, \fBstrerror\fP() renvoie NULL si le numéro d'erreur est inconnu. Sur d'autres, \fBstrerror\fP() renvoie une chaîne du style «\ Error nnn occurred\ » et écrit \fBEINVAL\fP dans \fIerrno\fP si le numéro d'erreur est inconnu. C99 et POSIX.1\-2008 exigent que la valeur renvoyée ne soit pas NULL. .SH "VOIR AUSSI" \fBerr\fP(3), \fBerrno\fP(3), \fBerror\fP(3), \fBperror\fP(3), \fBstrsignal\fP(3), \fBlocale\fP(7) .SH COLOPHON Cette page fait partie de la publication 3.65 du projet \fIman\-pages\fP 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/. .SH TRADUCTION Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a par l'équipe de traduction francophone au sein du projet perkamon . .PP Christophe Blaess (1996-2003), Alain Portal (2003-2006). Nicolas François et l'équipe francophone de traduction de Debian\ (2006-2009). .PP Veuillez signaler toute erreur de traduction en écrivant à ou par un rapport de bogue sur le paquet \fBmanpages\-fr\fR. .PP Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande «\ \fBman\ \-L C\fR \fI
\fR\ \fI\fR\ ».