fread和fwrite的区别是什么

2024-11-27 12:30:12
推荐回答(3个)
回答1:

fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。
fread和fwrite的函数原型分别为:
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

fread和fwrite函数的返回值:
读或写的记录数,成功时返回的记录数等于nmemb,出错或读到文件末尾时返回的记录数小于nmemb,也可能返回0。

fread和fwrite函数参数的含义:
参数size指出一条记录的长度;
参数nmemb指出要读或写多少条记录,这些记录在ptr所指的内存空间中连续存放,共占size * nmemb个字节;
ptr是指向的某连续内存空间的指针;

stream是文件指针;

fread从文件stream中读出size * nmemb个字节保存到ptr中所指的内存空间中;
fwrite把ptr中的size * nmemb个字节写到文件stream中。

回答2:

fread(pBuffer,size,count,pFile);
fwrite(pBuffer,size,count,pFile);
  要读写一个数据块的话,无论是读还是写,都需要指定一个起始地址,读的话从这个起始地址读,写的话从这个起始地址写,上面函数定义中的第一个参数pBuffer就是用于指定这个起始地址,size读写的字节数,count则指定读写多少个size大小的数据,pFile是文件结构指针。

更多详细介绍以及使用示例请看参考资料

回答3:

fwrite:向流中写数据
fread:从流中读数据