table of contents
RANDOM_R(3) | Manuel du programmeur Linux | 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() :
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¶
CONFORMITɶ
Ces fonctions sont des extensions non standard de la glibc.
VOIR AUSSI¶
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/.
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> ».
19 avril 2013 | GNU |