UUID_GENERATE(3) Manualul programatorului UUID_GENERATE(3) NUME uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe - creeaza o noua valoare unica UUID REZUMAT #include 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 Funcia uuid_generate() creeaza un nou identificator unic universal (UUID). Uuid-ul va fi generat pe baza unui caracter aleatoriu de inalta calitate din getrandom(2), /dev/urandom sau /dev/random, daca este disponibil. Daca nu este disponibil, atunci uuid_generate() va utiliza un algoritm alternativ care folosete ora curenta, adresa MAC a reelei ethernet locale (daca este disponibila) i date aleatoare generate cu ajutorul unui generator pseudo-aleator. Funcia uuid_generate_random() foreaza utilizarea formatului UUID complet aleatoriu, chiar daca nu este disponibil un generator de numere aleatorii de inalta calitate, caz in care va fi inlocuit cu un generator pseudo-aleatoriu. Reinei ca utilizarea unui generator pseudo-aleatoriu poate compromite unicitatea UUID-urilor generate in acest mod. Funcia uuid_generate_time() foreaza utilizarea algoritmului alternativ care utilizeaza ora curenta i adresa MAC ethernet locala (daca este disponibila). Acest algoritm a fost utilizat in mod implicit pentru generarea UUID-urilor, dar din cauza utilizarii adresei MAC ethernet, acesta poate furniza informaii despre momentul i locul in care a fost generat UUID-ul. Acest lucru poate cauza probleme de confidenialitate in unele aplicaii, astfel incat funcia uuid_generate() utilizeaza acest algoritm numai daca nu este disponibila o sursa de generare de numere aleatorii de inalta calitate. Pentru a garanta unicitatea UUID-urilor generate de procese care ruleaza simultan, biblioteca uuid utilizeaza un contor global de stare a ceasului (daca procesul are permisiuni pentru a obine acces exclusiv la acest fiier) i/sau demonul uuidd(8), daca acesta ruleaza deja sau poate fi iniiat de proces (daca este instalat i procesul are suficiente permisiuni pentru a-l rula). In cazul in care niciunul dintre aceste doua mecanisme de sincronizare nu poate fi utilizat, este teoretic posibil ca doua procese care ruleaza simultan sa obina acelai UUID (UUID-uri). Pentru a afla daca UUID-ul a fost generat intr-un mod sigur, utilizai uuid_generate_time_safe. Funcia uuid_generate_time_safe() este similara cu uuid_generate_time(), cu excepia faptului ca returneaza o valoare care indica daca a fost utilizat vreunul dintre mecanismele de sincronizare (a se vedea mai sus). UUID-ul are o lungime de 16 octei (128 de bii), ceea ce da aproximativ 3,4x10^38 valori unice (exista aproximativ 10^80 de particule elementare in univers, conform carii Cosmos a lui Carl Sagan). Noul UUID poate fi considerat in mod rezonabil unic intre toate UUID-urile create pe sistemul local i intre UUID-urile create pe alte sisteme in trecut i in viitor. Funciile uuid_generate_md5() i uuid_generate_sha1() genereaza un UUID calculat (previzibil) folosind algoritmele MD5 i SHA1 pe baza unui UUID bine cunoscut care furnizeaza spaiul de nume i a unui ir binar arbitrar. UUID-urile sunt conforme cu UUID-urile V3 i V5 conform RFC-4122 . VALOAREA RETURNATA UUID-ul nou creat este returnat in locaia de memorie indicata de out. uuid_generate_time_safe() returneaza zero daca UUID-ul a fost generat intr-un mod sigur, iar in caz contrar -1. IN CONFORMITATE CU Aceasta biblioteca genereaza UUID-uri compatibile cu OSF DCE 1.1 i UUID-uri bazate pe sumele de control (hash) V3 i V5 compatibile cu RFC-4122 . AUTORI Theodore Y. Ts'o CONSULTAI 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, folosii sistemul de urmarire al erorilor . DISPONIBILITATE Biblioteca libuuid face parte din pachetul util-linux incepand cu versiunea 2.15.1. Acesta poate fi descarcat de la Linux Kernel Archive . util-linux 2.41 2025-03-29 UUID_GENERATE(3)