static bool HAS_URANDOM = true; // Global
unsigned int random_uint() {
unsigned int r_uint;
FILE *f;
f = fopen("/dev/urandom", "r");
if (f == NULL) {
if (HAS_URANDOM) {
printf("Failed loading random generator device /dev/urandom. Defaulting to rand().");
srand(time(NULL));
HAS_URANDOM = false;
}
r_uint = (unsigned int) rand();
} else {
fread(&r_uint, sizeof(r_uint), 1, f);
fclose(f);
}
return r_uint;