3

タイプ mpf_t または mpz_t の GMP オブジェクトを C のファイルに保存するにはどうすればよいですか? または、これらの型に割り当てられたメモリのブロックにアクセスして、ファイルに直接書き込むにはどうすればよいですか?

編集

fwrite(&gmp_obj->_mp_size, sizeof(long), 1, fout);
fwrite(&gmp_obj->_mp_prec, sizeof(long), 1, fout);
fwrite(&gmp_obj->_mp_exp, sizeof(long), 1, fout);
fwrite(gmp_obj->_mp_d, sizeof(long), gmp_obj->_mp_size, fout);
4

1 に答える 1

7

GMPのI/O機能を利用できます。の場合mpf_t:

— 機能: size_t mpf_out_str (FILE *stream, int base, size_t n_digits, mpf_t op)
— 機能:size_t mpf_inp_str (mpf_t rop, FILE *stream, int base)

の場合mpz_t:

— 機能: size_t mpz_out_str (FILE *stream, int base, mpz_t op)
— 機能: size_t mpz_inp_str (mpz_t rop, FILE *stream, int base)
— 機能: size_t mpz_out_raw (FILE *stream, mpz_t op)
— 機能:size_t mpz_inp_raw (mpz_t rop, FILE *stream)

に加えて、別のセクションで説明されて*_rawいるバイナリのインポート/エクスポート機能があります) 。mpz_t

— 機能: void mpz_import (mpz_t rop, size_t count, int order, size_t size, int endian, size_t nails, const void *op)
— 機能:void * mpz_export (void *rop, size_t *countp, int order, size_t size, int endian, size_t nails, mpz_t op)

于 2013-08-05T23:04:21.840 に答える