RANDOM(3)                  Linux Programmer's Manual                 RANDOM(3)

       random, srandom, initstate, setstate - random number generator.

       #include <stdlib.h>

       long int random(void);
       void srandom(unsigned int seed);
       char *initstate(unsigned int seed, char *state, size_t n);
       char *setstate(char *state);

       The random() function uses a non-linear additive feedback random number
       generator employing a default table of size 31 long integers to  return
       successive  pseudo-random numbers in the range from 0 to RAND_MAX.  The
       period of this random number generator  is  very  large,  approximately

       The srandom() function sets its argument as the seed for a new sequence
       of pseudo-random integers to be returned by random().  These  sequences
       are  repeatable  by  calling srandom() with the same seed value.  If no
       seed value is provided, the random() function is  automatically  seeded
       with a value of 1.

       The  initstate()  function allows a state array state to be initialized
       for use by random().  The size of the state array n is  used  by  init-
       state() to decide how sophisticated a random number generator it should
       use  the larger the state array, the better the  random  numbers  will
       be.   seed is the seed for the initialization, which specifies a start-
       ing point for the random number sequence, and provides  for  restarting
       at the same point.

       The  setstate()  function  changes the state array used by the random()
       function.  The state array state is used for random  number  generation
       until  the  next  call  to initstate() or setstate().  state must first
       have been initialized using initstate() or be the result of a  previous
       call of setstate().

       The  random()  function  returns  a  value between 0 and RAND_MAX.  The
       srandom() function returns no value.  The  initstate()  and  setstate()
       functions  return  a  pointer  to  the previous state array, or NULL on

       EINVAL A state array of less than 8 bytes was specified to initstate().

       Current  "optimal"  values for the size of the state array n are 8, 32,
       64, 128, and 256 bytes; other amounts will be rounded down to the near-
       est known amount.  Using less than 8 bytes will cause an error.

       BSD 4.3

       rand(3), srand(3)

GNU                               2000-08-20                         RANDOM(3)