无缓冲I / O和标准I / O有什么区别?我知道使用read(),write(),close()是无缓冲的IO。 Printf和gets是缓冲IO。我也知道最好将缓冲IO用于大型事务。我只是不知道原因。在这种情况下,术语“缓冲”是什么意思?
答案 0 :(得分:4)
无缓冲I / O只是意味着在读取或写入时不使用任何缓冲区。一般情况下,当我们使用read()和write()等系统调用时,它们会按字符串读取和写入char,从而导致性能大幅下降。所以对于巨大的日期,通常高级读/写或简单缓冲的I / O是首选。缓冲只是意味着我们不处理单个字符而是处理字符块,这就是为什么有时它也称为块I / O.Generally在Unix中,当我们使用高级读/写函数时,它们获取/存储给定块大小的数据并将它们放在缓冲区高速缓存中,并且从这个缓冲区高速缓存中,这些I / O函数可以获得所需的数据量。