Standard C Library Functions rand(3C)
NAME
rand, srand, rand_r - simple random-number generator
SYNOPSIS
#include
int rand(void);void srand(unsigned int seed);
int rand_r(unsigned int *seed);
DESCRIPTION
The rand() function uses a multiplicative congruentialrandom-number generator with period 2^32 that returns suc-
cessive pseudo-random numbers in the range of 0 to RAND_MAX
(defined in). The srand() function uses the argument seed as a seed for a
new sequence of pseudo-random numbers to be returned by sub-
sequent calls to rand(). If srand() is then called with the
same seed value, the sequence of pseudo-random numbers will
be repeated. If rand() is called before any calls tosrand() have been made, the same sequence will be generated
as when srand() is first called with a seed value of 1.
The rand_r() function has the same functionality as rand()
except that a pointer to a seed seed must be supplied bythe caller. If rand_r() is called with the same initial
value for the object pointed to by seed and that object isnot modified between successive calls to rand_r(), the same
sequence as that produced by calls to rand() will be gen-
erated.The rand() and srand() functions provide per-process
pseudo-random streams shared by all threads. The same effect
can be achieved if all threads call rand_r() with a pointer
to the same seed object. The rand_r() function allows a
thread to generate a private pseudo-random stream by having
the seed object be private to the thread.USAGE
The spectral properties of rand() are limited. The drand48(3C) function provides a better, more elaboraterandom-number generator.
SunOS 5.11 Last change: 19 May 2004 1
Standard C Library Functions rand(3C)When compiling multithreaded applications, the _REENTRANT
flag must be defined on the compile line. This flag should be used only in multithreaded applications.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | Safe |
|_____________________________|_____________________________|
| Standard | See standards(5). ||_____________________________|_____________________________|
SEE ALSO
drand48(3C), attributes(5), standards(5)SunOS 5.11 Last change: 19 May 2004 2