[ новости /+++ | форум | wiki | теги | ]

### Интерактивная система просмотра системных руководств (man-ов)

 Тема Набор Категория Solaris man FreeBSD man Разные man Русские man Linux man POSIX man All 1 2 3 4 5 6 7 8 9 [Cписок руководств | Печать]
rand (3)
• rand (1) ( Solaris man: Команды и прикладные программы пользовательского уровня )
• rand (1) ( Linux man: Команды и прикладные программы пользовательского уровня )
• >> rand (3) ( Solaris man: Библиотечные вызовы )
• rand (3) ( FreeBSD man: Библиотечные вызовы )
• rand (3) ( Русские man: Библиотечные вызовы )
• rand (3) ( Linux man: Библиотечные вызовы )
• rand (3) ( POSIX man: Библиотечные вызовы )
•

## 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 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 subsequent 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. 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 generated.

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 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 multithreaded applications.

## ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

 ATTRIBUTE TYPE ATTRIBUTE VALUE Interface Stability Standard MT-Level

drand48(3C), attributes(5), standards(5)

NAME
SYNOPSIS
DESCRIPTION
USAGE
ATTRIBUTES