zoukankan      html  css  js  c++  java
  • Linux输出缓存你知道多大吗?

    今天看到这个代码很简单,就是验证一下Linux系统的输出缓存大小。当

    猜一下这个代码的输出:

    #include <stdio.h>
    #include <string.h>
    #include <errno.h>
    #define N 1025
    int 
    main(int argc, char **argv)
    {
        char ch;
        int count = 0;
        char buf[N];
    
        memset(buf, 'a', N);
    
        buf[N-2] = 'b';
        buf[N-1] = 'c';
    
        fputs(buf,stdout);
        //printf("%s",buf);  //备用测试
        //fflush(fp);        //刷新缓存到输出
    
        return 0;
    }
    

    既然代码这样写了,我们猜想肯定不会完全输出了,运行结果是:

    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    aaaaaaaaaaaaaaaaaaaaaab
    

    这个结果的原因是,当缓冲区达到最大时就会自动输出,在此程序中c没有输出,是因为缓存只有1024字节,c在前1024外,所以再不刷新缓存的情况下,c是不会输出的。

    printf的输出结果和fputs一样,printf输出里如果加一个换行‘ ’也是可以输出的(这一点在调试时有时会遇到,printf打印的输出没有输出出来,有可能就是忘了加换行了)。fflush(fp); 函数会把缓存的数据刷新到输出。

  • 相关阅读:
    【Alpha版本】 第六天 11.14
    HashMap(JDK8) 源码分析及夺命9连问
    JUC基础
    快乐的一天从AC开始 | 20210804 | CF1549C
    快乐的一天从AC开始 | 20210803 | P3482
    快乐的一天从AC开始 | 20210802 | P2034
    快乐的一天从AC开始 | 20210801 | P1988
    快乐的一天从AC开始 | 20210731 | P2825
    快乐的一天从AC开始 | 20210730 | P4656
    快乐的一天从AC开始 | 20210729 | P5346
  • 原文地址:https://www.cnblogs.com/fensnote/p/13436449.html
Copyright © 2011-2022 走看看