zoukankan      html  css  js  c++  java
  • [Linux]标准IO全缓冲和行缓冲

    概述

    标准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(0);
    }
    
    void do_line(char *line)
    {
        printf("%s
    ", line);
    }

    当输入行少于6-1(n-1是fgets函数规定的)字符时,fgets正常返回一次;

    当输入行大于6-1字符时,fgets返回多于一次;

    输入:65613131325654654987976546
    输出:65613
         13132
         56546
         54987
         97654
         6
  • 相关阅读:
    求最大子数组02
    求最大子数组
    第3周学习进度
    四则运算3
    第2周学习进度
    构建之法阅读笔记02
    四则运算2及单元测试
    四则运算1
    第1周学习进度
    构建之法阅读笔记01
  • 原文地址:https://www.cnblogs.com/yiyide266/p/10566160.html
Copyright © 2011-2022 走看看