나는 분명히 뭔가를 놓치고 있습니다. 누군가 이것이 왜 일어날 지 설명해 주시겠습니까?왜 fclose에서 segfault가 발생합니까?
#define RANDOM_DEVICE "/dev/random"
int create_shared_secret(char * secret,int size)
{
FILE * file=NULL;
int RetVal;
file=fopen(RANDOM_DEVICE,"r");
if(!file)
{
printf("Unable to open random device %s\n",RANDOM_DEVICE);
exit(-1);
}
RetVal=fread(&secret,1,size,file);
if(RetVal!=size)
{
printf("Problem getting seed value\n");
exit(-1);
}
if(file) fclose(file); //segfault right here
return 0;
}
나는 그 바보 같은 짓을했다고 믿을 수가 없습니다. 감사. – Belrog
+1 정답과 좋은 설명의 우승 한 조합. –
@caf :'fread'는'void *'를 사용합니다. 경고 할 전환이 없습니다. –