1. NOM▲
random_r, srandom_r, initstate_r, setstate_r - Générateur de nombres aléatoires réentrant
2. 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 (consultez feature_test_macros(7)) :
random_r(), srandom_r(), initstate_r(), setstate_r() :
_SVID_SOURCE || _BSD_SOURCE
3. DESCRIPTION ▲
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.
4. VALEUR RENVOYÉE ▲
Toutes ces fonctions renvoient 0 en cas de succès. En cas d'erreur, -1 est renvoyé et errno contient le code de l'erreur.
5. 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.
6. CONFORMITÉ ▲
Ces fonctions sont des extensions non standard de la glibc.
7. VOIR AUSSI ▲
8. COLOPHON ▲
Cette page fait partie de la publication 3.52 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/.
9. TRADUCTION ▲
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.
Nicolas François et l'équipe francophone de traduction de Debian (2006-2009). Nicolas François et l'équipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en écrivant à <>.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».