请问标准I/O输入流(不是输出流)缓冲区的作用是什么?

如题:输出流缓冲区的作用很好理解,可以先将内容写到缓冲区,再一起写  
写到磁盘上,但是输入流缓冲区有什么作用,比如getc、fgets之类的函数总  
是需要马上将字节读入到参数buf上,这和不适用缓冲区的read函数有什么

区别?这个问题思考了很久了,希望有大神解惑。