Manpages

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 (voir 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.65 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 à <debian−l10n−french [AT] lists.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> ».