Converting array to mpz_t

Michel Bardiaux mbardiaux at
Fri Jan 30 10:46:34 CET 2004

XiChimos wrote:

> I am doing a network program that reads data off of a socket and puts it 
> into an array.  How would I read in this data that is in the raw format, 
> as spit out by mpz_out_raw(), into an mpz_t?  It is probably trivial, 
> but it needs to be an efficient method.  I am not using mpz_inp_str() 
> because it has a maximum base of 36, and I assume raw is base 2^8.  
> Thanks for the help.
> Chris

The lack of memory-resident files in C is indeed very annoying. This 
could work:

Open a pipe(2)
write(2) the mpz_out_raw data on pipe[1]
fdopen a stream on pipe[0]
call mpz_inp_raw

Alternative solution: socket and dup instead of pipe.

Of course this will fail if the raw data is too large. I dont know if 
setsockopt would work on a pipe. But it should work on a socket.

Michel Bardiaux
Peaktime Belgium S.A.  Bd. du Souverain, 191  B-1160 Bruxelles
Tel : +32 2 790.29.41

More information about the gmp-discuss mailing list