Operating system 为什么像WRITE(2)这样的系统调用不提供缓冲区来提高速度?

Operating system 为什么像WRITE(2)这样的系统调用不提供缓冲区来提高速度?,operating-system,buffer,system-calls,Operating System,Buffer,System Calls,与printf等函数相比,系统调用写入通常较慢,因为它没有缓冲区。但为什么不在写操作中提供内置缓冲区呢。操作系统的速度很重要,不是吗 我不熟悉操作系统,它让我很困惑 因为它们是对操作系统的低级调用,在操作系统上实现了更高级的缓冲方法,如fread、fwrite、fflush等 操作系统的速度很重要,不是吗 是的。但我们假设应用程序将高效地进行写调用。如果需要缓冲,则应使用fwrite 所以,如果读取没有缓冲,缓冲更有效,为什么不隐藏它呢 因为缓冲并不总是更有效。事实上,对于某些用例,缓冲流比直接

与printf等函数相比,系统调用写入通常较慢,因为它没有缓冲区。但为什么不在写操作中提供内置缓冲区呢。操作系统的速度很重要,不是吗


我不熟悉操作系统,它让我很困惑

因为它们是对操作系统的低级调用,在操作系统上实现了更高级的缓冲方法,如fread、fwrite、fflush等

操作系统的速度很重要,不是吗

是的。但我们假设应用程序将高效地进行写调用。如果需要缓冲,则应使用fwrite

所以,如果读取没有缓冲,缓冲更有效,为什么不隐藏它呢

因为缓冲并不总是更有效。事实上,对于某些用例,缓冲流比直接使用写进行更多的复制。对于批量I/O操作,此额外拷贝会导致I/O速度变慢