Función de biblioteca C -clearerr()
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);
}
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 时发生错误Otras extensiones