4 倍精度の quadmath ライブラリを使用しています。fwrite 関数を使用してバイナリ ファイルに書き込むことはできますか?
struct rec
{
__float128 mydata;
}
struct rec my_record;
mydata=1.41421356237309504880q;
fwrite(&my_record, sizeof(struct rec), 1, myfile);
4 倍精度の quadmath ライブラリを使用しています。fwrite 関数を使用してバイナリ ファイルに書き込むことはできますか?
struct rec
{
__float128 mydata;
}
struct rec my_record;
mydata=1.41421356237309504880q;
fwrite(&my_record, sizeof(struct rec), 1, myfile);
ファイルへの書き込みに問題はないはずです。同じ方法で (つまり を使用してfread
) 読み取り、ファイルがマシン間でコピーされない限り、問題はありません。
これを行うために値を構造体にカプセル化する必要もありません。
__float128 mydata;
int rval;
mydata=1.41421356237309504880q;
rval = fwrite(&mydata, sizeof(mydata), 1, myfile);
if (rval < 1) {
perror("failed to write record");
}
...
rval = fread(&mydata, sizeof(mydata), 1, myfile);
if (rval < 1) {
perror("failed to read record");
}