table of contents
- bookworm-backports 1:4.24.0-2~bpo12+1
- testing 1:4.24.0-2
- unstable 1:4.24.0-2
getentropy(3) | Library Functions Manual | getentropy(3) |
NAZWA¶
getentropy - wypełnia bufor losowymi bajtami
BIBLIOTEKA¶
Standardowa biblioteka C (libc, -lc)
SKŁADNIA¶
#include <unistd.h>
int getentropy(void buffer[.length], size_t length);
getentropy():
_DEFAULT_SOURCE
OPIS¶
Funkcja getentropy() zapisuje liczbę length bajtów losowych danych o wysokiej jakości do bufora, zaczynającego się w położeniu, na które wskazuje buffer. Maksymalną dozwoloną wartością argumentu length jest 256.
Pomyślne wywołanie do getentropy() zawsze zwraca żądaną liczbę bajtów entropii.
WARTOŚĆ ZWRACANA¶
W przypadku powodzenia funkcja ta zwraca zero. W razie wystąpienia błędu zwracane jest -1 i ustawiane errno, wskazując błąd.
BŁĘDY¶
- EFAULT
- Część lub całość bufora określonego przez buffer i length nie jest prawidłowo adresowalną pamięcią.
- EIO
- Argument length jest większy niż 256.
- EIO
- Wystąpił nieokreślony błąd podczas próby nadpisania bufora buffer losowymi danymi.
- ENOSYS
- Bieżąca wersja jądra nie implementuje wywołania systemowego getrandom(2), które jest wymagane do zaimplementowania tej funkcji.
WERSJE¶
Funkcja getentropy() pojawiła się pierwotnie w glibc 2.25.
STANDARDY¶
Funkcja ta jest niestandardowa. Jest obecna również w OpenBSD.
UWAGI¶
Funkcja getentropy() jest zaimplementowana za pomocą getrandom(2).
Tam gdzie opakowanie z glibc czyni getrandom(2) punktem anulowania, getentropy() nie jest punktem anulowania.
getentropy() jest deklarowane również w <sys/random.h> (do uzyskania deklaracji z tego pliku nagłówkowego nie jest potrzebne deklarowanie żadnego makra sprawdzania cech).
Wywołanie do getentropy() może blokować, jeśli system jest tuż po rozruchu i jądro nie zebrało jeszcze wystarczająco dużo losowości do zainicjowania puli entropii. W takim przypadku, getentropy() będzie utrzymywało blokowanie nawet wtedy, gdy obsługiwany jest sygnał i powróci jedynie po zainicjowaniu puli entropii.
ZOBACZ TAKŻE¶
TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
10 listopada 2022 r. | Linux man-pages 6.03 |