FILE * может сказать, если файл пуст? - PullRequest
1 голос
/ 11 марта 2011

В C, как узнать из FILE *, пуст ли этот файл или нет?

Ответы [ 3 ]

14 голосов
/ 11 марта 2011

fseek до конца, затем проверьте, возвращает ли ftell 0.

5 голосов
/ 11 марта 2011

Как это:

bool isEmpty(FILE *file)
{
    long savedOffset = ftell(file);
    fseek(file, 0, SEEK_END);

    if (ftell(file) == 0)
    {
        return true;
    }

    fseek(file, savedOffset, SEEK_SET);
    return false;
}
1 голос
/ 11 марта 2011

Если вы программируете для системы POSIX:

struct stat sb;
if( fstat(fileno(file), &sb) ) { /* error */ }
if( sb.st_size == 0 ) { /* file is empty */ }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...