Linux 标准输入输出_11

时间:2023-01-07 10:49:55
标准输入输出是基于标准输入输出库实现的。
 知识点大纲 『
  *1 标准输入输出的基本操作,包括文件的打开与关闭,缓冲区的操作等。
  *2 非格式化输入输出, 包括单个字节,字符串(行)以及数据块的输入输出。
  *3 格式化输入输出。
 』
-11.1 标准输入输出的基本操作
 标准输入输出操作是通过控制结构 FILE 进行。
  文件控制结构中包含处理文件所需的全部信息,例如文件名,文件当前的读写位置,用于该文件读写的内存缓冲区位置等。打开文件时,系统会在内存中自动建立该文件的控制结构。关闭文件时,文件控制结构被释放。在对文件进行操作之前,要首先获取文件的指针,即指向文件控制结构的指针,后续操作都通过该指针进行。
 标准输入输出时,有 3 个比较特殊的文件,如下 :
 *1 标准输入文件(stdin) : 一般为键盘
 *2 标准输出文件(stdout): 一般为显示器
 *3 标准错误输出文件(stderr) : 一般为显示器
 -11.1.1 文件的打开
   #include <stdio.h>
   FILE *fopen(const char *filename, const char *modes);
   例如 : FILE *fp; fp = fopen("./hello.c", "r");
 -11.1.2 文件的关闭
   对文件操作完成后,应该关闭文件,进而释放文件所占用的系统资源。关闭后,文件指针将不再有效。
   #include <stdio.h>
   int fclose(FILE *fp);
 -11.1.3 缓冲区的刷新
  #include <stdio.h>
  int fflush(FILE *fp); 写入到磁盘文件或者输出到用户终端。
  int fpurge(FILE *fp); 清空缓冲区。
 -11.1.4 缓冲区属性的设置   (缓冲区的大小和类型都可以通过函数来设置)
  *1 全缓冲 *2 行缓冲 *3 无缓冲
  #include <stdio.h>
  int setvbuf(FILE *fp, char *buf, int mode, size_t size);
-11.2 非格式化输入输出
 -11.2.1 单个字节输入输出
   int fgetc(FILE *fp);
 -11.2.2 字符串输入输出
   char *fgets(char *s, int n, FILE *fp);
 -11.2.3 数据块的输入输出
   size_t fread (void *ptr, size_t size, size_t n, FILE *fp);
   size_t fwrite(void *ptr, size_t size, size_t n, FILE *fp);
-11.3 格式化的输入输出
  int fprintf(FILE *fp, const char *format, ...);