こんな感じですがバスエラーになってgdbでも追いきれません。
何が悪いのか教えてください。よろしくお願いします。
int main(int argc, char *argv[]){
省略
mpz_init_set_str(a,"282578800148737",10); mpz_init_set_str(b,"0",10);
mpz_init_set_str(key,"10000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000001",2);
mpz_init_set_str(k2,"100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100000000010000000001000000000100011111",2);
for(i=1;i<1000;i++){if(mpz_probab_prime_p(key,2)==2){ gmp_printf("\n%Zd\n",key); break; mpz_add_ui(key,key,1); }
fg=fopen("an.txt","wb"); gmp_randseed_ui(0,123456);
while(1){
// bc= fread(s,sizeof(unsigned char),15,f);
for(i=0;i<15;i++){ mpz_inp_str(bb,f,0); mpz_mul_ui(bb,bb,256); }
if(bc<15 && bc!=0){ for(i=bc;i<15;i++) s[i]=0; }
if(bc==15){ mpz_mul(b,key,bb); mpz_urandomb(a,0,(long unsigned int)120); mpz_urandomb(d,0,(long unsigned int)256); mpz_add(c,b,a); mpz_xor(c,c,d); mpz_out_raw(ff,c);
// fwrite(m,sizeof(unsigned int),8,ff);
mpz_xor(c,c,d); mpz_mod(d,c,key); mpz_sub(c,c,d); mpz_div(e,c,key); mpz_out_raw(fg,e);
// fwrite(k,sizeof(unsigned char),15,fg); }
/* padding
if(bc<15 && feof(f)==1){ while(1){ if(bc<15)
// ...
break; } }
*/
fclose(f); fclose(ff); fclose(fg);
}