'\" t .\" Title: uuid_generate .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-03-29 .\" Manual: Manualul programatorului .\" Source: util-linux 2.41 .\" Language: English .\" .TH "UUID_GENERATE" "3" "2025-03-29" "util\-linux 2.41" "Manualul programatorului" .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 "NUME" uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe \- creează o nouă valoare unică UUID .SH "REZUMAT" .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 "DESCRIERE" .sp Funcția \fBuuid_generate\fP() creează un nou identificator unic universal (UUID). Uuid\-ul va fi generat pe baza unui caracter aleatoriu de înaltă calitate din \fBgetrandom\fP(2), \fI/dev/urandom\fP sau \fI/dev/random\fP, dacă este disponibil. Dacă nu este disponibil, atunci \fBuuid_generate\fP() 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. .sp Funcția \fBuuid_generate_random\fP() 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. .sp Funcția \fBuuid_generate_time\fP() 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 \fBuuid_generate\fP() 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 \fBuuidd\fP(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 \fBuuid_generate_time_safe\fP. .sp Funcția \fBuuid_generate_time_safe\fP() este similară cu \fBuuid_generate_time\fP(), cu excepția faptului că returnează o valoare care indică dacă a fost utilizat vreunul dintre mecanismele de sincronizare (a se vedea mai sus). .sp 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 \fICosmos\fP 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. .sp Funcțiile \fBuuid_generate_md5\fP() și \fBuuid_generate_sha1\fP() 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 \c .URL "https://tools.ietf.org/html/rfc4122" "RFC\-4122" "." .SH "VALOAREA RETURNATĂ" .sp UUID\-ul nou creat este returnat în locația de memorie indicată de \fIout\fP. \fBuuid_generate_time_safe\fP() returnează zero dacă UUID\-ul a fost generat într\-un mod sigur, iar în caz contrar \-1. .SH "ÎN CONFORMITATE CU" .sp 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 \c .URL "https://tools.ietf.org/html/rfc4122" "RFC\-4122" "." .SH "AUTORI" .sp Theodore Y. Ts\(cqo .SH "CONSULTAȚI ȘI" .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 "RAPORTAREA ERORILOR" .sp Pentru rapoarte de eroare, folosiți \c .URL "https://github.com/util\-linux/util\-linux/issues" "sistemul de urmărire al erorilor" "." .SH "DISPONIBILITATE" .sp Biblioteca \fBlibuuid\fP face parte din pachetul util\-linux începând cu versiunea 2.15.1. Acesta poate fi descărcat de la \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux Kernel Archive" "."