본문으로 바로가기

바다야크

  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 fseek 함수 파일 읽기·쓰기 위치 이동

C언어 fseek 함수 파일 읽기·쓰기 위치 이동

· 댓글개 · 바다야크

C fseek() 파일의 읽기·쓰기 위치 이동 함수

  • 헤더: stdio.h
  • 형태: int fseek( FILE *stream, long offset, int whence)
  • 인수: FILE *stream대상 파일 스트림
    long offset 이동할 바이트 수
    int whence 시작 시점
  • 반환: int 0을 반환, 오류가 발생하면 -1을 반환

파일의 읽기·쓰기 위치를 파일의 처음 위치로 초기화합니다. 파일의 위치는 기준 옵션에 따라 앞으로 또는 뒤로 읽기·쓰기 위치로 건너 띕니다. 건너 띈다는 것은 인수로 받은 숫자의 위치로 이동한다는 뜻이 아니라 건너 띄듯이 count 한다는 뜻입니다. 아래의 그림을 참고하여 주십시오.

whence 설명
SEEK_SET 파일의 시작
SEEK_CUR 현재 읽기/쓰기 포인터 위치
SEEK_END 파일의 끝

C언어 fseek() 함수 예제

#include <stdio.h>

int main( void)
{
   FILE *fp;
   char  str[1024];
   int   ndx;

   fp = fopen( "./test.bin", "r");

   printf( "%s\n", fgets( str, 1024, fp));

   fseek( fp, 10, SEEK_SET);              // 파일의 시작에서 10번을 건너 띈다.
   printf( "%s\n", fgets( str, 1024, fp));

   fseek( fp,  5, SEEK_SET);              // 파일의 시작에서 5번을 건너 띈다.
   fseek( fp,  5, SEEK_CUR);              // 현재 위치에서 다시 5번을 건너 띈다.
   printf( "%s\n", fgets( str, 1024, fp));

   fseek( fp,  -5, SEEK_END);             // 파일의 시작에서 5번을 건너 띈다.
   printf( "%s\n", fgets( str, 1024, fp));

   fclose( fp);

   return 0;
}

C언어 fseek() 함수 예제 실행 결과

test.bin 파일에 a부터 f까지 입력되어 있을 때 실행 결과입니다.

]$ ./a.out
0123456789abcdef
abcdef
abcdef
bcdef
]$
SNS 공유하기
💬 댓글 개
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.