fread原型:size_t fread ( void *buffer, size_t size, size_t count, FILE *stream) ;
fread是一个分段读取文件的函数,count就是分多少段,举例来说,同样在文件中读100个字节:
1
2
|
int
a =
fread
(buf, 1, 100, fp);
// a = 100
int
b =
fread
(buf, 100, 1, fp);
// b = 1
|
其实count影响的是返回值,fread返回的是成功读取多少段,所以一般情况下,如果需要准确的知道到底读取了多少个字节,把size设为1,把count设为你需要读取的字节数,这样fread的返回值就是读取的字节数了。
性能方面不用担心,fread底层并不是一段一段调用系统调用去读的,是优化过的。