仍然無法生成隨機種子。這裏是我的代碼:從/ dev/random讀取隨機數(c)
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
double dev_random_seed(){
double randval;
FILE* f;
f = fopen("/dev/random", "r");
if(f == NULL){
fprintf(stderr, "WARNING: Failed to open /dev/random. Random seed defaults to 1. \n");
return 1;
}
fread(&randval, sizeof(double), 1, f);
fclose(f);
return randval;
}
int main(int argc, char** argv){
double arse = dev_random_seed();
printf("errno: %i\n",errno);
}
的輸出是:
errno: 22
這是EINVAL。不能發現錯誤
,我吮吸c。
只是要一清二楚,你也看到了「警告」消息或者只是errno? – 2012-08-03 15:21:46
只有在發生某些故障時纔會查詢「errno」。我看不到'main()'可以知道如何檢查'errno'? – hmjd 2012-08-03 15:22:22
這是一個最小的工作示例,顯示代碼將errno設置爲22,原因不明。 – Lucas 2012-08-03 15:23:17