반응형
파일 위치 서식자란? 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, C++' 카테고리의 다른 글
[ C ] 전처리기 이해하기4_매크로 함수란? 장단점/활용 (415) | 2020.07.27 |
---|---|
[ C ] 전처리기 이해하기1_전처리기(Preprocessor)란? 정의/용도, 지시문 종류 (395) | 2020.07.27 |
[ C ] 파일 입출력 이해하기3_파일복사 feof/바이너리 데이터 입출력 fread, fwrite (402) | 2020.07.25 |
[ C ] 파일 입출력 이해하기2_파일의 개방모드(Mode) (398) | 2020.07.25 |
[ C ] 파일 입출력 이해하기1_스트림 생성, 소멸, 파일 읽는 함수_fopen, fclose, fagets (421) | 2020.07.25 |
댓글