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;
}