缓冲 IO 的三种机制
non-buffered 无缓冲 -> 标准错误
block buffered 块缓冲 / 全缓冲 - 通常 512 整数倍 -> 文件操作默认块缓冲
line buffered 行缓冲 -> 终端输出
man dd
time dd if=/dev/zero of=./a bs=1 count=2097152
man stdio
stat 函数查看系统 block size
标准 IO 有什么缺陷?两次拷贝影响 IO 效率
① 文件拷贝到内核
② 内核拷贝到用户空间
以上是读,写则相反;
man setbuf - 用 fopen 打开的文件流缓冲 IO 操作
案例 - 管道 pipe
dcy.c
man 2 pipe
man 3 mkfifo
man 3 popen
缓冲 IO
直接 IO
同步 IO