OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / original / man3 / rand.3
diff --git a/original/man3/rand.3 b/original/man3/rand.3
deleted file mode 100644 (file)
index e1240cd..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
-.\"
-.\" %%%LICENSE_START(VERBATIM)
-.\" Permission is granted to make and distribute verbatim copies of this
-.\" manual provided the copyright notice and this permission notice are
-.\" preserved on all copies.
-.\"
-.\" Permission is granted to copy and distribute modified versions of this
-.\" manual under the conditions for verbatim copying, provided that the
-.\" entire resulting derived work is distributed under the terms of a
-.\" permission notice identical to this one.
-.\"
-.\" Since the Linux kernel and libraries are constantly changing, this
-.\" manual page may be incorrect or out-of-date.  The author(s) assume no
-.\" responsibility for errors or omissions, or for damages resulting from
-.\" the use of the information contained herein.  The author(s) may not
-.\" have taken the same level of care in the production of this manual,
-.\" which is licensed free of charge, as they might when working
-.\" professionally.
-.\"
-.\" Formatted or processed versions of this manual, if unaccompanied by
-.\" the source, must acknowledge the copyright and authors of this work.
-.\" %%%LICENSE_END
-.\"
-.\" 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 <nick@debian.org>
-.\"          with contribution from Francesco Potorti <F.Potorti@cnuce.cnr.it>
-.\" Modified 2003-11-15, aeb, added rand_r
-.\" 2010-09-13, mtk, added example program
-.\"
-.TH RAND 3 2014-01-18 "" "Linux Programmer's Manual"
-.SH NAME
-rand, rand_r, srand \- pseudo-random number generator
-.SH SYNOPSIS
-.nf
-.B #include <stdlib.h>
-.sp
-.B int rand(void);
-.sp
-.BI "int rand_r(unsigned int *" seedp );
-.sp
-.BI "void srand(unsigned int " seed );
-.fi
-.sp
-.in -4n
-Feature Test Macro Requirements for glibc (see
-.BR feature_test_macros (7)):
-.in
-.sp
-.BR rand_r ():
-_POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE
-.SH DESCRIPTION
-The
-.BR rand ()
-function returns a pseudo-random integer in the range 0 to
-.BR RAND_MAX
-inclusive (i.e., the mathematical range [0,\ \fBRAND_MAX\fR]).
-.PP
-The
-.BR srand ()
-function sets its argument as the seed for a new
-sequence of pseudo-random integers to be returned by
-.BR rand ().
-These sequences are repeatable by calling
-.BR srand ()
-with the same seed value.
-.PP
-If no seed value is provided, the
-.BR rand ()
-function is automatically seeded with a value of 1.
-.PP
-The function
-.BR rand ()
-is not reentrant or thread-safe, since it
-uses hidden state that is modified on each call.
-This might just be the seed value to be used by the next call,
-or it might be something more elaborate.
-In order to get reproducible behavior in a threaded
-application, this state must be made explicit;
-this can be done using the reentrant function
-.BR rand_r ().
-
-Like
-.BR rand (),
-.BR rand_r ()
-returns a pseudo-random integer in the range [0,\ \fBRAND_MAX\fR].
-The
-.I seedp
-argument is a pointer to an
-.IR "unsigned int"
-that is used to store state between calls.
-If
-.BR rand_r ()
-is called with the same initial value for the integer pointed to by
-.IR seedp ,
-and that value is not modified between calls,
-then the same pseudo-random sequence will result.
-
-The value pointed to by the
-.I seedp
-argument of
-.BR rand_r ()
-provides only a very small amount of state,
-so this function will be a weak pseudo-random generator.
-Try
-.BR drand48_r (3)
-instead.
-.SH RETURN VALUE
-The
-.BR rand ()
-and
-.BR rand_r ()
-functions return a value between 0 and
-.BR RAND_MAX
-(inclusive).
-The
-.BR srand ()
-function returns no value.
-.SH CONFORMING TO
-The functions
-.BR rand ()
-and
-.BR srand ()
-conform to SVr4, 4.3BSD, C89, C99, POSIX.1-2001.
-The function
-.BR rand_r ()
-is from POSIX.1-2001.
-POSIX.1-2008 marks
-.BR rand_r ()
-as obsolete.
-.SH NOTES
-The versions of
-.BR rand ()
-and
-.BR srand ()
-in the Linux C Library use the same random number generator as
-.BR random (3)
-and
-.BR srandom (3),
-so the lower-order bits should be as random as the higher-order bits.
-However, on older
-.BR rand ()
-implementations, and on current implementations on different systems,
-the lower-order bits are much less random than the higher-order bits.
-Do not use this function in applications intended to be portable
-when good randomness is needed.
-(Use
-.BR random (3)
-instead.)
-.SH EXAMPLE
-POSIX.1-2001 gives the following example of an implementation of
-.BR rand ()
-and
-.BR srand (),
-possibly useful when one needs the same sequence on two different machines.
-.sp
-.in +4n
-.nf
-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;
-}
-.fi
-.in
-.PP
-The following program can be used to display the
-pseudo-random sequence produced by
-.BR rand ()
-when given a particular seed.
-.in +4n
-.nf
-
-#include <stdlib.h>
-#include <stdio.h>
-
-int
-main(int argc, char *argv[])
-{
-    int j, r, nloops;
-    unsigned int seed;
-
-    if (argc != 3) {
-        fprintf(stderr, "Usage: %s <seed> <nloops>\\n", argv[0]);
-        exit(EXIT_FAILURE);
-    }
-
-    seed = atoi(argv[1]);
-    nloops = atoi(argv[2]);
-
-    srand(seed);
-    for (j = 0; j < nloops; j++) {
-        r =  rand();
-        printf("%d\\n", r);
-    }
-
-    exit(EXIT_SUCCESS);
-}
-.fi
-.in
-.SH SEE ALSO
-.BR drand48 (3),
-.BR random (3)
-.SH COLOPHON
-This page is part of release 3.79 of the Linux
-.I man-pages
-project.
-A description of the project,
-information about reporting bugs,
-and the latest version of this page,
-can be found at
-\%http://www.kernel.org/doc/man\-pages/.