「C言語でUUIDを生成する方法」の版間の差分
提供: C言語入門
(ページの作成:「UUID(Universally Unique Identifier) とは、ソフトウェア上でオブジェクトを一意に識別するための識別子です。分散システムで統制な...」) |
|||
行7: | 行7: | ||
== 概要 == | == 概要 == | ||
UUIDは、利用者にユニークなIDを振ったり、分散ストレージでオブジェクトの識別用にIDを振ったりするときに、使えるID(識別子)です。 | UUIDは、利用者にユニークなIDを振ったり、分散ストレージでオブジェクトの識別用にIDを振ったりするときに、使えるID(識別子)です。 | ||
+ | == UUIDの例 == | ||
+ | '''UUID'''は、以下のようなフォーマットです。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | $ cat /proc/sys/kernel/random/uuid | ||
+ | edd751bf-f1fc-4ce6-8520-ff7c263ff02b | ||
+ | </syntaxhighlight> | ||
+ | == UUIDの作り方 == | ||
+ | '''UUID'''は、 | ||
+ | * /proc/sys/kernel/random/uuid | ||
+ | * uuidgen コマンド | ||
+ | * libuuid | ||
+ | などを使うことで作成できます。 | ||
== インストール == | == インストール == | ||
=== Ubuntuの場合 === | === Ubuntuの場合 === |
2018年3月17日 (土) 15:38時点における版
UUID(Universally Unique Identifier) とは、ソフトウェア上でオブジェクトを一意に識別するための識別子です。分散システムで統制なしに作成できる識別子として設計されていて、将来的にも衝突が起きない前提で利用できます。
読み方
- uuid
- ゆーゆーあいでぃー
目次
概要
UUIDは、利用者にユニークなIDを振ったり、分散ストレージでオブジェクトの識別用にIDを振ったりするときに、使えるID(識別子)です。
UUIDの例
UUIDは、以下のようなフォーマットです。
$ cat /proc/sys/kernel/random/uuid edd751bf-f1fc-4ce6-8520-ff7c263ff02b
UUIDの作り方
UUIDは、
- /proc/sys/kernel/random/uuid
- uuidgen コマンド
- libuuid
などを使うことで作成できます。
インストール
Ubuntuの場合
sudo apt install uuid-dev
uuid1.c の例
ソースコード uuid1.c
/* * uuid1.c * Copyright (C) 2018 kaoru <kaoru@localhost> * * Distributed under terms of the MIT license. */ #include <uuid/uuid.h> #include <stdio.h> #include <stdlib.h> const int uuid_len = 36+1; // 36byte string + null int main(int argc, char *argv[]) { uuid_t u1; char out[uuid_len]; uuid_generate(u1); uuid_unparse(u1, out); (void)printf("%s\n", out); exit(EXIT_SUCCESS); }
コンパイル
Windows10のWSL(Windows Subsystem for Linux) のUbuntu の環境で -L で libuuid.so のあるパスを指定したが、コンパイルできなかったので、直接 .so を指定することになりました。
cc -luuid uuid1.c /usr/lib/x86_64-linux-gnu/libuuid.so -o uuid1
実行例
% ./uuid1 d8981b3a-ec33-4bda-8eba-09aa172bb2a9