'\" t .\" Title: uuid_generate .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.20 .\" Date: 2024-04-03 .\" Manual: Manuel du programmeur .\" Source: util-linux 2.40 .\" Language: English .\" .TH "UUID_GENERATE" "3" "2024-04-03" "util\-linux 2.40" "Manuel du programmeur" .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 "NOM" uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe \- Créer une nouvelle valeur unique d\*(AqUUID .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 "DESCRIPTION" .sp La fonction \fBuuid_generate\fP() crée un nouvel identifiant unique universel (UUID). L\(cqUUID sera généré en se basant sur la haute qualité aléatoire de \fBgetrandom\fP(2), \fI/dev/urandom\fP ou \fI/dev/random\fP, s\(cqil est disponible. S\(cqil ne l\(cqest pas, alors \fBuuid_generate\fP() utilisera un autre algorithme qui utilise l\(cqheure actuelle, l\(cqadresse MAC Ethernet locale (si disponible) et une donnée aléatoire générée par un générateur pseudoaléatoire. .sp La fonction \fBuuid_generate_random\fP() impose l\(cqutilisation d\(cqUUID totalement aléatoires, même si le générateur haute qualité de nombres aléatoires (c\(cqest\-à\-dire, \fI/dev/urandom\fP) n\(cqest pas disponible, auquel cas un générateur pseudoaléatoire lui sera substitué. À noter que l\(cqutilisation du générateur pseudoaléatoire peut compromettre l\(cqunicité des UUID générés de cette façon. .sp La fonction \fBuuid_generate_time\fP() impose l\(cqutilisation de l\(cqalgorithme alternatif qui utilise l\(cqheure actuelle et l\(cqadresse MAC Ethernet locale (si disponible). Cet algorithme était celui utilisé par défaut pour générer les UUID, mais à cause de l\(cqutilisation de l\(cqadresse MAC Ethernet, il peut divulguer des informations sur quand et où l\(cqUUID a été créé. Cela peut poser des problèmes de confidentialité dans certaines applications. Par conséquent, la fonction \fBuuid_generate\fP() n\(cqutilise cet algorithme que si aucune source de génération aléatoire de haute qualité n\(cqest disponible. Pour garantir l\(cqunicité des UUID générés par les processus exécutés en même temps, la bibliothèque uuid utilise un compteur d\(cqétat d\(cqhorloge global (si le processus est autorisé à obtenir un accès exclusif à ce fichier) et/ou le démon \fBuuidd\fP(8) s\(cqil est déjà en cours d\(cqexécution ou peut être engendré par le processus (s\(cqil est installé et que le processus est autorisé à l\(cqexécuter). Si aucun de ces deux mécanismes de synchronisation ne peut être utilisé, il est théoriquement possible que deux processus exécutés en même temps obtiennent les mêmes UUID. Pour savoir si l\(cqUUID a été généré de façon sûre, utilisez \fBuuid_generate_time_safe\fP. .sp La fonction \fBuuid_generate_time_safe\fP() est similaire à \fBuuid_generate_time\fP() si ce n\(cqest qu\(cqelle renvoie une valeur qui indique si un des mécanismes de synchronisation (voir ci\-dessus) a été utilisé. .sp L\(cqUUID est long de 16 octets (128 bits), ce qui donne environ 3,4 x 10^38\(rs valeurs uniques (il y a environ 10^80 particules élémentaires dans l\(cqunivers d\(cqaprès le \fICosmos\fP de Carl Sagan). Le nouvel UUID peut être raisonnablement considéré comme unique parmi tous les UUID créés localement sur le système, ainsi que parmi les UUID créés sur d\(cqautres systèmes par le passé et dans le futur. .sp Les fonctions \fBuuid_generate_md5\fP() et \fBuuid_generate_sha1\fP() génèrent un UUID haché (donc prédictible) par MD5 et SHA1 en se basant sur un UUID bien connu fournissant un espace de noms et une chaîne binaire arbitraire. Les UUID sont conformes aux UUID versions 3 et 5 de la norme \c .URL "https://tools.ietf.org/html/rfc4122" "RFC\-4122" "." .SH "VALEUR RENVOYÉE" .sp Le nouveau UUID créé est renvoyé dans l\(cqemplacement mémoire pointé par \fIout\fP. \fBuuid_generate_time_safe\fP() renvoie zéro si l\(cqUUID a été généré de façon sûre, \-1 sinon. .SH "CONFORMITÉ" .sp Cette bibliothèque génère des UUID compatibles avec la DCE 1.1 d’OSF et des UUID versions 3 et 5, basés sur un hachage, compatibles avec la \c .URL "https://tools.ietf.org/html/rfc4122" "RFC\-4122" "." .SH "AUTEURS" .sp Theodore Y. Ts\(cqo .SH "VOIR AUSSI" .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 "SIGNALER DES BOGUES" .sp Pour signaler un bogue, utilisez le gestionnaire de bogues sur \c .URL "https://github.com/util\-linux/util\-linux/issues" "" "." .SH "DISPONIBILITÉ" .sp La bibliothèque \fBlibuuid\fP fait partie du paquet util\-linux depuis la version 2.15.1. Elle est disponible sur \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "l’archive du noyau Linux" "."