initstate_r man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

random(3)							     random(3)

NAME
       random, random_r, srandom, srandom_r, initstate, initstate_r, setstate,
       setstate_r - Generate pseudo-random number

SYNOPSIS
       int random(
	       void ); int srandom(
	       unsigned seed ); char *initstate(
	       unsigned int seed,
	       char *state,
	       size_t size ); char *setstate(
	       const char *state );

       The following functions are supported in	 order	to  maintain  backward
       compatibility with previous versions of the operating system.  int ran‐
       dom_r(
	       int *retval,
	       struct random_data *rand_data ); int srandom_r(
	       unsigned seed,
	       struct random_data *rand_data ); int initstate_r(
	       unsigned seed,
	       char *state,
	       int size,
	       char **retval,
	       struct random_data *rand_data ); int setstate_r(
	       char *state,
	       char **retval,
	       struct random_data *rand_data );

LIBRARY
       Standard C Library (libc)

PARAMETERS
       Specifies an initial seed value.	 Points to the array of state informa‐
       tion.   Specifies the size of the state information array.  Points to a
       place to store the random number.  Points to a random_data structure.

DESCRIPTION
       The random() and srandom() functions are random number generators  that
       have  virtually the same calling sequence and initialization properties
       as the rand() and srand() functions, but	 produce  sequences  that  are
       more  random.   The low 12 bits generated by rand() go through a cyclic
       pattern.	 All bits generated by random() are usable.  For example, ran‐
       dom()&01 produces a random binary value.

       The  random() function uses a nonlinear additive feedback random number
       generator employing a default state array size of 31 integers to return
       successive  pseudo-random numbers in the range from 0 to (2^31)-1.  The
       period of this random number generator is approximately	16*((2^31)-1).
       The  size of the state array determines the period of the random number
       generator.  Increasing the state array size increases the period.

       With a full 256 bytes of state information, the period of  the  random-
       number  generator  is greater than 2^69, which should be sufficient for
       most purposes.

       Like the rand() function, the random() function produces by  default  a
       sequence	 of  numbers  that  can be duplicated by calling the srandom()
       function with a value of 1 as the seed. The srandom() function,	unlike
       the  srand()  function, does not return the old seed because the amount
       of state information used is more than a single word.

       The initstate() and setstate() functions handle restarting and changing
       random-number  generators.  The	initstate()  function  allows  a state
       array, passed in as an argument, to be initialized for future use.  The
       size in bytes of the state array is used by the initstate() function to
       decide how sophisticated a random-number generator to use;  the	larger
       the state array, the more random the numbers.  Values for the amount of
       state information are 8, 32, 64,	 128,  and  256	 bytes.	  Amounts  are
       rounded down to the nearest known value. The seed parameter specifies a
       starting point for the random-number sequence and provides for restart‐
       ing  at	the same point.	 The initstate() function returns a pointer to
       the previous state information array.

       Once a state has been initialized, the setstate() function allows rapid
       switching  between states.  The array defined by the state parameter is
       used for further random-number generation until the  initstate()	 func‐
       tion  is	 called	 or the setstate() function is called again.  The set‐
       state() function returns a pointer to the previous state array.

       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 the sran‐
       dom() function 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 after it is initialized.

NOTES
       The random_r(), srandom_r(), initstate_r(), and setstate_r()  functions
       are the reentrant versions of the random(), srandom(), initstate(), and
       setstate() functions.  They are supported in order to maintain backward
       compatibility with previous versions of the operating system.

       Upon  successful	 completion,  the initstate_r() and setstate_r() func‐
       tions provide a pointer to the returned state in retval. The random_r()
       function	 provides  a  pointer to the returned random number in retval.
       Upon successful completion, the random_r(), srandom_r(), initstate_r(),
       and  setstate_r()  functions  return  a value of 0 (zero).  Upon error,
       they return a value of -1 and may set errno.

       Note that the srandom_r() function takes the rand_data structure, which
       should  first  be initialized by the initstate_r() function.  Note also
       that the rand_data.state parameter needs to be NULL  before  the	 init‐
       state_r() or setstate_r() functions are called.

RETURN VALUES
       Upon successful completion, the random() function returns a random num‐
       ber.

       Upon successful completion, the initstate()  and	 setstate()  functions
       return a pointer to the previous state information array. Upon error, a
       value of 0 (zero) is returned. If initstate() is called with size  less
       than 8, NULL is returned.

       Upon successful completion, the srandom() function returns success with
       a value of 0 (zero).  Upon failure, it returns -1 and  may  set	errno.
       The srandom() function initializes the state seed.

ERRORS
       If  the setstate() function detects that the state information has been
       damaged, an error message is written to standard error.

       If any of the following conditions occurs, the random_r(), srandom_r(),
       setstate_r(),  and initstate_r() functions set errno to the correspond‐
       ing value:  The	retval,	 rand_data,  state,  or	 seed  parameters  are
       invalid, or the state field of the rand_data structure is invalid.

SEE ALSO
       Functions: drand48(3), rand(3)

								     random(3)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net