aboutsummaryrefslogtreecommitdiffstats
path: root/man/man3/getentropy.3
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2024-04-26 15:06:49 +0200
committerAlejandro Colomar <alx@kernel.org>2024-05-02 01:24:19 +0200
commitdcde2f70372b49ec43efc5db864c9ff585d0a2dd (patch)
tree78b9b7425130e4a5858e4c01a524d802423879ed /man/man3/getentropy.3
parent12aca537ce78a41bbcdaf485209691e10f8002d7 (diff)
downloadman-pages-dcde2f70372b49ec43efc5db864c9ff585d0a2dd.tar.gz
man/, share/mk/: Move man*/ to man/
This is a scripted change: $ mkdir man/; $ mv man* man/; $ ln -st . man/man*; $ find share/mk/ -type f \ | xargs grep -l '^MANDIR *:=' \ | xargs sed -i '/^MANDIR *:=/s,$,/man,'; $ find share/mk/dist/ -type f \ | xargs grep -l man \ | xargs sed -i 's,man%,man/%,g'; Link: <https://lore.kernel.org/linux-man/YxcV4h+Xn7cd6+q2@pevik/T/> Cc: Petr Vorel <pvorel@suse.cz> Cc: Jakub Wilk <jwilk@jwilk.net> Cc: Stefan Puiu <stefan.puiu@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
Diffstat (limited to 'man/man3/getentropy.3')
-rw-r--r--man/man3/getentropy.3103
1 files changed, 103 insertions, 0 deletions
diff --git a/man/man3/getentropy.3 b/man/man3/getentropy.3
new file mode 100644
index 0000000000..a26a4eff56
--- /dev/null
+++ b/man/man3/getentropy.3
@@ -0,0 +1,103 @@
+.\" Copyright (C) 2017, Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH getentropy 3 (date) "Linux man-pages (unreleased)"
+.SH NAME
+getentropy \- fill a buffer with random bytes
+.SH LIBRARY
+Standard C library
+.RI ( libc ", " \-lc )
+.SH SYNOPSIS
+.nf
+.B #include <unistd.h>
+.P
+.BI "int getentropy(void " buffer [. length "], size_t " length );
+.fi
+.P
+.RS -4
+Feature Test Macro Requirements for glibc (see
+.BR feature_test_macros (7)):
+.RE
+.P
+.BR getentropy ():
+.nf
+ _DEFAULT_SOURCE
+.fi
+.SH DESCRIPTION
+The
+.BR getentropy ()
+function writes
+.I length
+bytes of high-quality random data to the buffer starting
+at the location pointed to by
+.IR buffer .
+The maximum permitted value for the
+.I length
+argument is 256.
+.P
+A successful call to
+.BR getentropy ()
+always provides the requested number of bytes of entropy.
+.SH RETURN VALUE
+On success, this function returns zero.
+On error, \-1 is returned, and
+.I errno
+is set to indicate the error.
+.SH ERRORS
+.TP
+.B EFAULT
+Part or all of the buffer specified by
+.I buffer
+and
+.I length
+is not in valid addressable memory.
+.TP
+.B EIO
+.I length
+is greater than 256.
+.TP
+.B EIO
+An unspecified error occurred while trying to overwrite
+.I buffer
+with random data.
+.TP
+.B ENOSYS
+This kernel version does not implement the
+.BR getrandom (2)
+system call required to implement this function.
+.SH STANDARDS
+None.
+.SH HISTORY
+glibc 2.25.
+OpenBSD.
+.SH NOTES
+The
+.BR getentropy ()
+function is implemented using
+.BR getrandom (2).
+.P
+Whereas the glibc wrapper makes
+.BR getrandom (2)
+a cancelation point,
+.BR getentropy ()
+is not a cancelation point.
+.P
+.BR getentropy ()
+is also declared in
+.BR <sys/random.h> .
+(No feature test macro need be defined to obtain the declaration from
+that header file.)
+.P
+A call to
+.BR getentropy ()
+may block if the system has just booted and the kernel has
+not yet collected enough randomness to initialize the entropy pool.
+In this case,
+.BR getentropy ()
+will keep blocking even if a signal is handled,
+and will return only once the entropy pool has been initialized.
+.SH SEE ALSO
+.BR getrandom (2),
+.BR urandom (4),
+.BR random (7)