Provided by: manpages-es_1.55-10_all bug

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.

CONFORME A

       C ANSI, BSD 4.3, POSIX, X/OPEN

VÉASE TAMBIÉN

       strerror(3)