我定义了一个结构来存放一个位置信息,一个位置信息里面有10多项内容
stuct position{
int a;
int b;
char c;
short d;
.....
}
然后用write的方法把它写到一个imform.dat的文件中,现在我是收到一条就写一条,一秒钟有20条左右,所以这样执行起来很慢很好资源,我设想能不能每收到一个位置信息先把它赋给一个数组或者什么方式实现每收到1000条进行一此write操作呢。请教一下,具体怎么做较好呢,贴一点示例的代码。谢谢了。
stuct position{
int a;
int b;
char c;
short d;
.....
}
然后用write的方法把它写到一个imform.dat的文件中,现在我是收到一条就写一条,一秒钟有20条左右,所以这样执行起来很慢很好资源,我设想能不能每收到一个位置信息先把它赋给一个数组或者什么方式实现每收到1000条进行一此write操作呢。请教一下,具体怎么做较好呢,贴一点示例的代码。谢谢了。
或者
先打开文件
然后接收到一条数据就write到文件去
到最后在close
{
定义一个vector;//这里切不要定义成静态的?要不然怎么保存数据呢,希望能尝试这样实现一次}
我说忘了,我就是这么做的,是最后关的,这样收一条写一条到文件 与 收一条写一条到一个数组,然后到了一定数目一次性写哪个效率高呢。还有就是接下来我还要做,一个程序将这个.dat文件读出来,要是一直不close,影响不影响,读取软件的读取呢?
一条条的写:
定义一个100维的结构体数组struct *** data_Arr[100]
for(i=0;i<100;i++)
{
fwrite((void *)(data_Arr[i]),sizeof(struct ***),1,fp);
}
一下子写完:
分配一个100个结构体大小的空间void *pData,收到一个数据就往里面memncpy
满了之后 fwrite(pData, sizeof(struct ***),100,fp);