如何在C中快速创建大文件?

时间:2013-05-27 15:44:54

标签: c filesystems filesize ext3 ext2

我正在研究文件系统性能,我很难在C中快速创建一个非常大的文件。基本上,我试图通过获取此元数据并存储来重新创建文件系统的文件夹和文件把它变成一个文件。这是提取过程。后来,我想使用我之前提取的元数据将这些文件夹和文件恢复到现有的新制文件系统(在本例中为ext3)。

在还原过程中,我已经成功创建了所有文件夹。但是,我对如何立即创建文件有点困惑。对于我想要创建的每个文件,我都有文件大小和文件路径。我很困惑如何快速设置文件的大小。

我使用了truncate,但从文件系统的角度来看,这似乎并没有影响磁盘空间的使用。

谢谢!

2 个答案:

答案 0 :(得分:2)

#include < stdio.h >
#include < stdlib.h >

int main() {
    int i;
    FILE *fp;

    fp=fopen("bigfakefile.txt","w");

    for(i=0;i<(1024*1024);i++) {
        fseek(fp,(1024*1024), SEEK_CUR);
        fprintf(fp,"C");
    }

    fclose(fp);
    return 0;
}

答案 1 :(得分:0)

没有办法立即做到。

您需要将文件的每个块写在磁盘上,这将花费很长一段时间,特别是对于大文件。

相关问题