LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 665|回复: 4

关于缓存的I/O,下面几句话怎么理解?

[复制链接]
发表于 2003-11-18 16:34:09 | 显示全部楼层 |阅读模式
函数open.read.write.lseek和close提供了不用缓存的I/O,这些函数都用文件描述符工作。::come from<<UNIX高级环境编程》

一头雾水,连问都不懂得问。。。
那不用缓存,可能吗?那文件很大怎么办?就是第一句话很不懂。后面得那句,怎么用??
发表于 2003-11-18 17:04:21 | 显示全部楼层
open.read.write.lseek.close are system call,
they are not buffered.
functions like "printf,scanf" privided by "std"libc
are buffered by default.

use "setvbuf" or "setbuf" to disable the buffer

use "mmap" to deal with large file

i think
发表于 2003-11-18 19:48:03 | 显示全部楼层
带缓存是指

读一个文件和写一个文件时
不会只读指定的BYTE数 而是会多 这些多出来的部分放在内存中 再次读时不必从磁盘上读
写文件时不会马上写到磁盘上 而是等到一定时间后再写  写入的内容先放在内存中 过一段时间或是满足某个条件后写
 楼主| 发表于 2003-11-18 21:05:51 | 显示全部楼层
最初由 无双 发表
带缓存是指

读一个文件和写一个文件时
不会只读指定的BYTE数 而是会多 这些多出来的部分放在内存中 再次读时不必从磁盘上读
写文件时不会马上写到磁盘上 而是等到一定时间后再写  写入的内容先放在内存中 过一段时间或是满足某个条件后写


谢谢!!我懂了。但我用open等的时候并没有指定要多大的内存,是比那个文件大点吗?
发表于 2003-11-19 12:48:14 | 显示全部楼层
不是
库里面自动管理了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表