Loading

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> ».