본문 바로가기

컴퓨터/언어,프로그래밍

C언어 :: 파일크기 알아내기


FILE *fp = NULL;        

            long file_size = 0;
            
            fp = fopen( filename , "r" );
           
            if ( fp == NULL )
            {
                printf(" ###< 파일 Open Error >### [%s]파일을 여는데 실패하였습니다. ", filename );
                
                
// 에러처리
            }
           
            fseek( fp, 0L , SEEK_END );    
// 포인터의 위치를 끝으로 옮긴다
            
            file_size = ftell(fp);               
 // 포인터의 위치를 리턴
            
            fclose(fp);


-----------------------------------------------------

유용하게 쓰일꺼 같다.

네이버 지식인의 hagopais 님이 알려주셨다.


---------- << 답변 원문 >> ------------

파일 크기를 반환하는 라이브러리 함수는 존재하지 않습니다.

그렇기 때문에 아래와 같이 해당 파일을 열어 파일 포인터를 끝으로 옮겨 전체 사이즈를 알아 낼 수 있습니다.

굵은글씨체가 밀접한 관계가 있으며 해당 함수의 자세한 쓰임은 천천히 알아보도록 하세요.. ^^

 

#include<stdio.h>

#include<string.h>

 

void main()
{
     FILE *fp;

 

     fp = fopen("/home/a.out" , "r" ) ;    //대상 파일을 읽기 모드로 엽니다.

     fseek(fp , 0l , SEEK_END );             //파일 포인터를 파일의 마지막으로 이동시킵니다. 


     printf("%d byte \n" , ftell(fp)) ;       //결과 해당 파일의 크기를 얻을 수 있습니다.
}

출처 : http://anaron.egloos.com/1815292

제주삼다수, 2L,... 오뚜기 진라면 매운... 상하목장 유기농 흰... 남양 프렌치카페 카... 고려인삼유통 홍삼 ... 종근당건강 오메가3... 요이치 카링 유무선...