UNIX系统大多数文件I/O需要5个函数:open、read、write、lseek及close。(不带缓冲的I/O,都调用内核中的一个系统调用。)
使用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write。
文件描述符的变化范围是0---OPEN_MAX.
创建一个新文件
int create(const char* pathname, mode_t mode);
== open(pathname, O_WRONLY | O_CREAT | O_TRUNC, mode);
文件共享
缓冲区高速缓存
所有的磁盘I/O都要经过内核的块缓冲区(也称为内存的缓冲区高速缓存)。既然read或write的数据都要被内存缓冲,那么术语“不带缓冲的I/O指的在用户的进程中对这两个函数不会自动缓冲,每次read 或 write 就要进行一次系统调用”。
void sync(void); 只是将所有修改过的块缓冲区排入写队列,然后返回,它并不等待实际写磁盘操作结束。
int fsync(int filedes);是要等待写磁盘的操作完成后返回。