How can I get a file's size in C?

c, file, size

Solution

You need to seek to the end of the file and then ask for the position:

fseek(fp, 0L, SEEK_END);
sz = ftell(fp);

You can then seek back, e.g.:

fseek(fp, 0L, SEEK_SET);

or (if seeking to go to the beginning)

rewind(fp);

Problem

How can I find out the size of a file I opened with an application written in C? I would like to know the size because I want to put the content of the loaded file into a string, which I allocate using `malloc()`. Just writing `malloc(10000*sizeof(char));` is IMHO a bad idea.

Original source

Related problems