网上已经有不少关于c语言函数fread() 和fwrite() 用法分析的文章,在此将这两个函数的用法写下来,是为了巩固所学,加深印象,也为了日后方便查询复习比较,如果能帮助到某些朋友,则是意外的惊喜。
fwrite()函数的意义是将某二进制数据写到指定的 文件流。函数的原型为:
size_t fwrite (const void *buffer, size_t size, size_t num, FILE *stream)
四个函数参数的意义分别为:1、const void *buffer 为指向二进制数据来源的指针;2、size_t size 为每个数据单元所占的字节数;
3、size_t num 为需要读取的数据单元的个数; 4、FILE *stream 为目的文件指针。
返回值为实际写入目的文件的数据单元个数。 范例如下:
函数fseek()的原型是:int fseek(FILE *stream, long offset, int fromwhere)
后两个参数的意义分别为:
1、long offset 为偏移量,正数表示正向偏移(向尾部偏移),负数表示负向偏移(向首部偏移);
2、int fromwhere 为偏移的起始点,对于fromwhere ,函数fseek定义了三个位置,对应如下:
SEEK_SET(对应 0):文件开头;
SEEK_CUR(对应 1):文件指针所指当前位置;
SEEK_END(对应2):文件结尾;
FILE *fp;
fseek(fp, 0, SEEK_SET); //!<>
fseek(fp, 100, SEEK_CUR); //!<>
fseek(fp, -100, SEEK_END); //!<>
3、返回值: 如果函数执行成功,FILE *stream将指向以fromwhere 为起始点,偏移offset个字节的位置,返回返回0。若函数执行失败(比如offset超过了文件自身的大小),则不改变stream指向的位置,返回非0值。
若文件偏移超出了文件末尾位置,还是返回0,;若往回偏移超出了文件首部,返回-1,。
函数fread() 的原型是:size_t fread( void *buffer, size_t size, size_t num,FILE *stream)
四个参数的意义可参考fwrite()。稍微不同之处是:fwrite()是将数据从*buffer 写到 FILE *stream;而fread()是将数据从
FILE *stream写到*buffer,是一个相反的过程。范例如下:
联系客服