Función de biblioteca C -clearerr()

C 标准库 - <stdio.h>Biblioteca estándar de C - <stdio.h>

Descripción

Función de biblioteca Cvoid clearerr(FILE *stream)Borra los indicadores de fin de archivo y de error del flujo dado.

Declaración

A continuación se muestra la declaración de la función clearerr().

void clearerr(FILE *stream)

Parámetros

  • stream-- Es un puntero a un objeto FILE que identifica el flujo.

Valor de retorno

Esta función no falla y no establece la variable externa errno, pero si detecta que su argumento no es un flujo válido, devuelve -1 y establece errno como EBADF.

Ejemplo

El siguiente ejemplo demuestra el uso de la función clearerr().

Ejemplo

#include <stdio.h>

int main()
{
   FILE *fp;
   char c;

   fp = fopen("file.txt", "w");

   c = fgetc(fp);
   if( ferror(fp) )
   {
      printf("Error al leer el archivo: file.txt\n");
   }
   clearerr(fp);
   if( ferror(fp) )
   {
      printf("Error al leer el archivo: file.txt\n");
   }
   fclose(fp);

   return(0);
}

Supongamos que tenemos un archivo de textofile.txtque es un archivo vacío. Compilemos y ejecutemos el programa anterior, ya que intentamos leer un archivo abierto en modo de solo escritura; esto producirá el siguiente resultado.

读取文件:file.txt 时发生错误

C 标准库 - <stdio.h>Biblioteca estándar de C - <stdio.h>

Otras extensiones