13-01-18-->3

来源:互联网 发布:js防水涂膜厚度 编辑:程序博客网 时间:2024/06/05 00:43

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);是要等待写磁盘的操作完成后返回。