'\" t .\" Title: uuid_generate .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-09-21 .\" Manual: Programmerarens handbok .\" Source: util-linux 2.42.4 .\" Language: English .\" .TH "UUID_GENERATE" "3" "2026-09-21" "util\-linux 2.42.4" "Programmerarens handbok" .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 "NAMN" uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe \- skapa ett nytt unikt UUID\-värde .SH "SYNOPSIS" .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 "BESKRIVNING" .sp Funktionen \fBuuid_generate\fP() skapar en ny universellt unik identifierare (UUID). UUID:n genereras baserat på högkvalitativ slumpmässighet från \fBgetrandom\fP(2), \fI/dev/urandom\fP eller \fI/dev/random\fP om det finns tillgängligt. Om den inte är tillgänglig kommer \fBuuid_generate\fP() att använda en alternativ algoritm som använder aktuell tid, den lokala Ethernet MAC\-adressen (om den är tillgänglig) och slumpmässiga data som genererats med en pseudoslumpgenerator. .sp Funktionen \fBuuid_generate_random\fP(3) tvingar fram användningen av det helt slumpmässiga UUID\-formatet, även om en slumptalsgenerator av hög kvalitet inte är tillgänglig, i vilket fall en pseudoslumptalsgenerator används i stället. Observera att användningen av en pseudoslumpgenerator kan äventyra unikheten hos UUID:er som genereras på detta sätt. .sp Funktionen \fBuuid_generate_time\fP(3) tvingar fram användningen av den alternativa algoritmen som använder aktuell tid och den lokala Ethernet MAC\-adressen (om den är tillgänglig). Den här algoritmen var tidigare standardalgoritmen för att generera UUID:er, men eftersom MAC\-adressen för Ethernet används kan den läcka information om när och var UUID:en genererades. Detta kan orsaka integritetsproblem i vissa tillämpningar, så funktionen \fBuuid_generate\fP() använder endast denna algoritm om en slumpmässig källa av hög kvalitet inte finns tillgänglig. För att garantera att UUID:er som genereras av processer som körs samtidigt är unika använder uuid\-biblioteket en global klockstatusräknare (om processen har behörighet att få exklusiv åtkomst till den här filen) och/eller demonen \fBuuidd\fP(8), om den redan körs eller kan startas av processen (om den är installerad och processen har tillräckliga behörigheter för att köra den). Om ingen av dessa två synkroniseringsmekanismer kan användas är det teoretiskt möjligt att två processer som körs samtidigt får samma UUID(er). Om du vill veta om UUID har genererats på ett säkert sätt använder du \fBuuid_generate_time_safe\fP(3). .sp Funktionen \fBuuid_generate_time_safe\fP(3) liknar \fBuuid_generate_time\fP(3), förutom att den returnerar ett värde som anger om någon av synkroniseringsmekanismerna (se ovan) har använts. .sp UUID:et är 16 byte (128 bitar) långt, vilket ger ca 3,4x10^38 unika värden (det finns ca 10^80 elementarpartiklar i universum enligt Carl Sagans \fICosmos\fP). Det nya UUID:t kan rimligen anses vara unikt bland alla UUID:n som skapats på det lokala systemet och bland UUID:n som skapats på andra system i det förflutna och i framtiden. .sp Funktionerna \fBuuid_generate_md5\fP(3) och \fBuuid_generate_sha1\fP(3) genererar en MD5\- och SHA1\-hashad (förutsägbar) UUID baserat på en välkänd UUID som tillhandahåller namnrymden och en godtycklig binär sträng. UUID:erna överensstämmer med V3\- och V5\-UUID:er enligt \c .URL "https://tools.ietf.org/html/rfc4122" "RFC\-4122" "." .SH "RETURVÄRDE" .sp Det nyskapade UUID:t returneras till den minnesplats som \fIout\fP pekar på. \fBuuid_generate_time_safe\fP(3) returnerar noll om UUID har genererats på ett säkert sätt, annars \-1. .SH "I ÖVERENSSTÄMMELSE MED" .sp Detta bibliotek genererar UUID:er som är kompatibla med OSF DCE 1.1 och hashbaserade UUID:er V3 och V5 som är kompatibla med \c .URL "https://tools.ietf.org/html/rfc4122" "RFC\-4122" "." .SH "UPPHOVSPERSONER" .sp Theodore Y. Ts\(cqo .SH "SE ÄVEN" .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 "FELRAPPORTERING" .sp För felrapporter, använd \c .URL "https://github.com/util\-linux/util\-linux/issues" "felhanteraren" "." .SH "TILLGÄNGLIGHET" .sp Biblioteket \fBlibuuid\fP är en del av paketet util\-linux sedan version 2.15.1. Det kan laddas ner från \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Linux Kernel Archive" "."