.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" .\" Modified 1993-03-29, David Metcalfe .\" Modified 1993-04-28, Lars Wirzenius .\" Modified 1993-07-24, Rik Faith (faith@cs.unc.edu) .\" Modified 1995-05-18, Rik Faith (faith@cs.unc.edu) to add .\" better discussion of problems with rand on other systems. .\" (Thanks to Esa Hyyti{ (ehyytia@snakemail.hut.fi).) .\" Modified 1998-04-10, Nicolás Lichtmaier .\" with contribution from Francesco Potorti .\" Modified 2003-11-15, aeb, added rand_r .\" 2010-09-13, mtk, added example program .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH rand 3 "20 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM rand, rand_r, srand \- Gnrateur de nombres pseudoalatoires .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBint rand(void);\fP \fBvoid srand(unsigned int \fP\fIgraine\fP\fB);\fP .PP \fB[[deprecated]] int rand_r(unsigned int *\fP\fIseedp\fP\fB);\fP .fi .PP .RS -4 Exigences de macros de test de fonctionnalités pour la glibc (consulter \fBfeature_test_macros\fP(7))\ : .RE .PP \fBrand_r\fP(): .nf Depuis la glibc 2.24 : _POSIX_C_SOURCE >= 199506L glibc 2.23 et antrieures _POSIX_C_SOURCE .fi .SH DESCRIPTION La fonction \fBrand\fP() renvoie un entier pseudoalatoire entre \fB0\fP et \fBRAND_MAX\fP, bornes incluses (c'est\-\-dire dans l'intervalle mathmatique [0,\\fBRAND_MAX\fP]). .PP La fonction \fBsrand\fP() utilise son argument comme \ graine\ pour la gnration d'une nouvelle squence de nombres pseudoalatoires qui seront fournis par \fBrand\fP(). Ces squences sont reproductibles en appelant \fBsrand\fP() avec la mme valeur de graine. .PP Si aucune graine originale n'est fournie, la fonction \fBrand\fP() commence en utilisant la valeur \fB1\fP. .PP La fonction \fBrand\fP() n'est pas rentrante, car elle utilise un tat cach modifi chaque appel. Il peut s'agir simplement de la valeur de graine alatoire pour l'appel suivant ou de quelque chose de plus compliqu. Afin d'obtenir un comportement reproductible dans une application threade, cet tat doit tre explicite; cela peut tre fait en utilisant la fonction rentrante \fBrand_r\fP(). .PP Comme \fBrand\fP(), \fBrand_r\fP() renvoie un entier pseudoalatoire dans l'intervalle [0,\ \fBRAND_MAX\fP]. L'argument \fIseedp\fP est un pointeur vers un \fIunsigned int\fP qui est utilis pour stocker l'tat entre des appels successifs. Si la fonction \fBrand_r\fP() est appele avec la mme valeur initiale pour l'entier point par \fIseedp\fP, et que cette valeur n'est pas modifie entre les appels, alors la mme squence pseudoalatoire sera gnre. .PP La valeur pointe par l'argument \fIseedp\fP de \fBrand_r\fP() ne fournit qu'une donne trs petite pour stocker la valeur d'tat, cette fonction sera donc un gnrateur pseudoalatoire faible. Essayez donc \fBdrand48_r\fP(3) sa place. .SH "VALEUR RENVOYÉE" Les fonctions \fBrand\fP() et \fBrand_r\fP() renvoient un nombre entier entre \fB0\fP et \fBRAND_MAX\fP, bornes incluses. La fonction \fBsrand\fP() ne renvoie aucune valeur. .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fBrand\fP(), \fBrand_r\fP(), \fBsrand\fP() T} Sécurité des threads MT\-Safe .TE .sp 1 .SH VERSIONS Les versions de \fBrand\fP() et \fBsrand\fP() de la bibliothqueC de Linux utilisent le mme gnrateur de nombres alatoires que \fBrandom\fP(3) et \fBsrandom\fP(3), ainsi les bits de poids faible sont tout aussi imprvisibles que les bits de poids fort. Ceci n'est pas le cas avec les anciennes implmentations de \fBrand\fP() ou d'actuelles implmentations sur des systmes diffrents, o les bits de poids faible n'taient pas \ aussi alatoires\ que ceux de poids fort. N'utilisez pas cette fonction dans des applications conues pour tre portables et lorsqu'un bon caractre alatoire est ncessaire. (Utilisez plutt \fBrandom\fP(3)) .SH STANDARDS .TP \fBrand\fP() .TQ \fBsrand\fP() C11, POSIX.1\-2008. .TP \fBrand_r\fP() POSIX.1\-2008. .SH HISTORIQUE .TP \fBrand\fP() .TQ \fBsrand\fP() SVr4, 4.3BSD, C89, POSIX.1\-2001. .TP \fBrand_r\fP() POSIX.1\-2001. Obsolete in POSIX.1\-2008. .SH EXEMPLES POSIX.1\-2001 fournit l'exemple suivant d'une implmentation de \fBrand\fP() et \fBsrand\fP() potentiellement utile lorsqu'on a besoin de la mme squence sur deux machines diffrentes. .PP .in +4n .EX static unsigned long next = 1; \& /* RAND_MAX assumed to be 32767 */ int myrand(void) { next = next * 1103515245 + 12345; return((unsigned)(next/65536) % 32768); } \& void mysrand(unsigned int seed) { next = seed; } .EE .in .PP Le programme suivant peut tre utilis pour afficher la squence pseudoalatoire produite par \fBrand\fP() avec une graine donne. Quand la graine est \fB\-1\fP, le programme utilise une graine alatoire. .PP .in +4n .\" SRC BEGIN (rand.c) .EX #include #include \& int main(int argc, char *argv[]) { int r; unsigned int seed, nloops; \& if (argc != 3) { fprintf(stderr, "Usage: %s \en", argv[0]); exit(EXIT_FAILURE); } \& seed = atoi(argv[1]); nloops = atoi(argv[2]); \& if (seed == \-1) { seed = arc4random(); printf("seed: %u\en", seed); } \& srand(seed); for (unsigned int j = 0; j < nloops; j++) { r = rand(); printf("%d\en", r); } \& exit(EXIT_SUCCESS); } .EE .\" SRC END .in .SH "VOIR AUSSI" \fBdrand48\fP(3), \fBrandom\fP(3) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par #-#-#-#-# min-002-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-003-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-004-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-010-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Thomas Vincent , #-#-#-#-# min-020-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud , #-#-#-#-# min-100-occurences.po (perkamon) #-#-#-#-#, Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot , Jean-Philippe MENGUAL , Jean-Pierre Giraud et # . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .