//注意:
//1 完成次写操(fwrite())作后必须关闭流(fclose());
//2 完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(FILE * fp)自动向后移动前一次读写的长度,
//不关闭流继续下一次读操作则接着上次的输出继续输出;
//3 fprintf() : 按格式输入到流,其原型是int fprintf(FILE *stream, const char *format[, argument, ...]);
//其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。
//如int c = fprintf(fp, "%s %s %d %f", str1,str2, a, b) ;str1:10字节;str2: 10字节;a:2字节;b:8字节,c为33,
//因为写入时不同的数据间自动加入一个空格。
FREAD(3) Linux Programmer's Manual FREAD(3)
NAME
fread, fwrite - binary stream input/output
//二进制流的输入输出
SYNOPSIS
#include <stdio.h> 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);
DESCRIPTION
The function fread() reads nmemb elements of data, each size bytes long, from the stream pointed to by stream, storing them at the location given by ptr. //fread()从stream指向的流中读出nmemb个元素,每次size个,存储在ptr指定的区域内 The function fwrite() writes nmemb elements of data, each size bytes long, to the stream pointed to by stream, obtaining them from the location given by ptr. //fwrite()向stream指向的流中写入nmemb个元素,每次size个,从ptr指定的区域内得到的数据 For nonlocking counterparts, see unlocked_stdio(3).
//对于非锁定的情况,使用see unlocked_stdio()
RETURN VALUE
fread() and fwrite() return the number of items successfully read or written (i.e., not the number of characters). If an error occurs, or the end-of-file is reached, the return value is a short item count (or zero). //fread() 和 fwrite()返回成功读和写的数目(不是字符的数目).当错误发生或者遇到EOF,返回值是
//short类型?(或者是0) fread() does not distinguish between end-of-file and error, and callers must use feof(3) and ferror(3) to determine which occurred.
//fread()并不辨别EOF和error,调用者必须使用feof(3) 和 ferror(3)来判断到底是哪个发生了.
CONFORMING TO
C89, POSIX.1-2001.
SEE ALSO
read(2), write(2), feof(3), ferror(3), unlocked_stdio(3)
COLOPHON
This page is part of release 3.29 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. GNU 1996-05-17 FREAD(3)