rand(3C) rand(3C)
NAME
rand, rand_r, srand - simple random-number generator
SYNOPSIS
#include <stdlib.h>
int rand(void);
void srand(unsigned int seed);
int rand_r(unsigned int *seed);
DESCRIPTION
rand uses a multiplicative congruent random-number generator
with period 232 that returns successive pseudo-random numbers
in the range from 0 to RAND_MAX (defined in stdlib.h).
rand_r computes a sequence of pseudo-random integers in the
range 0 to RAND_MAX. If rand_r is called with the same
initial value for seed and the value of seed is unchanged
between successive returns and calls to rand_r, then the same
sequence of random numbers are generated.
The function srand uses the argument seed as a seed for a new
sequence of pseudo-random numbers to be returned by subsequent
calls to the function rand. If the function srand is then
called with the same seed value, the sequence of pseudo-random
numbers will be repeated. If the function rand is called
before any calls to srand have been made, the same sequence
will be generated as when srand is first called with a seed
value of 1.
REFERENCES
drand48(3C)
NOTICES
The spectral properties of rand and rand_r are limited.
drand48(3C) provides a much better, though more elaborate,
random-number generator.
Each thread that accesses one of the functions drand48,
lrand48, mrand48, srand48, seed48, or lcong48 should be coded
as per the following example:
mutex_lock(I_am_using_drand48);
value = FUNCTION();
mutex_unlock(I_am_using_drand48);
where FUNCTION is one of those listed. The same mutex must be
used for all six functions.
Copyright 1994 Novell, Inc. Page 1