fread函数为何总是返回0-

Posted by AlstonWilliams on February 17, 2019

fread函数的原型为** size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)**.

其中第二个参数为要读取的尺寸,第三个参数为要读取的次数.

当我们要读取的文件中的实际内容小于第二个参数指定的大小时,就会总是返回0.

例如,如果一个文件的尺寸为256bytes,而我们使用** fread(data_read, 1024, 1 , file),则其返回值就总为0.那我们可以采用下面的这种方式来替代它,让它返回正确的结果: fread(data_read, 1, 1024, file)**.

只是不知道后面的那种形式有什么负面效果.我觉得可能会因为读取的次数多,而导致性能比第一种低.