我需要创建大的相对较大(1-8 GB)的文件.使用C或C++在Windows上执行此操作的最快方法是什么?我需要动态创建它们,速度确实是一个问题.文件将用于存储仿真,即将在不同的偏移量中随机访问,我需要预先分配所有存储但未初始化,目前我们正在使用虚拟数据写入所有存储,并且花费的时间太长.
谢谢.
创建一个c ++大约50 - 100 MB的平面文本文件,内容"添加第一行"应插入文件400万次
平台是ARM上的Ubuntu Linux。我想将字符串写入文件,但我希望每次都截断文件然后写入字符串,即不追加。
我有这个代码:
f=fopen("/home/user1/refresh.txt","w");
fputs( "{"some string",f);
fflush(f);
ftruncate(fileno(f),(off_t)0);
flcose(f);
Run Code Online (Sandbox Code Playgroud)
如果我运行它然后检查文件,它的长度将为零,并且打开时,其中将没有任何内容。如果我删除fflush呼叫,它不会是 0 (将是 11),当我打开它时,其中会出现“一些字符串”。这是正常行为吗?我调用没有问题fflush,但我想在循环中执行此操作,并且调用fflush可能会大大增加执行时间。