[C]파일입출력 함수(3)[스트림 표시자]


이 포스트는 스트림 표시자에 관한 내용입니다.


6️⃣ 스트림 표시자

< 스트림의 3가지 표시자 >

  1. EOF 표시자
  2. 오류 표시자
  3. 파일 위치 표시자

스트림을 읽거나 쓸 때 EOF를 만나면 그 스트림의 EOF 표시자(indicator)가 세팅됩니다.
그 외의 이유로 실패하면 오류표시자(error indicator)를 세팅합니다.

< 표시자관련함수(1): rewind함수 >

void rewind(FILE *stream);
  • 파일 위치 표시자를 시작 위치으로 돌리는 함수입니다.

< 표시자관련함수(2): fseek함수 >

int fseek(FILE *stream, long offset, int origin);
  • 파일 위치 표시자를 origin으로부터 offset만큼 이동합니다.
  • 위치 이동에 성공하면 0을 반환 실패시 0이 아닌 수를 반환합니다.
  • origin에는 다음과 같이 세 종류(메크로)가 있습니다.
origin설명
SEEK_SET파일의 시작
SEEK_CUR현재 파일 위치
SEEK_END파일의 끝



< 표시자관련함수(3): ftell함수 >

long ftell(FILE *stream);
  • 파일 위치 표시자의 현재 위치를 알려주는 함수입니다.
  • 실패하면 -1을 반환합니다.
  • 바이너리(이진)모드로 열었을 때는 몇바이트 떨어져 있는지 알려줍니다.
  • 텍스트 모드로 열었을 때는 어떤 값을 반환할지 정해져 있지 않으나 유효한 값을 반환합니다.

< 표시자관련함수(4): feof함수 >

int feof(FILE* stream);
  • EOF표시자를 검사하는 함수입니다.
  • EOF표시자가 설정되어 있다면 0이 아닌값을, 설정되어 있지않다면 0을 반환합니다.

< 표시자관련함수(5): ferror함수 >

int ferror(FILE *stream);
  • 오류 표시자를 검사하는 함수입니다.
  • 오류표시자가 설정되어 있다면 0이 아닌값을, 설정되어 있지않다면 0을 반환합니다.

< 표시자관련함수(6): clearerr함수 >

void clearerr(FILE *stream)
  • EOF표시자오류 표시자가 잘 안 지워져서 다음에 읽거나 쓸 때 계속 실패할 수 있습니다.
  • 그렇기 때문에 그러한 오류를 지워주는 역할를 하는 것이 clearerr함수입니다.



이전포스트 > [C]파일입출력 함수(2)[fread, fwrite]

다음포스트 > [C]파일입출력 함수(4)[오류]





© 2021.02. by kirim

Powered by kkrim