#include <stdlib.h> long random(void); void srandom(unsigned int graine); char *initstate(unsigned int graine, char état, size_t n); char *setstate(char *état);
Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :
random(), srandom(), initstate(), setstate():
_XOPEN_SOURCE >= 500
|| /* glibc >= 2.19 : */ _DEFAULT_SOURCE
|| /* glibc <= 2.19 : */ _SVID_SOURCE || _BSD_SOURCE
La fonction srandom() utilise son argument comme « graine » pour engendrer une nouvelle séquence de nombres pseudoaléatoires qui seront fournis lors des appels à random(). Ces séquences sont reproductibles en invoquant srandom() avec la même graine. Si aucune graine n'est fournie, aa fonction random() utilise automatiquement une graine originale de valeur 1.
La fonction initstate() permet d'initialiser une table d'états state pour l'utiliser avec random(). La taille n de la table est utilisée par initstate() pour déterminer le niveau de sophistication du générateur de nombres aléatoires. Plus grande est la table d'états, meilleurs seront les nombres aléatoires. Les valeurs « optimales » pour la taille de la table d'états n sont 8, 32, 64, 128 et 256 octets ; les autres montants seront arrondis au montant connu le plus proche. Utiliser moins de huit octets provoque une erreur. graine est la graine utilise pour l'initialisation, indiquant un point de départ pour la séquence de nombres aléatoires, et permet de redémarrer au même endroit.
La fonction setstate() modifie la table d'états utilisée par la fonction random(). La table d'états état est alors utilise comme générateur de nombres aléatoires jusqu'au prochain appel de initstate() ou setstate(). état doit d'abord être initialisée avec initstate() ou être le résultat d'un appel précédent à setstate().
La fonction initstate() renvoie un pointeur sur la table d'états précédente. En cas d'échec, elle renvoie NULL et errno contient le code d'erreur.
La fonction setstate() renvoie un pointeur sur la table d'états précédente. En cas d'échec, NULL est renvoyé et errno est défini pour indiquer l'erreur.
| Interface | Attribut | Valeur |
| random(), srandom(), initstate(), setstate() | Sécurité des threads | MT-Safe |
Pour une discussion plus théorique, qui aborde également en profondeur d'autres domaines, voir le chapitre 3 (Random Numbers) du livre de Donald E. Knuth The Art of Computer Programming, volume 2 (Seminumerical Algorithms), 2e éd. ; Reading, Massachusetts : Addison-Wesley Publishing Company, 1981.
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à