我正在使用fread从文件中读取大量的图像数据(> 1 MB)。最近在MinGW和Windows网络共享时遇到了一个bug,其中单个fread调用如下:
fread(file, 4, 100000, data);
无论如何,都会出现“无效参数”错误,并且连续调用10次。
fread(file, 4, 10000, data); data += 10000;
成功并且得到正确的结果。我推断fread函数应该有一个最大尺寸,这一点在之前是我没有意识到的。我将允许的fread大小一分为二,发现其介于31000和32000块4字节之间。有人以前遇到过这个问题吗?这是MinGW的一个bug吗?有什么方法可以确定fread的最大“安全”尺寸吗?
EINVAL
不是fread
的记录错误代码。你如何进行错误检查? - Matfile
是FILE *
吗?因为fread
的第一个参数是缓冲区,而不是文件。 - Hasturkun