*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> rand_r (3)              
Title
Content
Arch
Section
 

rand(3)

Contents


NAME    [Toc]    [Back]

       rand, rand_r, srand - Generate pseudorandom numbers

SYNOPSIS    [Toc]    [Back]

       #include <stdlib.h>

       int rand(
               void ); int rand_r(
               unsigned int *seedptr ); void srand(
               unsigned int seed );

       The  following  function does not conform to current standards
 and is supported only for backward compatibility:

       int rand_r(
               unsigned int *seedptr,
               int *randval );

LIBRARY    [Toc]    [Back]

       Standard C Library (libc)

       Berkeley Compatibility Library (libbsd.a)

STANDARDS    [Toc]    [Back]

       Interfaces documented on this reference  page  conform  to
       industry  standards as follows:

       rand_r():  POSIX.1c

       rand(), srand():  XPG4, XPG4-UNIX

       Refer to the standards(5) reference page for more information
 about industry standards and associated tags.

PARAMETERS    [Toc]    [Back]

       Specifies an initial seed value.  Points to a seed  value,
       updated at each call.  Points to a place to store the random
 number.

DESCRIPTION    [Toc]    [Back]

       The rand() function returns successive  pseudorandom  numbers
 in the range from 0 (zero) to RAND_MAX.  The sequence
       of values returned depends on the seed value set with  the
       srand() function.  If rand() is called before any calls to
       srand() have been made, the same sequence will  be  generated
  as when srand() is first called with a seed value of
       1.

       The srand() function resets the random-number generator to
       a random starting point. The generator is initially seeded
       with  a value of 1.

       The rand() function is a very simple  random-number generator.
  Its spectral properties, the mathematical  measurement
 of how random the number sequence  is,  are  somewhat
       weak.

       [POSIX]  The rand_r() function is the reentrant version of
       the rand() function.  The  rand_r()  function  places  the
       seed  value  at  the  address  pointed to by seedptr,  and
       returns the random number.

       [Tru64 UNIX]  The obsolete version of the  rand_r()  function
  places   the seed value at the address pointed to by
       seedptr, and  places the  random  number  at  the  address
       pointed to by randval.

       See  the  drand48() and random() functions for more elaborate
 random-number generators that  have  better  spectral
       properties.

NOTES    [Toc]    [Back]

       The  rand()  function  is  not supported for multithreaded
       applications. Instead, its reentrant equivalent, rand_r(),
       should be used with multiple threads.

       The BSD version of the rand() function returns a number in
       the range 0 to (2^31)-1, rather than 0  to  (2^15)-1,  and
       can  be  used by compiling the code with the Berkeley Compatibility
 Library (libbsd.a).

       There are better random number generators, as noted above;
       however,  the  rand() and srand() functions are the interfaces
 defined for the ANSI C library.

       The following functions define the semantics of the rand()
       and srand() functions, and are included here to facilitate
       porting applications from different implementations:

       static unsigned int next = 1; int myrand(void) {
               next = next * 1103515245 + 12345;
               return (  (next >>16) & RAND_MAX); } void  mysrand
       (unsigned int seed) { next = seed }

RETURN VALUES    [Toc]    [Back]

       The  rand()  function returns the next pseudorandom number
       in the sequence.

       [POSIX]  The rand_r function returns the next random  number
 in the sequence.

       [Tru64  UNIX]  Upon  successful  completion,  the obsolete
       version of the rand_r() function  returns  a  value  of  0
       (zero).  Otherwise,  -1  is  returned  and errno is set to
       indicate the error.

       The srand() function returns no value.

ERRORS    [Toc]    [Back]

       [Tru64 UNIX]  If the rand_r() function fails, errno may be
       set to the following value: Either seedptr or randval is a
       null pointer.

SEE ALSO    [Toc]    [Back]

      
      
       Functions: drand48(3), random(3)

       Standards: standards(5)



                                                          rand(3)
[ Back ]
 Similar pages
Name OS Title
random IRIX 0- generate pseudorandom numbers from a seed
random_number IRIX Returns pseudorandom numbers
lcong48 Tru64 Generate uniformly distributed pseudorandom number sequences
lcong48_r Tru64 Generate uniformly distributed pseudorandom number sequences
seed48_r Tru64 Generate uniformly distributed pseudorandom number sequences
lrand48 Tru64 Generate uniformly distributed pseudorandom number sequences
lrand48_r Tru64 Generate uniformly distributed pseudorandom number sequences
mrand48_r Tru64 Generate uniformly distributed pseudorandom number sequences
mrand48 Tru64 Generate uniformly distributed pseudorandom number sequences
nrand48 Tru64 Generate uniformly distributed pseudorandom number sequences
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service