更快地写入文件的方式

问题描述:




目前,我在fprintf

函数的文件中写了一个带签名的long long:


签名long long * pData = NULL;

unsigned long long k = 0;

unsigned long DataAvail = 0;


pDataRx =(签名长long *)malloc(sizeof(签名长多头)*

(65536 * 16 * 8)/ 8);


for(k = 0; k< DataAvail / 8; k ++){

fprintf(pFilec,"%lli \ t",pData [k]);

}


问题是函数非常慢!


在几个论坛中,我看到fwrite函数更好,但是我不知道如何使用它。

你能帮助我吗?


Tk。

Hi,

Currently, I write an signed long long in a file with the fprintf
function:

signed long long * pData = NULL;
unsigned long long k = 0;
unsigned long DataAvail = 0 ;

pDataRx = (signed long long *) malloc ( sizeof(signed long long ) *
(65536*16*8) / 8);

for ( k = 0; k < DataAvail/8; k ++ ) {
fprintf ( pFilec, "%lli\t", pData[k]);
}

The problem is that function is very very slow !

In several forums, I saw that fwrite function is better, but I don''t
know how to use it.
Can you help me, please ?

Tk.

LilacSkin写道:
LilacSkin wrote:




目前,我在fprintf

函数的文件中写了一个带签名的long long:


签名l ong long * pData = NULL;

unsigned long long k = 0;

unsigned long DataAvail = 0;


pDataRx = (签名长long *)malloc(sizeof(签名长)*

(65536 * 16 * 8)/ 8);


for(k = 0; k< DataAvail / 8; k ++){

fprintf(pFilec,"%lli \ t",pData [k]);

}


问题是函数非常慢!


在几个论坛中,我看到fwrite函数更好,但我不是
知道如何使用它。

你能帮助我吗?
Hi,

Currently, I write an signed long long in a file with the fprintf
function:

signed long long * pData = NULL;
unsigned long long k = 0;
unsigned long DataAvail = 0 ;

pDataRx = (signed long long *) malloc ( sizeof(signed long long ) *
(65536*16*8) / 8);

for ( k = 0; k < DataAvail/8; k ++ ) {
fprintf ( pFilec, "%lli\t", pData[k]);
}

The problem is that function is very very slow !

In several forums, I saw that fwrite function is better, but I don''t
know how to use it.
Can you help me, please ?



size_t rc;

rc = fwrite(pData,sizeof * pData,1048576UL,pFilec);

if(rc!= 1048576){

puts(Write error。);

/ * ... * /

}

size_t rc;
rc = fwrite(pData, sizeof *pData, 1048576UL, pFilec);
if (rc != 1048576) {
puts("Write error.");
/* ... */
}


13fév,13:47,santosh< santosh .... @ gmail.comwrote:
On 13 fév, 13:47, santosh <santosh....@gmail.comwrote:

LilacSkin写道:
LilacSkin wrote:


Hi,


目前,我在fprintf

函数的文件中写了一个带符号的long long:
Currently, I write an signed long long in a file with the fprintf
function:


signed long long * pData = NULL;

unsigned long long k = 0;

unsigned long DataAvail = 0;
signed long long * pData = NULL;
unsigned long long k = 0;
unsigned long DataAvail = 0 ;


pDataRx =(签名长long *)malloc(sizeof(签名长多头)*

(65536 * 16 * 8)/ 8);
pDataRx = (signed long long *) malloc ( sizeof(signed long long ) *
(65536*16*8) / 8);


for(k = 0; k< DataAvail / 8; k ++){

fprintf(pFilec, "%lli \ t",pData [k]);

}
for ( k = 0; k < DataAvail/8; k ++ ) {
fprintf ( pFilec, "%lli\t", pData[k]);
}


问题是函数是非常慢!
The problem is that function is very very slow !


在几个论坛中,我看到fwrite函数更好,但我不知道
知道如何使用它。

你能帮帮我吗?
In several forums, I saw that fwrite function is better, but I don''t
know how to use it.
Can you help me, please ?



size_t rc;

rc = fwrite(pData,sizeof * pData,1048576UL,pFilec);

if(rc!= 1048576){

puts(Write error。);

/ * ... * /

}


size_t rc;
rc = fwrite(pData, sizeof *pData, 1048576UL, pFilec);
if (rc != 1048576) {
puts("Write error.");
/* ... */
}



它不起作用!

It''s not working !


LilacSkin写道:
LilacSkin wrote:

13fév,13:47,santosh< santosh .... @ gmail.comwrote:
On 13 fév, 13:47, santosh <santosh....@gmail.comwrote:

&gt ; LilacSkin写道:
>LilacSkin wrote:


Hi,


目前,我写了一个签名长的在一个带有fprintf的文件中

函数:
Currently, I write an signed long long in a file with the fprintf
function:


签长长* pData = NULL;

unsigned long long k = 0;

unsigned long DataAvail = 0;
signed long long * pData = NULL;
unsigned long long k = 0;
unsigned long DataAvail = 0 ;


pDataRx =(签名长long *)malloc(sizeof(签名长多头)*

(65536 * 16 * 8)/ 8);
pDataRx = (signed long long *) malloc ( sizeof(signed long long ) *
(65536*16*8) / 8);


for(k = 0; k< DataAvail / 8; k ++){

fprintf(pFilec, "%lli \ t",pData [k]);

}
for ( k = 0; k < DataAvail/8; k ++ ) {
fprintf ( pFilec, "%lli\t", pData[k]);
}


问题是函数是非常慢!
The problem is that function is very very slow !


在几个论坛中,我看到fwrite函数更好,但是我

我不知道如何使用它。

你能帮帮我吗?
In several forums, I saw that fwrite function is better, but I
don''t know how to use it.
Can you help me, please ?


size_t rc;
rc = fwrite(pData,sizeof * pData,1048576UL,pFilec);
if(rc!= 1048576){
puts(写错误。);
/ * ... * /
}


size_t rc;
rc = fwrite(pData, sizeof *pData, 1048576UL, pFilec);
if (rc != 1048576) {
puts("Write error.");
/* ... */
}



它不起作用!


It''s not working !



到底是怎么回事?您是否检查过elements参数是否正确?什么

是fcrite()调用后rc的值? pFilec是否指向

您有适当权限的有效流?

How exactly? Did you check that the elements parameter is correct? What
is the value that rc has after the fwrite() call? Is pFilec pointing to
a valid stream for which you have appropriate permissions?