*Set the seed for a pseudo-random number generator*

#include <stdlib.h> void srandom( unsigned intseed);

*seed*- The seed of the sequence of pseudo-random integers.

`libc`

Use the ` -l c` option to

This function is in libc.a, but not in libc.so
(in order to save space). |

The *srandom()* function initializes the current state array
using the value of *seed*.

Use this function in conjunction with the following:

*initstate()*- Initialize the state of the pseudo-random number generator.
*random()*- Generate a pseudo-random number using a default state.
*setstate()*- Specify the state of the pseudo-random number generator.

The *random()* and *srandom()* functions have
(almost) the same calling sequence and initialization properties as
*rand()*
and
*srand()*
Unlike *srand()*, *srandom()* doesn't return
the old seed
because the amount of state information used is much more
than a single word. The *initstate()* and *setstate()*
routines are provided to deal
with restarting/changing random number generators. With 256
bytes of state information, the period of the random-number
generator is greater than 2^{69}.

Like *rand()*, *random()* produces by default a
sequence of numbers that can be duplicated by calling *srandom()*
with 1 as the seed.

After initialization, a state array can be restarted at a different point in one of two ways:

- The
*initstate()*function can be used, with the desired seed, state array, and size of the array. - The
*setstate()*function, with the desired state, can be used, followed by*srandom()*with the desired seed. The advantage of using both of these functions is that the size of the state array does not have to be saved once it is initialized.

Safety: | |
---|---|

Cancellation point | No |

Interrupt handler | No |

Signal handler | No |

Thread | No |

*drand48()*,
*initstate()*,
*rand()*,
*random()*,
*setstate()*,
*srand()*