UNIX环境高级编程 CH3
3.1
When reading or writing a disk file, are the functions described in this chapter really unbuffered? Explain.
先看看read 和 write的函数申明。
ssize_t read(int filedes, void *buf, size_t nbytes); ssize_t write(int filedes, const void *buf, size_t nbytes);
这里的 buf 都是用来作为读和写的缓存,可是这里为什么是void*类型而不是char* 类型呢,可以参考http://blog.csdn.net/yming0221/article/details/6249151,在POSIX里
void * 操作跟char * 是一样的。
以上是说函数在调用时是有缓存的,读写的内容都存放在buf里,但unbuffered的又是什么呢,其实是说每次系统调用完该函数,都不会留下该函数体的缓存。

浙公网安备 33010602011771号