文件*可以说文件是否为空?

时间:2011-03-10 21:51:25

标签: c file

在C中,如何从FILE *知道该文件是否为空?

3 个答案:

答案 0 :(得分:14)

fseek到最后,然后检查ftell是否返回0。

答案 1 :(得分:5)

像这样:

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;
}

答案 2 :(得分:1)

如果您正在为POSIX系统编码:

struct stat sb;
if( fstat(fileno(file), &sb) ) { /* error */ }
if( sb.st_size == 0 ) { /* file is empty */ }