环境:ubuntu 8.04,ext2文件系统。
要做一个存储池模块,需要在初始化的时候分配好定长的文件,比如每个文件为1G,则1T硬盘,可分配900多个文件。
如果用fwrite ()对每个文件进行一点一点写也是可以的,而且能保证磁盘上文件内部基本没有碎片是连续的。但这样创建文件太慢了。刚才用Qt的QFile的resize试了下,马上就创建好了所有文件,很快。但我发现其实磁盘上的扇区没有被文件真正占用,也就是说,磁盘的使用率和resize事前的情况是一样的,使用df 查看。只是在ls -l查看文件属性的时候发现,这个文件的长度是1G的大小。
我的问题是:resize的原理是什么,当我真正往这个文件写数据的时候,分配的磁盘扇区会连续的吗?
请各位大哥帮忙解答下,O(∩_∩)O谢谢。