Provided by: util-linux-locales_2.41-4ubuntu4.1_all 

NUME
uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe - creează o nouă valoare
unică UUID
REZUMAT
#include <uuid.h>
void uuid_generate(uuid_t out); +
void uuid_generate_random(uuid_t out); +
void uuid_generate_time(uuid_t out); +
int uuid_generate_time_safe(uuid_t out); +
void uuid_generate_md5(uuid_t out, const uuid_t ns, const char *name, size_t len); +
void uuid_generate_sha1(uuid_t out, const uuid_t ns, const char *name, size_t len);
DESCRIERE
Funcția uuid_generate() creează un nou identificator unic universal (UUID). Uuid-ul va fi generat pe baza
unui caracter aleatoriu de înaltă calitate din getrandom(2), /dev/urandom sau /dev/random, dacă este
disponibil. Dacă nu este disponibil, atunci uuid_generate() va utiliza un algoritm alternativ care
folosește ora curentă, adresa MAC a rețelei ethernet locale (dacă este disponibilă) și date aleatoare
generate cu ajutorul unui generator pseudo-aleator.
Funcția uuid_generate_random() forțează utilizarea formatului UUID complet aleatoriu, chiar dacă nu este
disponibil un generator de numere aleatorii de înaltă calitate, caz în care va fi înlocuit cu un
generator pseudo-aleatoriu. Rețineți că utilizarea unui generator pseudo-aleatoriu poate compromite
unicitatea UUID-urilor generate în acest mod.
Funcția uuid_generate_time() forțează utilizarea algoritmului alternativ care utilizează ora curentă și
adresa MAC ethernet locală (dacă este disponibilă). Acest algoritm a fost utilizat în mod implicit pentru
generarea UUID-urilor, dar din cauza utilizării adresei MAC ethernet, acesta poate furniza informații
despre momentul și locul în care a fost generat UUID-ul. Acest lucru poate cauza probleme de
confidențialitate în unele aplicații, astfel încât funcția uuid_generate() utilizează acest algoritm
numai dacă nu este disponibilă o sursă de generare de numere aleatorii de înaltă calitate. Pentru a
garanta unicitatea UUID-urilor generate de procese care rulează simultan, biblioteca uuid utilizează un
contor global de stare a ceasului (dacă procesul are permisiuni pentru a obține acces exclusiv la acest
fișier) și/sau demonul uuidd(8), dacă acesta rulează deja sau poate fi inițiat de proces (dacă este
instalat și procesul are suficiente permisiuni pentru a-l rula). În cazul în care niciunul dintre aceste
două mecanisme de sincronizare nu poate fi utilizat, este teoretic posibil ca două procese care rulează
simultan să obțină același UUID (UUID-uri). Pentru a afla dacă UUID-ul a fost generat într-un mod sigur,
utilizați uuid_generate_time_safe.
Funcția uuid_generate_time_safe() este similară cu uuid_generate_time(), cu excepția faptului că
returnează o valoare care indică dacă a fost utilizat vreunul dintre mecanismele de sincronizare (a se
vedea mai sus).
UUID-ul are o lungime de 16 octeți (128 de biți), ceea ce dă aproximativ 3,4x10^38 valori unice (există
aproximativ 10^80 de particule elementare în univers, conform cărții Cosmos a lui Carl Sagan). Noul UUID
poate fi considerat în mod rezonabil unic între toate UUID-urile create pe sistemul local și între
UUID-urile create pe alte sisteme în trecut și în viitor.
Funcțiile uuid_generate_md5() și uuid_generate_sha1() generează un UUID calculat (previzibil) folosind
algoritmele MD5 și SHA1 pe baza unui UUID bine cunoscut care furnizează spațiul de nume și a unui șir
binar arbitrar. UUID-urile sunt conforme cu UUID-urile V3 și V5 conform RFC-4122
<https://tools.ietf.org/html/rfc4122>.
VALOAREA RETURNATĂ
UUID-ul nou creat este returnat în locația de memorie indicată de out. uuid_generate_time_safe()
returnează zero dacă UUID-ul a fost generat într-un mod sigur, iar în caz contrar -1.
ÎN CONFORMITATE CU
Această bibliotecă generează UUID-uri compatibile cu OSF DCE 1.1 și UUID-uri bazate pe sumele de control
(hash) V3 și V5 compatibile cu RFC-4122 <https://tools.ietf.org/html/rfc4122>.
AUTORI
Theodore Y. Ts’o
CONSULTAȚI ȘI
uuidgen(1), uuid(3), uuid_clear(3), uuid_compare(3), uuid_copy(3), uuid_is_null(3), uuid_parse(3),
uuid_time(3), uuid_unparse(3), uuidd(8)
RAPORTAREA ERORILOR
Pentru rapoarte de eroare, folosiți sistemul de urmărire al erorilor
<https://github.com/util-linux/util-linux/issues>.
DISPONIBILITATE
Biblioteca libuuid face parte din pachetul util-linux începând cu versiunea 2.15.1. Acesta poate fi
descărcat de la Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
util-linux 2.41 2025-09-22 UUID_GENERATE(3)