'\" t .\" Title: uuid_generate .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-09-02 .\" Manual: Podręcznik programisty .\" Source: util-linux 2.42.3 .\" Language: English .\" .TH "UUID_GENERATE" "3" "2026-09-02" "util\-linux 2.42.3" "Podręcznik programisty" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "NAZWA" uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe \- tworzy nową, unikalną wartość UUID .SH "SKŁADNIA" .sp \fB#include \fP .sp \fBvoid uuid_generate(uuid_t \fIout\fP);\fP .br \fBvoid uuid_generate_random(uuid_t \fIout\fP);\fP .br \fBvoid uuid_generate_time(uuid_t \fIout\fP);\fP .br \fBint uuid_generate_time_safe(uuid_t \fIout\fP);\fP .br \fBvoid uuid_generate_md5(uuid_t \fIout\fP, const uuid_t \fIns\fP, const char \fI*name\fP, size_t \fIlen\fP);\fP .br \fBvoid uuid_generate_sha1(uuid_t \fIout\fP, const uuid_t \fIns\fP, const char \fI*name\fP, size_t \fIlen\fP);\fP .SH "OPIS" .sp Funkcja \fBuuid_generate\fP() tworzy nowy uniwersalnie unikalny identyfikator (UUID). Wartość uuid będzie wygenerowana na podstawie losowości o wysokiej jakości pozyskanej z \fBgetrandom\fP(2), \fI/dev/urandom\fP lub \fI/dev/random\fP, jeśli są one dostępne. Jeśli są niedostępne, \fBuuid_generate\fP() użyje alternatywnego algorytmu, który korzysta z bieżącego czasu, lokalnego adresu ethernetowego MAC (jeśli jest dostępny) oraz losowych danych wygenerowanych przez generator pseudolosowy. .sp Funkcja \fBuuid_generate_random\fP(3) wymusza użycie w pełni losowego formatu UUID, nawet jeśli generator liczb losowych o wysokiej jakości nie jest dostępny; wówczas zostanie zastąpiony generatorem pseudolosowym. Proszę zauważyć, że korzystanie z generatora pseudolosowego może naruszyć unikalność wygenerowanych w ten sposób UUID\-ów. .sp Funkcja \fBuuid_generate_time\fP() wymusza użycie alternatywnego algorytmu, który korzysta z bieżącego czasu oraz lokalnego adresu ethernetowego MAC (jeśli jest dostępny). Algorytm ten był niegdyś domyślnym używanym do generowania UUID\-ów, lecz z powodu używania adresu MAC ethernetu, może powodować wyciek informacji na temat czasu i miejsca wygenerowania UUID\-u. W pewnych zastosowaniach może to być problematyczne pod względem prywatności, dlatego funkcja \fBuuid_generate\fP() korzysta z tego algorytmu tylko, jeśli źródło losowości o wysokiej jakości jest niedostępne. Aby zagwarantować unikalność UUID\-ów generowanych przez równolegle działające procesy, biblioteka uuid korzysta z globalnego licznika stanu zegara (jeśli proces ma uprawnienia do uzyskania wyłącznego dostępu do tego pliku) i/lub demona \fBuuidd\fP(8), jeśli taki już działa lub może być przywołany przez proces (jeśli jest zainstalowany, a proces ma wystarczające uprawnienia do jego uruchomienia). Jeśli nie da się wykorzystać żadnego z opisanych dwóch mechanizmów synchronizacji, teoretycznie może się zdarzyć, że dwa równolegle działające procesy uzyskają ten sam UUID. Aby sprawdzić, czy UUID został utworzony w bezpieczny sposób, proszę użyć \fBuuid_generate_time_safe\fP(3). .sp Funkcja \fBuuid_generate_time_safe\fP(3) jest podobna do \fBuuid_generate_time\fP(3) z tą różnicą, że zwraca wartość wskazującą, czy użyto któregoś z mechanizmów synchronizacyjnych (zob. wyżej). .sp UUID jest wartością 16\-bajtową (128 bitową), co daje około 3.4x10^38 unikalnych wartości (zgodnie z książką \fIKosmos\fP Carla Sagana we wszechświecie jest około 10^80 cząstek elementarnych). Nowy UUID można zatem rozsądnie uważać za unikalny pośród wszystkich UUID\-ów utworzonych w lokalnym systemie oraz pośród UUID\-ów utworzonych w innych systemach w przeszłości i w przyszłości. .sp Funkcje \fBuuid_generate_md5\fP(3) i \fBuuid_generate_sha1\fP(3) tworzą (przewidywalne) UUID\-y korzystające ze skrótów MD5 i SHA1, używając znanego, zdefiniowanego UUID\-u wskazującego przestrzeń nazw i dowolnego łańcucha binarnego. UUID\-y są zgodne z UUID\-ami V3 i V5 z \c .URL "https://tools.ietf.org/html/rfc4122" "RFC\-4122" "." .SH "WARTOŚĆ ZWRACANA" .sp Nowo tworzone UUID\-y są zwracane do położenia pamięci, na które wskazuje \fIout\fP. \fBuuid_generate_time_safe\fP(3) zwraca zero, jeśli UUID wygenerowano w bezpieczny sposób lub \-1 w innym przypadku. .SH "ZGODNE Z" .sp Biblioteka tworzy UUID\-y kompatybilne z OSF DCE 1.1, oraz UUID\-y V3 i V5 powstałe w oparciu o skrót, kompatybilne z \c .URL "https://tools.ietf.org/html/rfc4122" "RFC\-4122" "." .SH "AUTORZY" .sp Theodore Y. Ts\(cqo .SH "ZOBACZ TAKŻE" .sp \fBuuidgen\fP(1), \fBuuid\fP(3), \fBuuid_clear\fP(3), \fBuuid_compare\fP(3), \fBuuid_copy\fP(3), \fBuuid_is_null\fP(3), \fBuuid_parse\fP(3), \fBuuid_time\fP(3), \fBuuid_unparse\fP(3), \fBuuidd\fP(8) .SH "ZGŁASZANIE BŁĘDÓW" .sp Problemy należy zgłaszać w \c .URL "https://github.com/util\-linux/util\-linux/issues" "systemie śledzenia błędów" "." .SH "DOSTĘPNOŚĆ" .sp Biblioteka \fBlibuuid\fP jest częścią pakietu util\-linux od wersji 2.15.1. Można go pobrać ze strony \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Archiwum jądra Linux" "."