Man page - uuid_generate(3)

Packages contains this manual

Available languages:

en fr ja uk ro sr de

Manual

UUID_GENERATE

NUME
REZUMAT
DESCRIERE
VALOAREA RETURNATĂ
ÎN CONFORMITATE CU
AUTORI
CONSULTAȚI ȘI
RAPORTAREA ERORILOR
DISPONIBILITATE

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/>.