• 标准I/O函数库的三类缓冲


    标准I/O函数库执行以下三类缓冲:

    1完全缓冲意味着只在出现下列情况时才发生I/O缓冲缓冲区满,进程显示调用fflush或者进程调用exit终止标准I/O缓冲区的通常大小为8192字节。

    2行缓冲意味着只是在出现下列情况时才发生I/O碰到一个换行符,进程调用fflush或者进程调用exit终止

    3不缓冲意味着每次调用标准I/O输出函数都发生I/O

    标准I/O库函数的大多数unix实现使用如下:

    1标准错误输出总是不缓冲

    2标准输入和标准输出完全缓冲,除非它们指代终端设备,这种情况下它们进行行缓冲

    3,所有其他I/O都是完全缓冲,除非它们指代终端设备,这种情况下他们进行行缓冲

    示例1

    #include <stdio.h>

    int main ()

    {

    char str[20];

    while(fgets(str,20,stdin)!=NULL)

    {

    fputs(str,stdout);

    }

    return 0;

    }

    从标准输入流读入字符,然后从输出流输出。因为是在控制台输入输出,所以输入一行就会有输出。

    示例2

    #include <stdio.h>

    int main ()

    {

    char str[20];

    FILE *fp=fopen("output.txt","r");

    while(fgets(str,20,stdin)!=NULL)

    {

    fputs(str,fp);

    }

    return 0;

    }

    则可以看到,输入几行字符后,文件中仍然没有内容。

    示例3

    #include <stdio.h>

    int main ()

    {

    char str[20];

    FILE *fp=fopen("output.txt","r");

    while(fgets(str,20,stdin)!=NULL)

    {

    fputs(str,fp);

    fflush(fp);

    }

    return 0;

    }

    则可以看到,输入一行,则会文件中多出一行。

    原文:

    http://blog.csdn.net/mazheng1989/article/details/7600180

    unpv1

  • 相关阅读:
    linux 、windows、mac、dns刷新
    Nginx日志切割及其各种服务日志随便切
    https是如何防劫持的
    梁启超-少年中国说
    mongodb-4.2-隋唐笔迹
    connection closed by foreign host
    磁盘类型查看
    魅力男神之解说
    jenkins 更新脚本之expect交互
    nginx 之特殊端口转目录访问
  • 原文地址:https://www.cnblogs.com/mydomain/p/3002902.html
Copyright © 2020-2023  润新知