有缓冲访问文件(库函数)
1.FILE *fopen(const char *path,const *mode);
所需头文件:#include<stdio.h>
功能:打开一个名叫path的文件,文件的属性为mode
返回值:文件顺利打开后,指向该流的文件指针就会被返回;若果文件打开失败,则返回NULL,并把错误代 码存在errno中
2.int fclose(FILE *stream);
所需头文件:#include<stdio.h>
功能:用来关闭先前fopen( )打开的文件,此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文 件资源
返回值:若关文件动作成功则返回0;有错误发生时则返回EOF并把错误代码存到errno
3.size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream);
所需头文件:#include<stdio.h>
功能:用来从文件流中读取数据。参数stream为已打开的文件指针,参数ptr向欲存放读取进来的数据间, 读取的字符数由参数nmemb来决定。fread()会返回实际读取到的nmemb数目,如果此值比参数nmemb 小,则代表可能读到了文件尾或有错误发生,这时必须用feof( )或ferror( )来判定发生什么情况
返回值:返回实际读取到的nmemb数目
4.size_t fwrite(const viod *ptr,size_t size,size_t nmemb,FILE *stream);
所需头文件:#include<stdio.h>
功能:用来将数据写入文件流中。参数stream为已打开的文件指针,参数ptr向欲写入的数据地址 总共写入的字符数由参数nmemb来决定。
返回值:返回实际写入的nmemb
5.int fseek(FILE * stream,long offset,int whence);
所需头文件:#include<stdio.h>
功能:用来移动文件流的读写位置。参数stream为已打开的文件指针,参数offset为根据参数whence来移动
读写位置的位移数。参数whence为下列其中一种:SEEK_SET从距文件开头offset位移量为新的读写位 置;SEEK_CUR以目前的读写位置往后增加offset个位移量;SEEK_END将读写位置指向文件尾后再增加 offset个位移量。
当whence值为SEEK_CUR或SEEK_END时,参数offset允许负值的出现。下列是较特别的使用方式:
①欲将读写位置移动到文件开头时,fseek(FILE * stream,0,SEEK_SET);
②欲将读写位置移动到文件尾时,fseek(FILE * stream,0,0SEEK_END);
返回值:当调用成功时则返回0;若有错误则返回-1,errno会存放错误代码
附加说明:fseek()不像lseek( )会返回读写位置,因此必须使用ftell( )来取得当前读写的位置
6.int fgetc(FILE *stream);
所需头文件:#include<stdio.h>
功能:将参数c转为unsigned char后写入参数stream指定的文件中
返回值:返回写入成功的字符,即参数c;若返回EOF则代表写入失败
7.int fputc(int c,FILE *stream);
所需头文件:#include<stdio.h>
功能:用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文 件尾或者已读了size-1个字符为止,最后会加上NULL作为字符串结束
返回值:若成功则返回s指针;返回NULL则表示有错误发生
8.int fprintf(FILE * stream, const char * format,……);
所需头文件:#include<stdio.h>
功能:会根据参数format字符串来转换并格式化数据,然后将结果输出到参数stream指定的文件中,直到出 现字符串结束(\0)为止
返回值:关于参数format字符串的格式请参考printf( )。成功则返回实际输出的字符数,失败则返回-1,错误原因存于errno中