将无符号短值数组写入文件的最快方法是什么,然后在另一个应用程序中读取这些值的最快方法是什么?
此外,这将是一台运行雪豹的苹果机器。
答案 0 :(得分:4)
如果您不担心跨平台兼容性,只需将它们全部写成二进制文件:
int save_shorts(const unsigned short* array, size_t num_shorts)
{
int ok = 0;
FILE* out = fopen("numbers.bin", "wb");
if (out != NULL)
{
ok = fwrite(array, num_shorts * sizeof *array, 1, out) == 1;
fclose(out);
}
return ok;
}
回读它们非常类似,当然还有fread()
。你也可以使用C ++(二进制)流,但这很简单。
答案 1 :(得分:1)
这有很多种方法,从简单的文件I / O开始,以任何格式(zlib?)压缩内存中的数据,然后将其写入文件。这取决于你。
答案 2 :(得分:1)
你不能比将文件映射到内存并写入内存更快。这避免了stdio缓冲和在用户空间和内核之间复制数据。