stdio相关函数:man手册第三章
man手册第一章:基本命令
man手册第二章:系统调用
man手册第三章:标准库函数
man手册第七章:机制
注意:在标准IO中有一个FILE类型贯穿始终
1.fopen()
原型:FILE *fopen(const char *path , const char *mode)
(1) const修饰说明函数不会修改用户传过来的内容,让用户放心用(知识点:指针常量,常量指针)。
(2)返回值注意点:当失败时,不仅返回一个NULL,还会设置errno。errno需要马上打印。系统路径:/usr/include/asm-generic/
2.fclose();
注意:谁打开谁关闭
3.fgetc();
4.fputc();
注意:返回值为int,这对函数较为通用,因为不管是什么字符都可以读取,直到读到文件尾,fget()返回EOF。相比于fgets()读取要好一点,因为fgets()在遇到’n‘或者文件尾时结束。
5.fgets();
注意点:读取stream,遇到n或者文件结尾时结束,并且在结尾追加’ ’,读取失败时返回NULL
6.fputs();
注意点:向stream输出字符串(以’ ’结束),当fgets()与fputs()结合使用的时候,要注意文件当中是否存在空洞。
7.fread();
8.fwrite();
注意:能够以item形式读取,但读取过程不能出错,否则后续读取内容将出错。所以最好是当作fgetc(),fputc()来使用。
9.printf();
10.scanf();
注意点:要注意缓冲模式:
(1)行缓冲模式,终端设备,例如stdout。刷新:遇到’n’或者强制刷新。
(2)全缓冲模式,默认。刷新:满了刷新或者强制刷新
(3)无缓冲模式,例如stderr。立即输出
示例代码:
#include#include { FILE *p; p = fopen("b" , "w");//b为自建文件。 if(p == NULL) { perror("fopen()"); exit(1); } fprintf(p , "hello world!"); //fclose(p);//当不加这句时文件b中 ,写不进hello world!,要想写入,可调用fflush(),fclose(p) ,或者hello world后加n. while(1); exit(0); }
11.fseek();
12.ftell();
注意:问题:
fseek(FILE * stream , 0 , SEEK_END); feof(FILE* stream); //以这种方式,feof()的返回值是0,即判断还不是文件尾。 fseek(FILE *stream , 0 , SEEK_END) fgetc(stream);//可以知道肯定读取失败,指针位置并未改变 feof(stream) //此时feof(stream)返回1,即判断是文件尾
13.rewind();
14.fflush();
持续更新中



