标准io

 

一个进程中默认打开了STDIN(标准输入)、STDOUT(标准输入)、STDERR(标准错误)

标准io:标准io库(stdio)提供的带缓存的io,可提高效率(减少系统点用),也会有系统调用,只是在缓存达到某种条件是,才会执行系统点用

带缓存的实质:是将要输入或者输出的数据,先放到缓存中,然后在适当的时候,将数据输出/输入

如下图:从键盘上输入“iotek”,会先将数据存放到缓冲区中。

每当使用标准IO的写操作函数,试图将数据写入文件 a.txt 时,数据都会流过缓冲区(一般大小为1024字节),然后再在适当的时刻冲洗(或称刷新,flush)到内核,最后才真正写入设备文件。

 

 

 

缓冲区按照什么时候冲洗数据到内核,可以将缓冲区分成以下三类:

 

代码分析:

#include <stdio.h>

int main()
{
    printf("hello world");//此函数是标准io且用的是行缓存,没有‘\n’不会将缓存里的数据刷新进内核空间,即屏幕上不会有字符显示
    while(1){
        sleep(1);
    }
    return 0;    
}

 

posted @ 2023-02-13 20:45  踏浪而来的人  阅读(103)  评论(0编辑  收藏  举报