manpages.info - online man pages   

SunOS man pages : rand (3)

Standard C Library Functions                             rand(3C)

NAME

rand, srand, rand_r - simple random-number generator

SYNOPSIS

#include <stdlib.h> int rand(void); void srand(unsigned int seed); int rand_r(unsigned int *seed);

DESCRIPTION

The rand() function uses a multiplicative congruential random-number generator with period 2**32 that returns suc- cessive pseudo-random numbers in the range of 0 to RAND_MAX (defined in <stdlib.h>). 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 to srand() 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 by the caller. The seed to be supplied is not the same seed as in srand().

USAGE

The spectral properties of rand() are limited. The drand48(3C) function provides a better, more elaborate random-number generator.

ATTRIBUTES

See attributes(5) for descriptions of the following attri- butes: ____________________________________________________________ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | |_____________________________|_____________________________| | MT-Level | See NOTES below. | |_____________________________|_____________________________|

SEE ALSO

drand48(3C), attributes(5)

NOTES

SunOS 5.8 Last change: 29 Dec 1996 1 Standard C Library Functions rand(3C) The rand_r() function is as proposed in the POSIX.4a Draft #6 document, and is subject to change to be compliant with the standard when it is accepted. The rand() is unsafe in multithreaded applications. The rand_r() function is MT-Safe, and should be used instead. The srand() function is unsafe in multithreaded applica- tions. When compiling multithreaded applications, the _REENTRANT flag must be defined on the compile line. This flag should only be used in multithreaded applications. SunOS 5.8 Last change: 29 Dec 1996 2