UUID_GENERATE(3) Programmerarens handbok UUID_GENERATE(3) NAMN uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe - skapa ett nytt unikt UUID-varde SYNOPSIS #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); BESKRIVNING Funktionen uuid_generate() skapar en ny universellt unik identifierare (UUID). UUID:n genereras baserat pa hogkvalitativ slumpmassighet fran getrandom(2), /dev/urandom eller /dev/random om det finns tillgangligt. Om den inte ar tillganglig kommer uuid_generate() att anvanda en alternativ algoritm som anvander aktuell tid, den lokala Ethernet MAC-adressen (om den ar tillganglig) och slumpmassiga data som genererats med en pseudoslumpgenerator. Funktionen uuid_generate_random(3) tvingar fram anvandningen av det helt slumpmassiga UUID-formatet, aven om en slumptalsgenerator av hog kvalitet inte ar tillganglig, i vilket fall en pseudoslumptalsgenerator anvands i stallet. Observera att anvandningen av en pseudoslumpgenerator kan aventyra unikheten hos UUID:er som genereras pa detta satt. Funktionen uuid_generate_time(3) tvingar fram anvandningen av den alternativa algoritmen som anvander aktuell tid och den lokala Ethernet MAC-adressen (om den ar tillganglig). Den har algoritmen var tidigare standardalgoritmen for att generera UUID:er, men eftersom MAC-adressen for Ethernet anvands kan den lacka information om nar och var UUID:en genererades. Detta kan orsaka integritetsproblem i vissa tillampningar, sa funktionen uuid_generate() anvander endast denna algoritm om en slumpmassig kalla av hog kvalitet inte finns tillganglig. For att garantera att UUID:er som genereras av processer som kors samtidigt ar unika anvander uuid-biblioteket en global klockstatusraknare (om processen har behorighet att fa exklusiv atkomst till den har filen) och/eller demonen uuidd(8), om den redan kors eller kan startas av processen (om den ar installerad och processen har tillrackliga behorigheter for att kora den). Om ingen av dessa tva synkroniseringsmekanismer kan anvandas ar det teoretiskt mojligt att tva processer som kors samtidigt far samma UUID(er). Om du vill veta om UUID har genererats pa ett sakert satt anvander du uuid_generate_time_safe(3). Funktionen uuid_generate_time_safe(3) liknar uuid_generate_time(3), forutom att den returnerar ett varde som anger om nagon av synkroniseringsmekanismerna (se ovan) har anvants. UUID:et ar 16 byte (128 bitar) langt, vilket ger ca 3,4x10^38 unika varden (det finns ca 10^80 elementarpartiklar i universum enligt Carl Sagans Cosmos). Det nya UUID:t kan rimligen anses vara unikt bland alla UUID:n som skapats pa det lokala systemet och bland UUID:n som skapats pa andra system i det forflutna och i framtiden. Funktionerna uuid_generate_md5(3) och uuid_generate_sha1(3) genererar en MD5- och SHA1-hashad (forutsagbar) UUID baserat pa en valkand UUID som tillhandahaller namnrymden och en godtycklig binar strang. UUID:erna overensstammer med V3- och V5-UUID:er enligt RFC-4122 . RETURVARDE Det nyskapade UUID:t returneras till den minnesplats som out pekar pa. uuid_generate_time_safe(3) returnerar noll om UUID har genererats pa ett sakert satt, annars -1. I OVERENSSTAMMELSE MED Detta bibliotek genererar UUID:er som ar kompatibla med OSF DCE 1.1 och hashbaserade UUID:er V3 och V5 som ar kompatibla med RFC-4122 . UPPHOVSPERSONER Theodore Y. Ts'o SE AVEN 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) FELRAPPORTERING For felrapporter, anvand felhanteraren . TILLGANGLIGHET Biblioteket libuuid ar en del av paketet util-linux sedan version 2.15.1. Det kan laddas ner fran Linux Kernel Archive . util-linux 2.42.4 2026-09-21 UUID_GENERATE(3)