Función perror ANSI C

int perror(char *cadena);

La función perror transforma el número de error en la expresión entera de errno a un mensaje de error. Escribe una secuencia de caracteres al stream estándar de errores, esto es: primero (si cadena no es un puntero nulo y el carácter apuntado por cadena no es el carácter nulo), la cadena apuntada por cadena seguido de dos puntos (:) y un espacio; entonces un mensaje de errores apropiado seguido por un carácter de línea nueva. El contenido de los mensajes de errores es el mismo que aquello retornado por la función strerror con el argumento errno, que están definidos según la implementación.

Valor de retorno:

La función perror no retorna ningún valor.

Ejemplo:

#include <stdio.h>

int main( void )
{
   FILE *fichero;
   char nombre[13]="noexiste.dat", error[81];

   fichero = fopen( nombre, "r" );
   perror( error );
   printf( "Fichero: %s -> ", nombre );
   if( fichero )
      printf( "existe (ABIERTO)\n" );
   else
   {
      printf( "Error (NO ABIERTO)\n" );
      puts( error );
      return 1;
   }

   while( !feof(fichero) )
   {
      fgetc( fichero );
      tamanyo++;
   }
   printf( "El fichero \'%s\' contiene %d caracteres.\n", nombre, tamanyo );

   if( !fclose(fichero) )
      printf( "Fichero cerrado\n" );
   else
   {
      perror( error );
      printf( "Error: fichero NO CERRADO\n" );
      puts( error );
      return 1;
   }

   return 0;
}


suministrado por FreeFind
Valid HTML 4.0! Valid CSS!

Comentarios de los usuarios (2)

Max
2013-11-25 22:25:59

Buenas,

primero de todo,

enhorabuena por la web, es genial.

Comentar que en el articulo Función perror ANSI C, hay una pequeña errata, y es que no está declarada la variable tamanyo, con el consiguiente error de compilación.

Sin más, un saludo.

Maxpowe.

Steven R. Davidson
2013-11-25 22:41:52

Hola Max,

Tienes razón. Intentaremos corregirlo en cuanto podamos.

Gracias.

Steven