Unix标准IO库相关函数总结之读写流(二)

读写流的三种方式

一旦一个流被打开,则可以选择三种方式对其进行读写。

  • 每次一个字符的IO ,一次读或者写一个字符,如果流是带缓冲的,则标准IO函数处理所有的缓冲。
  • 每次一行的IO。每次读写一行数据,可以使用fgets和fputs函数,但是要说明最大行的长度。
  • 直接IO。通常使用fread和fwrite函数。
  • 一个字符的IO

    输入函数

    通常使用以下三个函数进行一个字符的读。

    1
    2
    3
    4
    #include <stdio.h>
    int getc(FILE*);
    int fgetc(FILE*);
    int getchar();

    区别与联系

    这三个函数都用于一个字符的读取。其区别和联系如下:

  • getchar()相当于getc(stdin) 。即每次从标准输入流读入一个字符。 实质上getc是宏
  • getc和fgetc的区别是 getc可以被实现为宏,而fgetc不能被实现为宏 。这就意味着:
  •