Hàm clearerr() trong C

Hàm void clearerr(FILE *stream) trong Thư viện C xóa end-of-file và error indicator cho Stream đã cho.

Khai báo hàm clearerr() trong C

Dưới đây là phần khai báo cho hàm clearerr() trong C:

void clearerr(FILE *stream)

Tham số

stream − Đây là con trỏ tới một đối tượng FILE mà nhận diện Stream.

Trả về giá trị

Hàm này nên thất bại và không thiết lập biến ngoại vi errno nhưng trong trường hợp nó phát hiện rằng các tham số của nó không là một stream hợp lệ, nó phải trả về -1 và thiết lập errno thành EBADF.

Ví dụ

Chương trình C sau minh họa cách sử dụng của hàm clearerr() trong C:

#include <stdio.h>

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

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

   c = fgetc(fp);
   if( ferror(fp) )
   {
      printf("Da xay ra loi trong khi doc baitapc.txt\n");
   }
   clearerr(fp);
   
   if( ferror(fp) )
   {
      printf("Da xay ra loi trong khi doc baitapc.txt\n");
   }
   fclose(fp);

   return(0);
}

Giả sử chúng ta có một text file có tên là baitapc.txt, là một file trống. Biên dịch và chạy chương trình này sẽ cho kết quả như sau. Bởi vì chúng ta cố gắng đọc một file mà đã mở trong chế độ chỉ ghi (write only).