고흐의 연구실/C언어와 C++

[C언어] 파일관련(2) 파일 크기 구하기 fseek(), ftell(), feof()

전고흐 2020. 9. 30. 20:57
728x90
  • fseek(파일포인터, 이동할크기, 기준점);
    • int fseek(FILE *_Stream, long _Offset, int _Origin);
    • 성공하면 0, 실패하면 -1을 반환
    • fseek(fp, 0, SEEK_SET); = rewind(fp)

fseek함수의 기준점
위 사진 참고

  • ftell(파일포인터);
    • long ftell(FILE *_Stream);
    • 파일 포인터의 현재 위치를 반환, 실패하면 -1을 반환

 

ㅇExample

#define _CRT_SECURE_NO_WARNINGS    // fopen 보안 경고로 인한 컴파일 에러 방지
#include <stdio.h>     // fopen, fseek, ftell, fclose 함수가 선언된 헤더 파일

int main()
{
    int size;

    FILE *fp = fopen("hello.txt", "r");    // hello.txt 파일을 읽기 모드(r)로 열기.
                                           // 파일 포인터를 반환

    fseek(fp, 0, SEEK_END);    // 파일 포인터를 파일의 끝으로 이동시킴
    size = ftell(fp);          // 파일 포인터의 현재 위치를 얻음

    printf("%d\n", size);      // 13

    fclose(fp);

    return 0;
}

 

 

feof 함수는 현재 파일 포인터가 파일의 끝인지 검사합니다(stdio.h 헤더 파일에 선언되어 있습니다).

  • feof(파일포인터);
    • int feof(FILE *_Stream);
    • 파일의 끝이면 1, 끝이 아니면 0을 반환

 

728x90