본문 바로가기
C/C Library

clearerr

by memora 2024. 7. 27.

Index로 돌아가기

 

【기  능】 err상태정보를 클리어 한다.
 
 【소  속】 stdio.h 
   #include <stdio.h>
 
 【서  식】  
   void clearerr(FILE *fp);
 
 【설  명】  
   파일 포인터인 fp에 들어있는 에러 플래그 또는 종단 플래그를 클리어 한다.
   1) 파일을 쓰기 모드로 열고서 읽기를 하면(그 반대도) fp에 에러 플래그가 설정된다.
      이 에러 플래그는 래치 되는데 이 에러 플래그를 지워 주는것이 clearerr()이다.
   2)파일을 읽다가 마지막에 도달하면 fp에 종단 플래그가 설정된다. 
     이 종단 플래그를 지워 주는것이 clearerr()이다.
.
 
 【인  수】  
   FILE *fp : file pointer. 파일 정보(읽고 쓸 수 있는 위치)를 가지고 있는 핸들러 
 
 【리턴 값】
  없음
 
 【사용 예】
  #include <stdio.h>
  #include <stdlib.h>

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

        /* 쓰기 모드로 파일을 오픈한다 */
        if( (fp = fopen("test_data.txt", "w") ) == NULL ) {
                fprintf(stderr, "파일 오프 에러\n");
                exit(EXIT_FAILURE);
        }

        /* 파일을 읽는다 */
        c = fgetc(fp);
        putchar(c);

        if( ferror(fp) != 0 )
        {
                /* 에러 발생 */
                printf("파일 리드시 에러 발생.\n");

                /* 에러 플래그 또는 종단 플래그를 클리어 */
                clearerr(fp);
        }

        if( ferror(fp) == 0 )
        {
                printf("파일 에러가 삭제 되었다\n");
        }

        fclose(fp);

        return 0;
  }

  【결   과】


파일 리드시 에러 발생
파일 에러가 삭제 되었다

 

Index로 돌아가기

반응형

'C > C Library' 카테고리의 다른 글

rand  (0) 2024.07.29
fclose  (0) 2024.07.28
time  (0) 2024.07.25
mktime  (3) 2024.07.24
localtime  (3) 2024.07.23