FreeBSD Manual Pages
rand(3C) 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 successive pseudo-random num- bers 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 se- quence of pseudo-random numbers to be returned by subsequent calls to rand(). If srand() is then called with the same seed value, the se- quence 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. If rand_r() is called with the same initial value for the object pointed to by seed and that object is not modified between successive calls to rand_r(), the same sequence as that produced by calls to rand() will be gener- ated. 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) func- tion provides a better, more elaborate random-number generator. When compiling multithreaded applications, the _REENTRANT flag must be defined on the compile line. This flag should be used only in multi- threaded applications. ATTRIBUTES See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |Safe | +-----------------------------+-----------------------------+ SEE ALSO drand48(3C), attributes(5), standards(5) SunOS 5.10 19 May 2004 rand(3C)
NAME | SYNOPSIS | DESCRIPTION | USAGE | ATTRIBUTES | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rand&sektion=3c&manpath=SunOS+5.10>