diff --git a/main.c b/main.c index 8987058..143f2bb 100644 --- a/main.c +++ b/main.c @@ -18,13 +18,28 @@ #include "sud.h" +#include #include #include -#include + +static uint32_t getseed(void) +{ + FILE *urandom = fopen("/dev/urandom", "rb"); + if (urandom == NULL) + fprintf(stderr, "Failed to open /dev/urandom\n"); + + uint32_t seed = 0; + for (unsigned i = 0; i < 4; ++i) + seed = seed << 8 | fgetc(urandom); + + fclose(urandom); + + return seed; +} int main(void) { - unsigned seed = time(NULL); + uint32_t seed = getseed(); printf("Seed: %u\n\n", seed); srand(seed);