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

  • 相关阅读:
    Linux监控内核SNMP计数器
    wireshark使用手册
    【LinuxShell】echo用法详解
    【Coredump】调试之旅
    汇编指令
    从零开始学Java (五)条件选择
    从零开始学Java (四)输入输出
    Dart基础
    树相关
    递归简介
  • 原文地址:https://www.cnblogs.com/mydomain/p/3002902.html
Copyright © 2011-2022 走看看