gpt4 book ai didi

c - 为什么无缓冲的 read()/write() 操作使用缓冲区缓存?

转载 作者:行者123 更新时间:2023-12-04 02:13:28 25 4
gpt4 key购买 nike

基本上在 UNIX 上,read()write() 函数是无缓冲的 I/O,

还有Standard I/O,就是buffered I/O。

但是,read()write() 函数在执行真正的 I/O 之前使用内核中的 buffer cache(I/O 到真实设备),真实 I/O 发生在使用缓冲区缓存。它正在使用缓冲区。

我听说无缓冲 I/O 意味着 I/O 逐个字符地发生在真实设备上。

那么,为什么 read()write() 函数是无缓冲 I/O,即使它使用了缓冲区高速缓存

最佳答案

基本上,术语“缓冲”在这里的意思是“在进出内核时存储数据的地方”,即为了避免为每个 I/O 调用执行一个系统调用,缓冲函数在两者之间使用一个缓冲区。

内核对数据的处理不是标准库能做的。

可以在标准库级别(即 fread() 和 friend )对读/写调用进行 1:1 映射到 read()/write() 调用底层文件描述符;术语缓冲告诉您这不是您所期望的。

关于c - 为什么无缓冲的 read()/write() 操作使用缓冲区缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36181906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com