※요약
fseek : 개방된 파일에서 파일 포인터의 위치를 설정한다.
※특징
fseek 함수를 이용해 읽어온 파일의 크기를 구할 수도 있다.
fseek( stream, 0L, SEEK_END ); int nFileSize = ftell( stream );
※함수 원형 및 설명
int fseek( FILE *stream, long offset, int origin ); //stream : 개방된 FILE 구조체의 포인터 //offset : origin으로부터의 오프셋, 양수 또는 음수 가능 //origin : SEEK_SET, SEEK_CUR, SEEK_END 중 하나의 값 // SEEK_SET : 파일 시작점(BOF)에서 offset만큼 이동 // SEEK_CUR : 파일 포인터의 현재 위치에서 offset만큼 이동 // SEEK_END : 파일의 끝(EOF)에서 offset만큼 이동 //반환값 : 0 (실패 시 0이 아닌 값)
※예제
#include <stdio.h> #define print(n) printf( "%ld\n", n ) int main( ) { FILE *pFile = NULL; pFile = fopen( "d:\\Text.txt", "w+" ); if( pFile == NULL ) { //에러 처리 } else { print( ftell(pFile) ); //fopen 후 파일 포인터 위치 확인 fputs( "0123456789", pFile ); print( ftell(pFile) ); //fputs 후 파일 포인터 위치 확인 fseek( pFile, 0L, SEEK_SET ); //처음 위치로 설정 print( ftell(pFile) ); //fseek 후 파일 포인터 위치 확인 fseek( pFile, 6L, SEEK_SET ); //처음 위치에서 6번 뒤로 설정 print( ftell(pFile) ); //fseek 후 파일 포인터 위치 확인 fseek( pFile, -2L, SEEK_CUR ); //현재 위치(6)에서 2번 앞으로 이동 print( ftell(pFile) ); //fseek 후 파일 포인터 위치 확인 fseek( pFile, 0L, SEEK_END ); //파일 끝으로 이동 print( ftell(pFile) ); //fseek 후 파일 포인터 위치 확인 fclose( pFile ); } return 0; }
'C > 파일, 디렉토리 함수' 카테고리의 다른 글
[C언어] 파일 에러 및 파일 끝 함수 - ferror, feof (0) | 2013.12.06 |
---|---|
[C언어] 파일 포인터 위치 관련 함수 - fgetpos, fsetpos (0) | 2013.12.05 |
[C언어] 파일 포인터 초기화 함수 - rewind (0) | 2013.12.04 |
[C언어] 파일 포인터 위치 구하는 함수 - ftell (0) | 2013.12.03 |
[C언어] 바이트 단위 파일 쓰기 - fwrite (0) | 2013.12.03 |
[C언어] 바이트 단위 파일 읽기 - fread (0) | 2013.12.03 |
[C언어] 문자 단위 파일 쓰기 함수 - fputc (0) | 2013.12.02 |