Voici le code:Lit/dev/urandom thread-safe?
unsigned int number;
FILE* urandom = fopen("/dev/urandom", "r");
if (urandom) {
size_t bytes_read = fread(&number, 1, sizeof(number), urandom);
DCHECK(bytes_read == sizeof(number));
fclose(urandom);
} else {
NOTREACHED();
}
Sinon, comment puis-je faire thread-safe?
De toute évidence, il devrait être sûr, pour des raisons de santé mentale, mais je ne peux rien trouver dans l'homme 4 aléatoire qui spécifie qu'il est. Par exemple, si Urandom est revenu en mode PRNG, deux appelants simultanés pourraient-ils voir la même sortie autrement que par hasard? Sûrement pas, mais où les docs ne disent-ils pas? –
"Voir la même sortie" est un cas particulier de "random". :-) –
@SteveJessop: La documentation n'a pas besoin de dire que l'interface fonctionne. En outre, urandom n'a qu'un seul mode. –