Dosyayı açtıktan sonra okuma işlemi yapmadığınız ya da fseek ve fsetpos gibi fonksiyonlar ile spesifik bir pozisyona getirmediğiniz sürece oluşturulan dosya Handle'ı dosya başlangıç pozisyonunu işaret eder.
Şöyle anlatayım;
FILE* fp = fopen("file", "r");
Şeklinde bir handle oluşturulduğunda bu dosyanın mevcut pozisyonu 0 yani başlangıç pozisyonudur. Bunu ilerletmek için;
fseek(fp, 0, new_pos);
Şeklinde yeni bir pozisyona ilerletebilirsiniz ya da;
int c = fgetc(fp);
İle Dosya'dan 1 karakter değer okutup yeni pozisyonu +1'e taşıyabilirsiniz.
Yani bu mantıkla, aşağıdaki şekilde yazarak istediğiniz amaca uygun yapabilirsiniz;
int size = 0;
while (!feof(fp))
{
fgetc(fp);
size++;
}