Сейчас вот так:
#define BXI_RAND_MULTIPLIER (1103515245)
#define BXI_RAND_INCREMENT (12345)
static u32 global_next = 1;
static void nextrand(void)
{
global_next = global_next * BXI_RAND_MULTIPLIER + BXI_RAND_INCREMENT;
}
void bxi_srand(u32 seed)
{
global_next = seed;
}
<...>
u8 bxi_randu8 (void)
{
nextrand();
return global_next % (U8_MAX + 1);
}
Проблема в том, что цикл всего 256 значений (просто каждое по одному разу) в итоге uuidv4'ы повторяются каждые 16 значений. Что можно с этим поделать и при этом не привязываясь к /dev/random?