On Fri, 19 Jul 2019, Thomas Lowry wrote:
#include <gmp.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> int main(int argc, char** argv) { mpz_t b; mpz_init(b);//not sure why but without doing something before //the file IO the file write will segfault int len = 5; mpz_t l[5]; for(int i = 0; i < len; ++i) { mpz_init(l[i]); } for(int i = 0; i < len; ++i) { mpz_set_ui(l[i], 1); } for(int i = 0; i < len; ++i) { mpz_clear(l[i]); } FILE *file = fopen("numbers.dat", "wb"); if(file == NULL) { perror("Could not open numbers.dat for writing"); printf ("Error no is : %d\n", errno); exit(EXIT_FAILURE); } for(int i = 1; i < 4; ++i) { printf("writing "); mpz_set_ui(b, i); //mpz_pow_ui(b, b, 1<<5); mpz_out_str(stdout, 16, b); printf(" to file\n"); mpz_out_raw(b, file); } fclose(file); printf("write finished\n"); file = fopen("numbers.dat", "rb"); for(int i = 1; i < 4; ++i) { printf("reading "); mpz_inp_raw(b, file); mpz_out_str(stdout, 16, b); printf(" from file\n"); } fclose(file); mpz_clear(b); return 0; } I compile this with gcc test.c -lgmp
Try adding -Wsystem-headers (then swap the order of the includes, then look at the new warning) -- Marc Glisse _______________________________________________ gmp-bugs mailing list [email protected] https://gmplib.org/mailman/listinfo/gmp-bugs
