dwww Home | Manual pages | Find package

arc4random(3)              Library Functions Manual              arc4random(3)

NAME
       arc4random,  arc4random_uniform, arc4random_buf - cryptographically-se-
       cure pseudorandom number generator

LIBRARY
       Standard C library (libc, -lc)

SYNOPSIS
       #include <stdlib.h>

       uint32_t arc4random(void);
       uint32_t arc4random_uniform(uint32_t upper_bound);
       void arc4random_buf(void buf[.n], size_t n);

DESCRIPTION
       These functions give cryptographically-secure pseudorandom numbers.

       arc4random() returns a uniformly-distributed value.

       arc4random_uniform() returns a uniformly-distributed  value  less  than
       upper_bound (see BUGS).

       arc4random_buf()  fills  the  memory pointed to by buf, with n bytes of
       pseudorandom data.

       The rand(3) and drand48(3) families of functions should  only  be  used
       where  the  quality  of  the  pseudorandom numbers is not a concern and
       there's a need for repeatability of the results.  Unless you meet  both
       of those conditions, use the arc4random() functions.

RETURN VALUE
       arc4random() returns a pseudorandom number.

       arc4random_uniform()  returns  a  pseudorandom  number  less  than  up-
       per_bound for valid input, or 0 when upper_bound is invalid.

ATTRIBUTES
       For an  explanation  of  the  terms  used  in  this  section,  see  at-
       tributes(7).

       ┌────────────────────────────────────────────┬───────────────┬─────────┐
       │InterfaceAttributeValue   │
       ├────────────────────────────────────────────┼───────────────┼─────────┤
       │arc4random(), arc4random_uniform(),         │ Thread safety │ MT-Safe │
       │arc4random_buf()                            │               │         │
       └────────────────────────────────────────────┴───────────────┴─────────┘

STANDARDS
       These nonstandard functions are present on several Unix systems.

BUGS
       An upper_bound of 0 doesn't make sense in  a  call  to  arc4random_uni-
       form().   Such  a call will fail, and return 0.  Be careful, since that
       value is not less than upper_bound.  In some cases, such  as  accessing
       an array, using that value could result in Undefined Behavior.

SEE ALSO
       getrandom(3), rand(3), drand48(3), random(7)

Linux man-pages 6.03              2023-01-05                     arc4random(3)

Generated by dwww version 1.15 on Sat Jun 1 21:23:48 CEST 2024.