NAME
getrandom — get random dataLIBRARY
Standard C Library (libc, -lc)SYNOPSIS
#include <sys/random.h> ssize_tgetrandom(void *buf, size_t buflen, unsigned int flags);
DESCRIPTION
getrandom() fills buf with up to buflen bytes of random data. The flags argument may include zero or more of the following:- ‘
GRND_NONBLOCK
’ - Return
EAGAIN
instead of blocking, if the random(4) device has not yet been seeded. By default, getrandom() will block until the device is seeded. - ‘
GRND_RANDOM
’ - This flag does nothing on FreeBSD. /dev/random and /dev/urandom are identical.
RETURN VALUES
Upon successful completion, the number of bytes which were actually read is returned. For requests larger than 256 bytes, this can be fewer bytes than were requested. Otherwise, -1 is returned and the global variable errno is set to indicate the error.ERRORS
The getrandom() operation returns the following errors:- [
EAGAIN
] - The ‘
GRND_NONBLOCK
’ flag was set and the random(4) device was not yet seeded. - [
EFAULT
] - The buf parameter points to an invalid address.
- [
EINTR
] - The sleep was interrupted by a signal.
- [
EINVAL
] - An invalid flags was specified.
- [
EINVAL
] - The requested buflen was
larger than
IOSIZE_MAX
.
SEE ALSO
arc4random(3), getentropy(3), random(4)STANDARDS
getentropy() is non-standard. It is present in Linux.HISTORY
The getrandom() system call first appeared in FreeBSD 12.0.February 24, 2018 | Debian |