※요약
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 |