forked from lda/telodendria
Add Rand man page.
This commit is contained in:
parent
6a593ab8a0
commit
6735c101ec
1 changed files with 44 additions and 0 deletions
44
man/man3/Rand.3
Normal file
44
man/man3/Rand.3
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
.Dd $Mdocdate: February 16 2023 $
|
||||||
|
.Dt RAND 3
|
||||||
|
.Os Telodendria Project
|
||||||
|
.Sh NAME
|
||||||
|
.Nm Rand
|
||||||
|
.Nd Thread-safe random numbers.
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In Rand.h
|
||||||
|
.Ft int
|
||||||
|
.Fn RandInt "unsigned int"
|
||||||
|
.Ft void
|
||||||
|
.Fn RandIntN "int *" "size_t" "unsigned int"
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
.Nm
|
||||||
|
is used for generating random numbers in a thread-safe way. Currently,
|
||||||
|
one seed is shared across all threads, which means only one thread can
|
||||||
|
generate random numbers at a time. In the future, a seed pool may be
|
||||||
|
maintained. The seed is initialized on the first call to a function
|
||||||
|
that needs it. It is initialized with the current timestamp,
|
||||||
|
the process ID, and the thread ID. These should be sufficiently random
|
||||||
|
sources, so the seed should be secure enough.
|
||||||
|
.Pp
|
||||||
|
.Fn RandInt
|
||||||
|
generates a single random integer between 0 and the passed value.
|
||||||
|
.Fn RandIntN
|
||||||
|
takes an integer pointer, a buffer size, and the maximum value a
|
||||||
|
random number is allowed to be. It generates the number of random
|
||||||
|
integers specified by the buffer size, and stores them at the passed
|
||||||
|
pointer. This allows a caller to get multiple random numbers at a
|
||||||
|
time, as each call to
|
||||||
|
.Fn RandInt
|
||||||
|
will have to lock and unlock a mutex, whereas
|
||||||
|
.Fn RandIntN
|
||||||
|
can obtain multiple random integers in a single pass.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
.Pp
|
||||||
|
.Fn RandInt
|
||||||
|
returns the value of
|
||||||
|
.Xr rand_r 3
|
||||||
|
with the internally-stored seed. The return value should be in the
|
||||||
|
range of 0 to RAND_MAX.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr Util 3 ,
|
||||||
|
.Xr rand 3
|
Loading…
Reference in a new issue