标准IO缓存

来源:互联网 发布:aim聊天软件 编辑:程序博客网 时间:2024/06/01 10:05

linux的IO操作学习总结如下:

一、linux对IO文件操作的方式:

1.不带缓存:如open ,read等。这是POSIX标准,在用户空间没有缓存,在内核空间还是将进行缓存。以写数据时为例,先调用write()函数将数据写入内存缓冲区,可能会调用write()多次之后才会将内核空间的缓冲区写满,写满之后或者执行强制写入硬盘操作才会将数据写入磁盘中,写入过程如下:write数据--->内核缓存区--->磁盘。

2.带缓存区:如fopen,fwrite,fget等,是c标准库中定义的。不仅内核空间进行缓存,流也有缓存区。以写操作为例,调用fwrite()将数据写入流缓存中,流缓存写满后调用write()

将数据写入内核缓存区,直到写满内核缓存区或者执行强制写入硬盘操作之后,才进行实际的IO操作。标准IO操作函数fwrite()会调用无缓存操作write().写入过程:fwrite()数据--->流缓存区--->write写入到内核缓存区--->磁盘。

待续……



原创粉丝点击