Scroll to navigation

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);

Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

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

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.

STANDARDY

Brak.

HISTORIA

glibc 2.25. 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

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

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.

2 maja 2024 r. Linux man-pages 6.8