본문 바로가기
컴퓨터 공학/C, C++

[ C ] 파일 입출력 이해하기5_파일 위치 서식자란? fseek, ftell 함수

by hahehohoo 2020. 7. 25.
반응형

파일 위치 서식자란? fseek, ftell 함수

 

FILE 구조체의 멤버 중에는 파일의 위치 정보를 저장하고 있는 멤버가 있습니다. '파일 위치 지시자'라고 부르는 이 멤버는 파일이 처음 개방되면 파일의 맨 앞부분을 가리킵니다. 그래서 파일의 중간이나 마지막에서 데이터를 읽거나 쓰고 싶다면 이 '파일 위치 지시자'를 이동시켜야 합니다. fgets 함수 호출을 통해서 파일에서 20바이트의 문자열을 읽어 들었다면 '파일 위치 지시자'는 20바이트 뒤를 가리키게 됩니다. 

 

■ 파일 위치 지시자의 이동 fseek

#include <stdio.h>

int fseek(FILE * stream, long offset, int wherefrom);

stream으로 전달된 파일 위치 지시사를 wherefrom부터 offset만큼 이동시킨다는 의미입니다. 

 

- 매개변수 wherefrom 에 전달될 수 있는 상수로는 다음과 같은 것들이 있습니다. 

wherefrom 파일 위치 지시자 시작 지점
SEEK_SET(0) 파일 맨 앞
SEEK_CUR(1) 현재 위치
SEEK_END(2) 파일 맨 끝

 

 

- 매개변수 offset 에는 양의 정수뿐만 아니라 음의 정수도 전달될 수 있습니다.

양의 정수라면 파일의 마지막 위치을 향해서, 

음의 정수라면 파일의 시작 위치를 향해서

파일 위치 지시자가 이동합니다. 

 

■ 현재 파일 위치 지시자의 위치를 알 수 있는 ftell

 

#include <stdio.h>

long ftell(FILE * stream);

 

ftell 함수는 파일 위치 지시자의 위치 정보를 반환합니다. 파일 위치 지시자가 첫 번째 바이트를 가리키면 0을 반환하고, 세 번째 바이트를 가리키면 2를 반환합니다.

 

 

 

-----------------------------------

C언어 문법 총정리

목록 보러가기 

-----------------------------------

 

 

반응형


댓글