fallocate的基本使用方法

这篇文章主要讲解了“fallocate的基本使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“fallocate的基本使用方法”吧!

创新互联建站专业为企业提供淮南网站建设、淮南做网站、淮南网站设计、淮南网站制作等企业网站建设、网页设计与制作、淮南企业网站模板建站服务,10余年淮南做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

什么是空洞文件?
“在UNIX文件操作中,文件位移量可以大于文件的当前长度,在这种情况下,对该文件的下一次写将延长该文件,并在文件中构成一个空洞,这一点是允许的。位于文件中但没有写过的字节都被设为 0。”

如果 offset 比文件的当前长度更大,下一个写操作就会把文件“撑大(extend)”。这就是所谓的在文件里创造“空洞(hole)”。没有被实际写入文件的所有字节由重复的 0 表示。空洞是否占用硬盘空间是由文件系统(file system)决定的。大部分文件系统是不占用的。

怎么获得一个空洞文件?
以Linux来说,使用lseek或truncate到一个固定位置生成的“空洞文件”是不会占据真正的磁盘空间的。
空洞文件特点就是offset大于实际大小,也就是说一个文件的两头有数据而中间为空,以‘\0‘填充。那文件系统会不会不做任何处理的将其存放在硬盘上呢?大部分文件系统是不会将其存放在硬盘上。

文件预留
快速的为某个文件分配实际的磁盘空间在Linux下可通过fallocate(对应的posix接口为posix_fallocate)系统调用来实现,大部分主流文件系统如ext4,xfs还是支持fallocate

fallocate
   #include

   int fallocate(int fd, int mode, off_t offset, off_t len);
fd就是open产生的文件描述符,offset就是进行fallocate的文件偏移位置,len为fallocate的的长度。offset和len一起构成了要释放的文件范围。

[root@centos ~]# fallocate --help

Usage:
 fallocate [options] 

Preallocate space to, or deallocate space from a file.

Options:
 -c, --collapse-range remove a range from the file
 -d, --dig-holes      detect zeroes and replace with holes
 -i, --insert-range   insert a hole at range, shifting existing data
 -l, --length    length for range operations, in bytes
 -n, --keep-size      maintain the apparent size of the file
 -o, --offset    offset for range operations, in bytes
 -p, --punch-hole     replace a range with a hole (implies -n)
 -z, --zero-range     zero and ensure allocation of a range
 -x, --posix          use posix_fallocate(3) instead of fallocate(2)
 -v, --verbose        verbose mode

 -h, --help           display this help
 -V, --version        display version

For more details see fallocate(1).
[root@centos ~]# fallocate -l 10M dctestfile
[root@centos ~]# ls
dctestfile 
[root@centos ~]# cat dctestfile 
^C
[root@centos ~]# ll -alhtr dctestfile 
-rw-r--r-- 1 root root 10M May  7 18:10 dctestfile

参考:

https://blog.csdn.net/weixin_36145588/article/details/78822837

感谢各位的阅读,以上就是“fallocate的基本使用方法”的内容了,经过本文的学习后,相信大家对fallocate的基本使用方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


名称栏目:fallocate的基本使用方法
网页URL:http://azwzsj.com/article/psecge.html