C로 파일 크기를 알아내고 싶습니다. 도와주세요

조회수 3441회

파일크기를 알아내는 방법을 알고 싶습니다. 파일 내용 전체를 문자열로 저장하기 전에 딱 파일 크기만큼만 malloc 한 후 읽고 싶어서요.

지금 malloc(MAXSIZE*sizeof(char))같이 쓰고 있는데 너무 비효율적이에요

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    파일 크기를 알아내는 방법(2가지)

    1. ftell으로 찾기 :

    ftell은 파일의 시작 위치와 현재 파인 포인터 위치 사이의 거리를 구해 줍니다

    fseek(f, 0, SEEK_END); // 파일 포인터를 파일의 끝으로 이동
    size = ftell(f); // 파일 시작부터 맨 끝까지의 거리를 return
    fseek(f, 0, SEEK_SET); // 파일 포인터를 파일의 처음으로 이동
    

    2. stat으로 찾기 :

    stat는 파일에 대한 정보를 구조체에 담아 return해 줍니다.

    #include <sys/stat.h>
    struct stat st;
    stat(filename, &st);
    size = st.st_size;
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)