table of contents
UUID_GENERATE(3) | Програмерско упутство | UUID_GENERATE(3) |
НАЗИВ¶
uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe - ствара нову јединствену УУИД вредност
УВОД¶
#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);
ОПИС¶
Функција uuid_generate() ствара нови универзални јединствени одредник (UUID). ууид ће бити створен на основу висококвалитетне насумичности из getrandom(2), /dev/urandom, или /dev/random ако су доступни. Ако нису доступни, тада ће uuid_generate() користити заменски алгоритам који користи тренутно време, локалну етернет MAC адресу (ако је доступна), и насумичне податке створене коришћењем псеудо-насумичног генератора.
Функција uuid_generate_random() приморава коришћење потпуно-насумичног УУИД формата, чак и ако генератор високо-квалитетног насумичног броја није доступан, у ком случају ће псеудо-насумични генератор бити замењен. Знајте да употреба псеудо-насумичног генератора може угрозити јединственост УУИД-а створених на овај начин.
Функција uuid_generate_time() намеће коришћење заменског алгоритма који користи тренутно време и локалну етернет MAC адресу (ако је доступна). Овај алгоритам је некада био основни алгоритам који се користио за стварање УУИД-а, али због коришћења етернет MAC адресе, могу да му процуре информације о томе када и где је УУИД створен. Ово може да доведе до проблема са приватношћу у неким програмима, тако да функција uuid_generate() користи овај алгоритам само ако висококвалитетни извор насумичности не буде доступан. Да би се осигурала јединственост УУИД-а створених истовремено покренутим процесима, библиотека „uuid“ користи општи бројач стања сата (ако процес има дозволе да добије ексклузивни приступ овој датотеци) и/или uuidd(8) демона, ако је већ покренут или може бити покренут од стране процеса (ако је инсталиран и процес има довољно дозвола да га покрене). Ако се ниједан од ова два механизма синхронизације не може користити, теоретски је могуће да два процеса који се истовремено извршавају добију исти/е УУИД(е). Да бисте утврдили да ли је УУИД створен на безбедан начин, користите uuid_generate_time_safe.
Функција uuid_generate_time_safe() је слична са uuid_generate_time(), осим што резултира вредношћу која означава да ли је неки од механизама усклађивања (видите изнад) коришћен.
УУИД је дуг 16 бајтова (128 бита), што даје приближно 3,4x10^38 јединствених вредности (постоји приближно 10^80 елементарних честица у универзуму према Космосу Карла Сагана). Нови УУИД се разумно може сматрати јединственим међу свим УУИД-има створеним на локалном систему, као и међу УУИД-има створеним на другим системима у прошлости и будућности.
Функције uuid_generate_md5() и uuid_generate_sha1() стварају MD5 и SHA1 хеширан (предвидив) УУИД заснован на добро познатом УУИД-у који обезбеђује називни простор и необавезну бинарну ниску. УУИД-и су сагласни са V3 и V5 УУИД-има према RFC-4122 <https://tools.ietf.org/html/rfc4122>.
РЕЗУЛТНА ВРЕДНОСТ¶
Ново створени УУИД резултира у меморији на месту на које показује излаз. uuid_generate_time_safe() даје нулу ако је УУИД створен на безбедан начин, у супротном -1.
У СКАЛДУ СА¶
Ова библиотека ствара УУИД-е саобразне са OSF DCE 1.1, и хеш засноване УУИД-е V3 и V5 саобразне са RFC-4122 <https://tools.ietf.org/html/rfc4122>.
АУТОРИ¶
Theodore Y. Ts’o
ПОГЛЕДАЈТЕ ТАКОЂЕ¶
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)
ПРИЈАВЉИВАЊЕ ГРЕШАКА¶
За пријављивање грешака, користите пратиоца грешака на <https://github.com/util-linux/util-linux/issues>.
ДОСТУПНОСТ¶
Библиотека libuuid је део пакета „util-linux“ још од издања 2.15.1. Може се преузети са Архиве Линукс кернела <https://www.kernel.org/pub/linux/utils/util-linux/>.
2024-08-05 | util-linux 2.40.2 |