标签归档:文件大小变化

linux 文件大小变化 同步文件

linux 改变文件的大小
在linux中,当内容写入文件末端时,常规文件会自动增长,当文件的末尾数据不在使用时,会末尾数据被删除时,此时文件的大小不会进行自动缩放,
下面的函数可对文件进行自动缩放操作
缩短文件的主要功能是:改变文件大小,当该改变文件的大小小于定义的长度时,此时丢弃文件末尾的数据。
函数头文件

 #include "unistd.h"
 int truncate(const char * pathname,size_t length);
 int ftruncate(int fd,size_t length);

调用上述函数可使文件变为length大小,在新末尾后的数据将会被丢失。
例: 缩短文件代码
缩短文件
将当前目录下文件”duxie”缩短为99字节。


linux c 同步文件
当一个程序向文件中写数据时,在数据写回磁盘前,这些数据通常会存在内核的缓存中。
内核在把数据复制到缓存中后,立即把控制权返回给应用程序。内核可以对磁盘写的操作进行排序,可以实现多个文件同时写操作,写操作的性能得到提高。
一个程序在修改数据项的索引之前,数据已经被写回磁盘,实际最后只更新了索引项,导致产生不必要的操作浪费。通常应用程序不需要所有的操作都需要同步,经常需要一些操作在另一些操作开始前完成。
故产生一下函数

  #include "unistd.h"
  int fsyn(int fd);
  int fdatasync(int fd);

这两个函数调用都会对文件fd的写操作完成之前挂起应用程序。