rand(3)

rand3

Bad random number generator

Usage

#include <stdlib.h>

int

rand(void);

int

rand_r(unsigned *seed);

void

srand(unsigned seed);

void

sranddev(void);

Library

Standard C Library (libc, -lc)

Overview

These interfaces are obsoleted by arc4random(3).

The rand() function computes a sequence of pseudo-random integers in the range of 0 to RAND_MAX (as defined by the header file ⟨stdlib.h⟩).

The srand() function sets its argument seed as the seed for a new sequence of pseudo-random numbers to be returned by rand(). These sequences are repeatable by calling srand() with the same seed value.

If no seed value is provided, the functions are automatically seeded with a value of 1.

The sranddev() function initializes a seed, using the random(4) random number device which returns good random numbers. However, the rand() function still remains unsuitable for cryptographic use.

The rand_r() function provides the same functionality as rand(). A pointer to the context value seed must be supplied by the caller.

Releases

157 releases since Mac OS X 10.0; the text changed 6 times.

  1. 10.0–10.0.4
  2. 10.2–10.2.8
  3. 10.3–10.3.9
  4. 10.4–10.4.11
  5. 10.5–10.6.8
  6. 10.7–10.8.5
  7. 10.9–26.5

Standards

The rand() and srand() functions conform to ISO/IEC 9899:1990 (“ISO C90”).

The rand_r() function is as proposed in the POSIX.4a Draft #6 document.

From Libc 1752.120.2 in macOS 26.5. Parsed by carta from the page's mdoc source.