概述
标准IO中,标准错误是不带缓冲的。若是指向终端设备的流才是行缓冲的,否则是全缓冲的。
行缓冲也可以分配缓冲区,当遇到超大行(超过缓冲区的行),缓冲区内容也会优先刷出。
示例
#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
#include <unistd.h> #define MAXLINE 6 void do_line(char *); int main(void)
{
char line[MAXLINE];
while(fgets(line, MAXLINE, stdin) != NULL){
do_line(line);
}
exit();
} void do_line(char *line)
{
printf("%s\n", line);
}
当输入行少于6-1(n-1是fgets函数规定的)字符时,fgets正常返回一次;
当输入行大于6-1字符时,fgets返回多于一次;
输入:
输出: