本文主要向大家介绍了 C/C++知识点之Linux创造固定的文件大小-预分配磁盘空间,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
一、课前预习
写本篇文章的目的很简单,防止采坑、防止采坑、防止采坑我们在开发程序的过程中,往往需要预分配磁盘空间,防止因磁盘空间不够而引发程序异常问题(已踩过坑), 现网查阅资料,有些预分配磁盘空间的方法不正确,在这里特别记录一下, 除此之外,把正确的预分配的方法和大家分享一下,如果其他人有建议,欢迎拍砖狠砸
二、假:磁盘预分配---ftruncate
1. 使用lseek、ftruncate到一个固定位置生成的“空洞文件”是不会占据真正的磁盘空间的。
#include #include #include #include #include #include #include uint64_t file_size = 10*1024*1024*1024ULL;int main(){ int fd = -1; fd = open("test.data.fruncate.txt", O_RDWR | O_CREAT, 0666); if(fd
测试结果
2. fseek fputs填充文件的最后一个字节
#include #include int main(){ FILE *f = fopen("test.d