标准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; }