NOMBRE¶
perror - muestra un mensaje correspondiente a un error del sistema
SINOPSIS¶
#include <stdio.h>
void perror(const char *s);
#include <errno.h>
const char *sys_errlist[];
int sys_nerr;
DESCRIPCIÓN¶
La rutina
perror() produce un mensaje que va a la salida estándar
de errores, describiendo el último error encontrado durante una llamada
al sistema o a ciertas funciones de biblioteca. Primero (si
s es
distinto de NULL y *
s no es NUL) se imprime la cadena
s pasada
como argumento, seguida de un signo de dos puntos y un espacio en blanco.
Después se imprime el mensaje y un salto de línea.
Para ser de más utilidad, la cadena de caracteres pasada como argumento
debería incluir el nombre de la función que incurrió en
el error. El código del error se toma de la variable externa
errno, que toma un valor cuando ocurre un error pero no es puesta a
cero en una llamada no errónea.
Puede utilizarse la lista global de errores
sys_errlist[]
,
indexada por
errno, para obtener el mensaje del error sin el salto de
línea. El número más alto de mensaje proporcionado en la
tabla es
sys_nerr -1. Tenga cuidado cuando acceda directamente a esta
lista porque puede que no se hayan añadido aún nuevos valores de
error a
sys_errlist[].
Cuando una llamada al sistema falla, normalmente devuelve -1 y pone en la
variable
errno un valor que describe qué fue mal. (Estos valores
pueden encontrarse en
<errno.h>.) Muchas funciones de biblioteca
también hacen esto. La función
perror() sirve para
traducir este código de error a una forma que los humanos puedan
entender. Observe que
errno tiene un valor sin definir tras una llamada
exitosa: esta llamada podría muy bien cambiar incluso el valor de esta
variable, a pesar de haber acabado bien, por ejemplo porque internamente
empleara alguna otra función de biblioteca que hubiera fallado.
Así, si una llamada fallida no es seguida inmediatamente por una
llamada a
perror, el valor de
errno debe guardarse.
C ANSI, BSD 4.3, POSIX, X/OPEN
VÉASE TAMBIÉN¶
strerror(3)