基本上只是标题。我正在尝试检查文件是否为空。问题是,这个文件在几天内将变得绝对巨大(~1GB+),我觉得
fseek(fp,0,SEEK_END);
if(ftell(fp)==0){//init file}
rewind(fp);
//actually read the file
时间成本很高,因为您必须遍历整个文件。我也不想使用系统调用,因为我通常使用 Java,并尝试尽可能独立于平台工作(即不必为每个平台重写它,而只需重新编译它)。如果这根本不是什么问题,并且 fseek()...可以轻松处理这些文件大小,请告诉我,但我认为这很耗时。
最佳答案
如果不进行系统调用,则无法对文件执行任何操作。
但是你为什么不想进行系统调用呢?或者您想避免调用名为 system() 的函数吗?
使用 stat() 或 stat() (取决于您是否已经有打开的文件描述符)可能是检查文件是否为空的最佳且最快的方法。并且它不会改变文件的状态。
关于c - 是否可以在没有 fseek() 和系统调用的情况下检查文件是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300593/