文件管理
一.文件缓冲区
- 1 硬盘上一般都有一些缓冲区以此来提高数据的写入效率,操作系统写入数据其实只是写入缓冲区,知道缓冲区满才排队写入到磁盘中。
- 2 这种操作降低了写入的次数,但是提高了数据写入的延时,导致缓冲区的数据与磁盘的内容不同步
void sync(void);
//功能:把所有缓冲区中的数据全部同步到磁盘
//注意:只是发布将数据同步到磁盘的命令,并不等待执行完毕才返回,而是命令发布后立即返回
int fsync(int fd);
//功能:指定fd文件的缓冲区数据同步到磁盘
//注意:只针对一个文件,数据同步到磁盘后才返回
int fdatasync(int fd);
//功能:指定fd文件的缓冲区数据同步到磁盘,但仅是文件的数据并不同步文件属性
二.文件锁
int fcntl(int fd, int cmd,.../*arg*/);
fd:文件描述符
cmd:操作命令,不同的操作指令决定,后序参数的个数和类型
注意:这是一个变长参数的函数
int fcntl(int fd ,int cmd,int newfd);
cmd:F_DUPFD
功能:复制文件描述符,与fd操作同一个文件