Loading...
--- Libc/Libc-763.13/stdlib/FreeBSD/random.3
+++ Libc/Libc-825.26/stdlib/FreeBSD/random.3
@@ -32,32 +32,45 @@
.Dt RANDOM 3
.Os
.Sh NAME
+.Nm initstate ,
.Nm random ,
+.Nm setstate ,
.Nm srandom ,
-.Nm srandomdev ,
-.Nm initstate ,
-.Nm setstate
+.Nm srandomdev
.Nd better random number generator; routines for changing generators
.Sh LIBRARY
.Lb libc
.Sh SYNOPSIS
.In stdlib.h
+.Ft char *
+.Fo initstate
+.Fa "unsigned seed"
+.Fa "char *state"
+.Fa "size_t size"
+.Fc
.Ft long
-.Fn random void
+.Fo random
+.Fa void
+.Fc
+.Ft char *
+.Fo setstate
+.Fa "const char *state"
+.Fc
.Ft void
-.Fn srandom "unsigned long seed"
+.Fo srandom
+.Fa "unsigned seed"
+.Fc
.Ft void
-.Fn srandomdev void
-.Ft char *
-.Fn initstate "unsigned long seed" "char *state" "long n"
-.Ft char *
-.Fn setstate "char *state"
+.Fo srandomdev
+.Fa void
+.Fc
.Sh DESCRIPTION
The
.Fn 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
+uses a non-linear, additive feedback, random number generator, employing a
+default table of size 31 long integers.
+It returns successive pseudo-random
numbers in the range from 0 to
.if t 2\u\s731\s10\d\(mi1.
.if n (2**31)\(mi1.
@@ -78,7 +91,7 @@
.Xr rand 3
produces a much less random sequence \(em in fact, the low dozen bits
generated by rand go through a cyclic pattern.
-All the bits generated by
+All of the bits generated by
.Fn random
are usable.
For example,
@@ -87,18 +100,21 @@
value.
.Pp
Like
+.Xr srand 3 ,
+.Fn srandom
+sets the initial seed value for future calls to
+.Fn random .
+Like
.Xr rand 3 ,
.Fn random
will by default produce a sequence of numbers that can be duplicated
by calling
.Fn srandom
-with
-.Ql 1
-as the seed.
+with the same seed.
.Pp
The
.Fn srandomdev
-routine initializes a state array using the
+routine initializes a state array, using the
.Xr random 4
random number device which returns good random numbers,
suitable for cryptographic use.
@@ -123,7 +139,7 @@
the nearest known amount.
Using less than 8 bytes will cause an error.)
The seed for the initialization (which specifies a starting point for
-the random number sequence, and provides for restarting at the same
+the random number sequence and provides for restarting at the same
point) is also an argument.
The
.Fn initstate
@@ -162,7 +178,7 @@
With 256 bytes of state information, the period of the random number
generator is greater than
.if t 2\u\s769\s10\d,
-.if n 2**69
+.if n 2**69 ,
which should be sufficient for most purposes.
.Sh DIAGNOSTICS
If
@@ -171,11 +187,36 @@
.Fn setstate
detects that the state information has been garbled, error
messages are printed on the standard error output.
+.Sh LEGACY SYNOPSIS
+.Fd #include <stdlib.h>
+.Pp
+.Ft char *
+.br
+.Fo initstate
+.Fa "unsigned long seed"
+.Fa "char *state"
+.Fa "long size"
+.Fc ;
+.Pp
+.Ft char *
+.br
+.Fo setstate
+.Fa "char *state"
+.Fc ;
+.Pp
+.Ft void
+.br
+.Fo srandom
+.Fa "unsigned long seed"
+.Fc ;
+.Pp
+The type of each parameter is different in the legacy version.
.Sh SEE ALSO
.Xr arc4random 3 ,
.Xr rand 3 ,
.Xr srand 3 ,
-.Xr random 4
+.Xr random 4 ,
+.Xr compat 5
.Sh HISTORY
These
functions appeared in