0

我正在研究文件系统性能,但我对如何在 C 中快速创建一个非常大的文件感到困惑。基本上,我试图通过获取这些元数据并将其存储到一个文件系统的文件夹和文件中来重新创建一个文件。这是提取过程。稍后,我想使用我之前提取的元数据将这些文件夹和文件恢复到现有的新文件系统(在本例中为 ext3)。

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

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

谢谢!

4

2 回答 2

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;
}
于 2013-05-27T15:52:35.010 回答
1

没有办法立即做到这一点。

您需要将文件的每个块都写入磁盘,这将花费大量时间,尤其是对于大文件。

于 2013-05-29T23:39:13.643 回答