logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

arc4random, arc4random_uniform, arc4random_buf - cryptographically-secure pseudorandom number generator

Attributes

       For an explanation of the terms used in this section, see attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────────┬───────────────┬─────────┐
       │ InterfaceAttributeValue   │
       ├─────────────────────────────────────────────────────────────────────────────┼───────────────┼─────────┤
       │ arc4random(), arc4random_uniform(), arc4random_buf()                        │ Thread safety │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────────┴───────────────┴─────────┘

Bugs

       An upper_bound of 0 doesn't make sense in a call to arc4random_uniform().  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.

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.

History

       OpenBSD 2.1, FreeBSD 3.0, NetBSD 1.6, DragonFly 1.0, libbsd, glibc 2.36.

Library

       Standard C library (libc, -lc)

Name

       arc4random, arc4random_uniform, arc4random_buf - cryptographically-secure pseudorandom number generator

Return Value

arc4random() returns a pseudorandom number.

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

See Also

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

Linux man-pages 6.9.1                              2024-05-02                                      arc4random(3)

Standards

       BSD.

Synopsis

#include<stdlib.h>uint32_tarc4random(void);uint32_tarc4random_uniform(uint32_tupper_bound);voidarc4random_buf(voidbuf[.n],size_tn);

See Also