如何填写具有给定数字的二进制文件?

时间:2012-08-21 08:00:33

标签: linux file-io mmap memcpy

在我的系统中,有很多用于存储矩阵的二进制文件。当创建这样的文件时,它必须填充一些值,即对于具有float个数字的矩阵的NAN。有没有很好的解决方案来加快这个过程?

目前的解决方案是这样的:这些文件使用mmap()进行内存映射,因此文件由memcpy填充,如下所示:

float v = NAN;
for (i=0; i<n; ++i){
  memcpy(start+i, &v, sizeof(v));
}

其中n是矩阵中元素的数量,start是内存映射地址。

我使用memcpy代替buff[i] = NAN,因为矩阵元素的类型可能不同。

在这种情况下批量复制会有帮助吗?例如,我可以在内存中创建一个填充NAN的缓冲区,然后将缓冲区复制到start。对缓冲区的大小有什么建议吗?

0 个答案:

没有答案