バイナリ データをファイルまたは .xml に書き込む関数がありますstdout
。ただし、 への呼び出しはfwrite()
失敗することがありfflush(stderr)
ます。stderr
fwrite
これは正常な動作ですか、それとも根本的なメモリの問題を示していますか? しようとしているデータにアクセスするとfprint
すぐに「問題」が消えるため、デバッグが困難です。stderr
fwrite
stdout
これは、関数の非常に単純化されたバージョンです。
int writebinary(FILE *fpout, void *data, long ntowrite) {
long i;
/* lets say we know the input data is double float */
double *p = data;
/* including this test line makes the function work! */
for(i=0; i<ntowrite;i++) fprintf(stderr,"data[%d]=%g\n",i,p[i]);
/* attempt to write data[] as a single block of bytes */
m= fwrite(data,(size_t)(ntowrite*sizeof(double)),1,fpout);
if(m!=1) {
fprintf(stderr,"Write error: %d\n",ferror(fpout));
return(-1);
}
else return(m);
}
どんな知恵も感謝します:)