在C中,如何从FILE *知道该文件是否为空?
答案 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 */ }