如何使用C检查文件是否为空?

时间:2016-01-17 08:54:49

标签: c file-handling

我有一项任务来检查文件是否为空。
我想在程序运行之前检查文件,如果文件不为空我希望程序读取该文件,但如果文件为空,我希望程序跳过该功能。

这是我的代码,但它不能很好地运作:

foo/foo.js

2 个答案:

答案 0 :(得分:5)

您缺少fseek(f, 0, SEEK_SET),即

fseek(f, 0, SEEK_END);
if (ftell(f) != 0) {
    fseek(f, 0, SEEK_SET);
    while (!feof(f)) {
        fscanf(f, "%[^\;];%s\n", contact[n].name, contact[n].number);
        n++;
    }
}

答案 1 :(得分:1)

如果您在可用的环境中运行,您可能会发现stat()系统调用很有帮助。 例如:

struct stat s;

if (stat("contact.txt", &s) == -1) { /* an error occurred, check errno */ }
else if (s.st_size == 0) { /* the file is empty */ }
else { /* the file is not empty */ }

stat manual page