NOM
random_r, srandom_r, initstate_r, setstate_r - Générateur de nombres
aléatoires réentrant
SYNOPSIS
#include <stdlib.h>
int random_r(struct random_data *buf, int32_t *result);
int srandom_r(unsigned int seed, struct random_data *buf);
int initstate_r(unsigned int seed, char *statebuf,
size_t statelen, struct random_data *buf);
int setstate_r(char *statebuf, struct random_data *buf);
Exigences de macros de test de fonctionnalités pour la glibc (voir
feature_test_macros(7)) :
random_r(), srandom_r(), initstate_r(), setstate_r() : _SVID_SOURCE ||
_BSD_SOURCE
Ces fonctions sont les équivalents réentrants des fonctions décrites
dans random(3). Elles sont appropriées à l’utilisation dans des
programmes multithreadés où chaque thread doit pouvoir obtenir une
séquence indépendante et reproductible de nombres aléatoires.
La fonction random_r() est identique à random(3), excepté qu’au lieu
d’utiliser l’information d’état maintenue dans une variable globale,
elle utilise l’information d’état située dans l’argument pointé par
buf. Le nombre aléatoire généré est renvoyé dans l’argument result.
La fonction srandom_r() est identique à srandom(3), excepté qu’elle
initialise la graine du générateur de nombre aléatoire dont l’état est
maintenu dans l’objet pointé par buf, au lieu de la graine associée à
la variable d’état globale.
La fonction initstate_r() est identique à initstate(3) excepté qu’elle
initialise l’état dans l’objet pointé par buf, plutôt que d’initialiser
la variable d’état globale.
La fonction setstate_r() est identique à setstate(3) excepté qu’elle
modifie l’état dans l’objet pointé par buf, plutôt que de modifier la
variable d’état globale.
VALEUR RENVOYÉE
Toutes ces fonctions renvoient 0 si elles réussissent, ou -1 si une
erreur se produit.
ERREURS
EINVAL Une table d’états de moins de 8 octets a été fournie à
initstate_r().
EINVAL Le paramètre statebuf ou buf de setstate_r() était NULL.
EINVAL Le paramètre buf ou result de random_r() était NULL.
CONFORMITÉ
Ces fonctions sont des extensions non standard de la glibc.
VOIR AUSSI
drand48(3), rand(3), random(3)
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et est maintenue par Nicolas
François <nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Nicolas François
<nicolas.francois@centraliens.net> et l’équipe francophone de
traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».