我正在尝试将持续的数据流(非常大)保存到二进制文件中。数据流是用生成的
find . -name "(pattern)" | xargs -L1 awk '{(smth)}' | ./translater
“转换器”是一个C代码,用于从第二个管道恢复数据流。
#include <stdio.h>
#include <stdlib.h>
int main() {
float buffer;
FILE *stream;
stream = fopen("output.bin", "wb");
while (scanf("%f", &buffer)==1) {
fwrite(&buffer, 1, sizeof(float), stream);
}
fclose(stream);
return (0);
}
这些组合效果很好,但生成 2GB 二进制文件需要很长时间(>3 小时)。为了加速它,我有什么可以改进的吗?