RANDOM_R(3)

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 (consultez feature_test_macros(7)) :

random_r(), srandom_r(), initstate_r(), setstate_r() :
    _SVID_SOURCE || _BSD_SOURCE

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.

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.

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.

ATTRIBUTS

  Multithreading (consultez pthreads(7))
Les fonctions random_r(), srandom_r(), initstate_r() et setstate_r() sont sûres dans un contexte multithread.

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.70 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
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 à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».