파일 크기 확인하는 C 프로그램 예제

  • 4 minutes to read

이번 아티클에서는 C 언어를 사용하여 특정 파일의 크기를 확인하는 방법을 소개합니다.

ftell() 함수는 C 언어의 파일 입출력 라이브러리에 포함된 함수로, 현재 파일 포인터의 위치를 바이트 단위로 반환합니다. 이 함수는 파일에서 얼마나 떨어져 있는지 확인할 때 사용되며, 파일 크기를 계산하는 데에도 유용합니다.

ftell() 함수의 원형은 다음과 같습니다:

long int ftell(FILE *stream);
  • stream: 파일 포인터를 가리키는 FILE 구조체의 포인터입니다. 이 파일 포인터는 fopen() 함수를 사용하여 열린 파일에 대한 정보를 가지고 있습니다.

ftell() 함수는 성공적으로 파일 포인터의 위치를 반환하면 해당 위치 값(바이트 단위)을 반환하고, 실패한 경우에는 -1을 반환합니다.

아래 예제 코드를 통해 파일 크기를 확인하는 방법을 배울 수 있습니다.

예제: 파일 크기 확인

코드: get_file_size.c

#define _CRT_SECURE_NO_WARNINGS // Visual Studio에서 보안 경고를 무시하도록 설정
#include <stdio.h> // 표준 입출력 라이브러리 헤더 파일 포함

int main(void)
{
    FILE* file = fopen("example.txt", "r"); // example.txt 파일을 읽기 모드로 열기

    if (file == NULL) // 파일 열기 실패 시
    {
        printf("파일 열기 실패\n"); // 실패 메시지 출력
        return 1; // 에러 코드 1 반환
    }

    fseek(file, 0, SEEK_END); // 파일 포인터를 파일 끝으로 이동
    long int size = ftell(file); // 파일 포인터의 현재 위치를 바이트 단위로 얻어와 파일 크기 저장

    printf("파일 크기: %ld 바이트\n", size); // 파일 크기 출력

    fclose(file); // 파일 닫기
    return 0; // 정상 종료
}
실행 결과

앞서 진행한 내용에 따라서 파일에 저장된 텍스트의 내용에 따라서 파일 크기가 달라질 수 있습니다.

파일 크기: 11 바이트

위 예제 코드는 example.txt라는 텍스트 파일의 크기를 확인하는 프로그램입니다. 프로그램은 파일을 열고, 파일 포인터를 파일 끝으로 이동시킨 후 ftell() 함수를 사용하여 현재 위치를 얻어 파일 크기를 계산합니다. 마지막으로 파일 크기를 출력하고 파일을 닫습니다.

파일 크기 구하는 함수 만들기

다음 예제는 파일 크기를 구하는 함수를 따로 분리해 본 내용입니다.

예제: 파일 크기 구하기

코드: get_file_size_function.c

#define _CRT_SECURE_NO_WARNINGS // Visual Studio에서 보안 경고를 무시하도록 설정
#include <stdio.h>

// 파일의 크기를 구하는 함수
long getFileSize(FILE* file)
{
    // 현재 파일 포인터 위치를 저장
    long currentPosition = ftell(file);
    // 파일 포인터를 파일의 끝으로 이동
    fseek(file, 0, SEEK_END);
    // 파일의 크기를 구하기 위해 파일 포인터 위치를 저장
    long fileSize = ftell(file);
    // 파일 포인터를 원래 위치로 복원
    fseek(file, currentPosition, SEEK_SET);
    // 파일 크기 반환
    return fileSize;
}

int main(void)
{
    // 파일을 읽기 모드로 열기
    FILE* file = fopen("example.txt", "r");
    // 파일 열기 실패 시 오류 메시지 출력 후 종료
    if (file == NULL)
    {
        printf("파일 열기 실패\n");
        return 1;
    }

    // 파일 크기를 구하는 함수 호출
    long fileSize = getFileSize(file);
    // 파일 크기를 바이트 단위로 출력
    printf("파일 크기: %ld 바이트\n", fileSize);

    // 파일 닫기
    fclose(file);

    // 프로그램 정상 종료
    return 0;
}
파일 크기: 13 바이트
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com