Provided by: manpages-pt-dev_20040726-4_all bug

NAME

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

SYNOPSIS

       #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);

DESCRIPTION

       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 16*((2**31)-1).

       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 initstate() 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  starting  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().

RETURN VALUE

       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.

ERRORS

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

NOTES

       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 nearest known amount.  Using less than  8
       bytes will cause an error.

CONFORMING TO

       BSD 4.3

SEE ALSO

       rand(3), srand(3)