两者是块读写的方式,第二个参数是单个块的大小,第三个参数是块的个数,返回值是实际读写的块的个数,而不是字节数。 如果将第三个参数设为1,那么如果fread读到的字节数小于第二个参数,则fread返回值为0。 这个问题很容易搞错,并导致很多问题,需要强调的是fread函数返回的并不是字节数。 realRead = fread(buf,item,count,fp) (每次读item大小的数据块,分count次来读。) 而是返回的是成功有效的读取的item元素的个数,而成功读入的字节数则是realRead * sizeof(item) 一般说来realRead 是小于count的,很巧的情况就刚好为count.除非文件大小刚好为item大小的整数倍。 返回的是真实读入item元素的个数,虽然读了count次,但是真正读到的有效个数为realRead个 fread(从文件流读取数据) fread返回的不是字节数, 当且仅当下面这么用的时候,返回值才是字节数(当然因为恰好一个数据块大小为1个字节,相当于realRead*1) char buff[size]; 如果是: fread(buff, size, 1, fp) 参考源代码如下: int main() |
详细解决方案
fread/fwrite第二个参数和第三个参数的区别以及与返回值的关系
热度:88 发布时间:2024-01-22 04:26:36.0
转:fread/fwrite第二个参数和第三个参数的区别以及与返回值的关系
2012-02-03 11:40
相关解决方案
- 关于fread();fwrite();
- fread 跟fgets选择
- PHP fwrite 函数输出的文本编码为ANSI、小弟我需要UTF-8
- @fwrite 重复写入有关问题
- fwrite()编码问题
- matlab文件操作fopen,fseek,fread,fclose
- php file_put_contents 和 fwrite
- fwrite 从什么位置开始写数据
- 常用标准IO:fopen、fclose、fread、fwrite、fseek 学习、使用
- 【C进阶】文件操作(fopen、fclose、fread、fwrite等)
- fwrite 函数解析
- C-open,fopen,fwrite,fread,fseek,fgets,popen,access笔记
- Linux内核入门(三)——fread、read、fgets、fgetc函数
- fread fwrite
- fprintf()、sprintf()、printf()、fwrite()函数的用法与区别
- fread() fwrite() 函数简介
- C语言标准I/O_fread/fwrite
- asterisk ami 发起呼叫时出现: fwrite() returned error: Broken pipe
- fread/fwrite第二个参数和第三个参数的区别以及与返回值的关系
- fwrite 函数
- Linux 文件1.7 — 标准C语言库对文件的操作在<stdio.h>中,fread; fopen; fgets; 等,
- fread