Как вы определяете размер файла в C? - PullRequest
129 голосов
/ 12 августа 2008

Как определить размер файла в байтах?

#include <stdio.h>

unsigned int fsize(char* file){
  //what goes here?
}

Ответы [ 14 ]

0 голосов
/ 06 июня 2016

Вот простая и чистая функция, которая возвращает размер файла.

long get_file_size(char *path)
{
    FILE *fp;
    long size = -1;
    /* Open file for reading */
    fp = fopen(path, "r");
    fseek(fp, 0, SEEK_END);
    size = ftell(fp); 
    fp.close();
    return 
}
0 голосов
/ 30 сентября 2014

Глядя на вопрос, ftell может легко получить количество байтов.

  long size ;
  size = ftell(FILENAME);
  printf("total size is %ld bytes",size);
0 голосов
/ 12 августа 2008

Вы можете открыть файл, перейти к 0 смещению относительно нижней части файла с помощью

#define SEEKBOTTOM   2

fseek(handle, 0, SEEKBOTTOM)  

значение, возвращаемое fseek, является размером файла.

Я давно не программировал на C, но думаю, что это должно сработать.

0 голосов
/ 12 августа 2008

Вам понадобится использовать библиотечную функцию для получения подробной информации о файле. Поскольку C полностью независим от платформы, вам нужно сообщить нам, для какой платформы / операционной системы вы разрабатываете!

...