我有一个打开文件并在程序启动时从nvs
设置pos
的函数。一切都发生在很短的时间后,函数调用以错误结束,显示[Line: 670]fseek错误:函数未实现
。短时间后,另一个调用起作用。
我想知道是什么导致了这个问题,因为在我使用这个特定的例子之前,我对不同的文件进行了多次fopen/foff。
FILE *file;
file = fopen("/spiffs/data/log.log", "rb+");
if(file == NULL) return;
if(fseek(file, 30, SEEK_SET) != 0) {
fprintf(stderr, "[Line : %d] fseek ERROR : ", __LINE__);
perror("");
}
文件本身充满数据,长度为10kB
@编辑@Andrew Henle在评论中所说的之后,我已经研究了fseek实际上可以返回什么。我在这个链接下发现fseek没有ENOSYS
作为返回。这意味着他的观点是对的,但是我在这个函数调用之前做了很多fopen/foff/fread。f*函数返回这个错误需要什么条件?
您可以发布有问题的文件吗?
我能理解的是文件正在被打开,fseek正在做它的工作
https://www.tutorialspoint.com/c_standard_library/c_function_fseek.htm
尝试查看fseek获得的值以及文件是否在30之前结束。
您可以使用fget(),但我很确定fseek是您所做工作的最佳方法。