C로 파일 크기를 알아내고 싶습니다. 도와주세요
조회수 3441회
파일크기를 알아내는 방법을 알고 싶습니다.
파일 내용 전체를 문자열로 저장하기 전에 딱 파일 크기만큼만 malloc
한 후 읽고 싶어서요.
지금 malloc(MAXSIZE*sizeof(char))
같이 쓰고 있는데 너무 비효율적이에요
1 답변
-
파일 크기를 알아내는 방법(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;
댓글 입력