getentropy(3) Library Functions Manual getentropy(3)

getentropy - wypełnia bufor losowymi bajtami

Standardowa biblioteka C (libc, -lc)

#include <unistd.h>
int getentropy(void buffer[.length], size_t length);
Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

getentropy():

    _DEFAULT_SOURCE

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.

W przypadku powodzenia funkcja ta zwraca zero. W razie wystąpienia błędu zwracane jest -1 i ustawiane errno, wskazując błąd.

Część lub całość bufora określonego przez buffer i length nie jest prawidłowo adresowalną pamięcią.
Argument length jest większy niż 256.
Wystąpił nieokreślony błąd podczas próby nadpisania bufora buffer losowymi danymi.
Bieżąca wersja jądra nie implementuje wywołania systemowego getrandom(2), które jest wymagane do zaimplementowania tej funkcji.

Brak.

glibc 2.25. OpenBSD.

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.

getrandom(2), urandom(4), random(7)

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.

2 maja 2024 r. Linux man-pages 6.9.1