zoukankan      html  css  js  c++  java
  • 标准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

  • 相关阅读:
    xml DTD中的ELEMENT和ATTLIST
    xml CDATA
    xml 及其语法
    java 多态的好处
    libusb-win32 在visual studio2008中成功编译回忆录
    【转帖】C# DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用
    【转帖】.Net中C#的DllImport的用法
    .net 中的DllImport
    离线安装谷歌扩展
    排序算法哪家强?
  • 原文地址:https://www.cnblogs.com/mydomain/p/3002902.html
Copyright © 2011-2022 走看看