基本上只是标题。我试图检查文件是否是emtpy。问题是,这个文件在几天内会变得非常庞大(约1GB +),我觉得
fseek(fp,0,SEEK_END);
if(ftell(fp)==0){//init file}
rewind(fp);
//actually read the file
时间很贵,因为你必须遍历整个文件。我也不想使用systemcalls,因为我通常使用Java,并尝试尽可能独立于平台(即不必为每个平台重写它,而只是重新编译它)。如果这根本不是cocern,并且fseek()...可以轻松处理这些文件大小,请告诉我,但我认为这是耗时的。
答案 0 :(得分:0)
如果不进行系统调用,您无法对文件执行任何操作。
但为什么不想进行系统调用?或者您是否想避免调用名为system()的函数?
使用stat()或stat()(取决于你是否已经有一个打开的文件描述符)可能是最好和最快的检查方式,文件是否为空。它不会改变文件的状态。