diff --git a/ja_JP.eucJP/man/man2/Makefile b/ja_JP.eucJP/man/man2/Makefile index 1a3914517c..35cad37184 100644 --- a/ja_JP.eucJP/man/man2/Makefile +++ b/ja_JP.eucJP/man/man2/Makefile @@ -1,205 +1,214 @@ # $FreeBSD$ MAN2 = _exit.2\ accept.2\ access.2\ acct.2\ adjtime.2\ aio_waitcomplete.2\ aio_cancel.2\ aio_error.2\ aio_read.2\ aio_return.2\ aio_suspend.2\ aio_write.2\ bind.2\ brk.2\ chdir.2\ chflags.2\ chmod.2\ chown.2\ chroot.2\ clock_gettime.2\ close.2\ connect.2\ creat.2\ dup.2\ execve.2\ + extattr_get_file.2\ fcntl.2\ fhopen.2\ flock.2\ fork.2\ fsync.2\ getdirentries.2\ getdtablesize.2\ getfh.2\ getfsstat.2\ getgid.2\ getgroups.2\ getitimer.2\ getlogin.2\ getpeername.2\ getpgrp.2\ getpid.2\ getpriority.2\ getrlimit.2\ getrusage.2\ getsid.2\ getsockname.2\ getsockopt.2\ gettimeofday.2\ getuid.2\ i386_get_ioperm.2\ i386_get_ldt.2\ i386_vm86.2\ intro.2\ ioctl.2\ issetugid.2\ jail.2\ + kenv.2\ kill.2\ killpg.2\ kldfind.2\ kldfirstmod.2\ kldload.2\ kldnext.2\ kldstat.2\ kldsym.2\ kldunload.2\ kqueue.2\ ktrace.2\ link.2\ listen.2\ lseek.2\ madvise.2\ mincore.2\ minherit.2\ mkdir.2\ mkfifo.2\ mknod.2\ mlock.2\ mmap.2\ modfind.2\ modnext.2\ modstat.2\ mount.2\ mprotect.2\ msync.2\ munmap.2\ nanosleep.2\ nfssvc.2\ open.2\ pathconf.2\ pipe.2\ poll.2\ profil.2\ ptrace.2\ quotactl.2\ read.2\ readlink.2\ reboot.2\ recv.2\ rename.2\ revoke.2\ rfork.2\ rmdir.2\ rtprio.2\ sched_get_priority_max.2\ sched_setparam.2\ sched_setscheduler.2\ sched_yield.2\ select.2\ semctl.2\ semget.2\ semop.2\ send.2\ sendfile.2\ setgroups.2\ setpgid.2\ setregid.2\ setresuid.2\ setreuid.2\ setsid.2\ setuid.2\ shmat.2\ shmctl.2\ shmget.2\ shutdown.2\ sigaction.2\ sigaltstack.2\ sigpause.2\ sigpending.2\ sigprocmask.2\ sigreturn.2\ sigsetmask.2\ sigstack.2\ sigsuspend.2\ sigvec.2\ socket.2\ socketpair.2\ stat.2\ statfs.2\ swapon.2\ symlink.2\ sync.2\ sysarch.2\ syscall.2\ truncate.2\ umask.2\ undelete.2\ unlink.2\ utimes.2\ + uuidgen.2\ vfork.2\ wait.2\ write.2\ MLINKS+=i386_get_ioperm.2 i386_set_ioperm.2 MLINKS+=i386_get_ldt.2 i386_set_ldt.2 MLINKS+=access.2 eaccess.2 MLINKS+=brk.2 sbrk.2 MLINKS+=chdir.2 fchdir.2 MLINKS+=chflags.2 fchflags.2 chflags.2 lchflags.2 MLINKS+=chmod.2 fchmod.2 chmod.2 lchmod.2 MLINKS+=chown.2 fchown.2 chown.2 lchown.2 MLINKS+=clock_gettime.2 clock_getres.2 clock_gettime.2 clock_settime.2 MLINKS+=dup.2 dup2.2 +MLINKS+=extattr_get_file.2 extattr_set_file.2 \ + extattr_get_file.2 extattr_delete_file.2 \ + extattr_get_file.2 extattr_get_fd.2 \ + extattr_get_file.2 extattr_set_fd.2 \ + extattr_get_file.2 extattr_delete_fd.2 \ + extattr_get_file.2 extattr.2 MLINKS+=fhopen.2 fhstat.2 fhopen.2 fhstatfs.2 MLINKS+=getdirentries.2 getdents.2 MLINKS+=getgid.2 getegid.2 MLINKS+=getitimer.2 setitimer.2 MLINKS+=getlogin.2 getlogin_r.3 MLINKS+=getlogin.2 setlogin.2 MLINKS+=getpgrp.2 getpgid.2 MLINKS+=getpid.2 getppid.2 MLINKS+=getpriority.2 setpriority.2 MLINKS+=getrlimit.2 setrlimit.2 MLINKS+=getsockopt.2 setsockopt.2 MLINKS+=gettimeofday.2 settimeofday.2 MLINKS+=getuid.2 geteuid.2 MLINKS+=intro.2 errno.2 MLINKS+=jail.2 jail_attach.2 MLINKS+=kqueue.2 kevent.2 MLINKS+=mlock.2 munlock.2 MLINKS+=modnext.2 modfnext.2 MLINKS+=mount.2 unmount.2 MLINKS+=pathconf.2 fpathconf.2 MLINKS+=read.2 pread.2 read.2 readv.2 MLINKS+=recv.2 recvfrom.2 recv.2 recvmsg.2 MLINKS+=send.2 sendmsg.2 send.2 sendto.2 MLINKS+=setpgid.2 setpgrp.2 MLINKS+=setresuid.2 setresgid.2 setresuid.2 getresuid.2 setresuid.2 getresgid.2 MLINKS+=setuid.2 setegid.2 setuid.2 seteuid.2 setuid.2 setgid.2 MLINKS+=shmat.2 shmdt.2 MLINKS+=sigsetmask.2 sigblock.2 MLINKS+=sigsetmask.2 sigmask.2 MLINKS+=stat.2 fstat.2 stat.2 lstat.2 MLINKS+=statfs.2 fstatfs.2 MLINKS+=syscall.2 __syscall.2 MLINKS+=truncate.2 ftruncate.2 MLINKS+=utimes.2 futimes.2 utimes.2 lutimes.2 MLINKS+=wait.2 wait3.2 wait.2 wait4.2 wait.2 waitpid.2 MLINKS+=write.2 pwrite.2 write.2 writev.2 MLINKS+=sched_get_priority_max.2 sched_get_priority_min.2 \ sched_get_priority_max.2 sched_rr_get_interval.2 MLINKS+=sched_setparam.2 sched_getparam.2 MLINKS+=sched_setscheduler.2 sched_getscheduler.2 .include "bsd.prog.mk" diff --git a/ja_JP.eucJP/man/man2/extattr_get_file.2 b/ja_JP.eucJP/man/man2/extattr_get_file.2 new file mode 100644 index 0000000000..f1f7eb3e2a --- /dev/null +++ b/ja_JP.eucJP/man/man2/extattr_get_file.2 @@ -0,0 +1,233 @@ +.\" +.\" Copyright (c) 2001 Dima Dorfman +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/extattr_get_file.2,v 1.12 2002/12/19 09:40:24 ru Exp % +.\" +.\" $FreeBSD$ +.Dd March 28, 2001 +.Dt EXTATTR 2 +.Os +.Sh 名称 +.Nm extattr_get_fd , +.Nm extattr_set_fd , +.Nm extattr_delete_fd , +.Nm extattr_get_file , +.Nm extattr_set_file , +.Nm extattr_delete_file +.Nm extattr_get_link , +.Nm extattr_set_link , +.Nm extattr_delete_link +.Nd VFS 拡張属性を操作するためのシステムコール +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/types.h +.In sys/extattr.h +.In sys/uio.h +.Ft ssize_t +.Fn extattr_get_fd "int fd" "int attrnamespace" "const char *attrname" "void *data" "size_t nbytes" +.Ft int +.Fn extattr_set_fd "int fd" "int attrnamespace" "const char *attrname" "const void *data" "size_t nbytes" +.Ft int +.Fn extattr_delete_fd "int fd" "int attrnamespace" "const char *attrname" +.Ft ssize_t +.Fn extattr_get_file "const char *path" "int attrnamespace" "const char *attrname" "void *data" "size_t nbytes" +.Ft int +.Fn extattr_set_file "const char *path" "int attrnamespace" "const char *attrname" "const void *data" "size_t nbytes" +.Ft int +.Fn extattr_delete_file "const char *path" "int attrnamespace" "const char *attrname" +.Ft ssize_t +.Fn extattr_get_link "const char *path" "int attrnamespace" "const char *attrname" "void *data" "size_t nbytes" +.Ft int +.Fn extattr_set_link "const char *path" "int attrnamespace" "const char *attrname" "const void *data" "size_t nbytes" +.Ft int +.Fn extattr_delete_link "const char *path" "int attrnamespace" "const char *attrname" +.Sh 解説 +名前付き拡張属性は、ファイルまたはディレクトリを表現する vnode に +関連付けられたメタデータです。 +これらは名前空間の集合の中に +.Qq Li name=value +.Qq ( 名前=値 ) +のペアとして存在します。 +.Fn extattr_get_file +システムコールは、指定された拡張属性の値を大きさが +.Fa nbytes +の +.Fa data +によって指されるバッファに取り出します。 +.Fn extattr_set_file +システムコールは、指定された拡張属性の値を +.Fa data +に記述されたデータに設定します。 +.Fn extattr_delete_file +システムコールは、指定された拡張属性を削除します。 +.Fn extattr_get_file +および +.Fn extattr_set_file +呼び出しはそれぞれ、 +.Fa data +および +.Fa nbytes +引数を +.Xr read 2 +および +.Xr write 2 +の形で使用します。 +.Fn extattr_get_file +の呼び出しの中で +.Fa data +が +.Dv NULL +の場合には、読み込んだ量を返すのではなく、 +定義された拡張属性データの大きさを返します。 +これにより、 +アプリケーションが読み込みを実行せずにデータの大きさを +テストすることを可能にします。 +.Fn extattr_delete_link , +.Fn extattr_get_link , +.Fn extattr_set_link +システムコールは、シンボリックリンクを辿らないことを除いて、名前が +.Qq Li _file +のものと同じ動作をします。 +.Pp +.Fn extattr_get_fd , +.Fn extattr_set_fd , +.Fn extattr_delete_fd +呼び出しは、最初の引数を除いて、名前が +.Qq Li _file +のものと同じ動作をします。 +.Qq Li _fd +関数がファイル記述子を取るのに対し、 +.Qq Li _file +関数はパス名を取ります。 +両方の引数は操作されるべき拡張属性に関連付けられたファイルを、記述します。 +.Pp +以下に、全てのシステムコールに共通な引数を記述します: +.Bl -tag -width attrnamespace +.It Fa attrnamespace +拡張属性が属する名前空間です。 +.Xr extattr 9 +を参照してください。 +.It Fa attrname +拡張属性の名前です。 +.El +.Pp +名前付き拡張属性のセマンティクスは、 +この呼び出しを実装するファイルシステムに依存し、一様ではありません。 +特定の属性に対しては、全ての操作がサポートされないかもしれません。 +加えて、 +.Fa data +に入るデータのフォーマットは、属性に特有です。 +.Pp +名前付き拡張属性についてのより多くの情報については、 +.Xr extattr 9 +を参照してください。 +.Sh 警告 +このインタフェースは活発に開発中ですので、 +アプリケーションがこのインタフェースを使うようになるのに従って、 +変わるでしょう。 +開発者がこれの安定を当てにすることは推奨されません。 +.Sh 戻り値 +成功の場合には、 +.Fn extattr_get_file +および +.Fn extattr_set_file +の呼び出しは、各々 +.Fa data +から読込んだまたは書込んだバイト数を返します。また、 +.Fa data +が +.Dv NULL +の場合には、 +.Fn extattr_get_file +は読込みに利用可能なバイト数を返します。 +なにか呼び出しが失敗した場合には、値 \-1 が返され、グローバル変数 +.Va errno +がそのエラーを示すために設定されます。 +.Pp +.Rv -std extattr_delete_file +.Sh エラー +システムコール自身によって、以下のエラーが返されることがあります。 +加えて、呼び出しを実装しているファイルシステムは、希望するその他の +エラーを返すことがあります。 +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa attrnamespace +および +.Fa attrname +引数、または +.Fa data +および +.Fa nbytes +によって定義されるメモリ範囲が、 +プロセスに割り当てられたアドレス空間の外を指しています。 +.It Bq Er ENAMETOOLONG +属性の名前が +.Dv EXTATTR_MAXNAMELEN +より長くなっていました。 +.El +.Pp +.Fn extattr_get_fd , +.Fn extattr_set_fd , +.Fn extattr_delete_fd +システムコールは、次の場合に失敗することがあります: +.Bl -tag -width Er +.It Bq Er EBADF +.Fa fd +によって参照されるファイル記述子が無効です。 +.El +.Pp +加えて、 +.Fn extattr_get_file , +.Fn extattr_set_file , +.Fn extattr_delete_file +の呼び出しは以下のエラーのため、失敗することがあります: +.Bl -tag -width Er +.It Bq Er ENOTDIR +パス名のプレフィックスの構成要素がディレクトリではありません。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を超えている、 +またはパス名全体が 1023 文字を超えています。 +.It Bq Er ENOENT +存在していなければならないパス名の構成要素が、存在していません。 +.It Bq Er EACCES +パス名のプレフィックスの構成要素の検索パーミションがありません。 +.\" XXX 何か抜けてる? +.El +.Sh 関連項目 +.Xr extattr 3 , +.Xr getextattr 8 , +.Xr setextattr 8 , +.Xr extattr 9 , +.Xr VOP_GETEXTATTR 9 , +.Xr VOP_SETEXTATTR 9 +.Sh 歴史 +拡張属性サポートは +.Tn TrustedBSD +プロジェクトの一部として開発され、 +.Fx 5.0 +で導入されました。 +個々のファイルまたはディレクトリに関連付けられるための追加のラベルを +要求するセキュリティ拡張をサポートするために開発されました。 diff --git a/ja_JP.eucJP/man/man2/kenv.2 b/ja_JP.eucJP/man/man2/kenv.2 new file mode 100644 index 0000000000..76e1064136 --- /dev/null +++ b/ja_JP.eucJP/man/man2/kenv.2 @@ -0,0 +1,172 @@ +.\" +.\" Copyright (C) 2002 Chad David . All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice(s), this list of conditions and the following disclaimer as +.\" the first lines of this file unmodified other than the possible +.\" addition of one or more copyright notices. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice(s), this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY +.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +.\" DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY +.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +.\" DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/kenv.2,v 1.4 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd April 17, 2002 +.Dt KENV 2 +.Os +.Sh 名称 +.Nm kenv +.Nd カーネル環境 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In kenv.h +.Ft int +.Fn kenv "int action" "const char *name" "char *value" "int len" +.Sh 解説 +.Fn kenv +システムコールはカーネル環境変数を操作します。 +カーネル環境の中の全てのエントリをダンプする能力と同様に、ユーザランドで +よく知られている環境変数を取得、設定、設定解除する動作をサポートしています。 +.Pp +.Fa action +引数は、以下の中の 1 つを取ることが可能です: +.Bl -tag -width ".Dv KENV_UNSET" +.It Dv KENV_GET +カーネル環境変数に関連付けられた値を返します。 +その変数が見つからない場合には、\-1 が返されグローバル変数 +.Va errno +が +.Er ENOENT +に設定されます。 +.Fa value +に利用可能なバイト数のみがコピーされます。 +.It Dv KENV_SET +新しいカーネル環境変数を設定または追加します。 +このオプションはスーパユーザのみ利用可能です。 +.It Dv KENV_UNSET +カーネル環境変数 +.Fa name +を設定解除します。 +その変数が見つからなかった場合には、\-1 が返されグローバル変数 +.Va errno +が +.Er EINVAL +に設定されます。 +このオプションはスーパユーザのみ利用可能です。 +.It Dv KENV_DUMP +.Fa value +を埋め尽くすだけのカーネル環境変数をダンプします。 +.Fa value +が +.Dv NULL +の場合には、 +.Fn kenv +は環境変数全体をコピーするために必要なバイト数を返すでしょう。 +.El +.Pp +.Fa name +引数は作用されるべき環境変数の名前です。 +.Dv KENV_DUMP +の場合には、無視されます。 +.Pp +.Fa value +引数は、 +.Dv KENV_SET +の場合には環境変数 +.Fa name +に設定するべき値、または +.Dv KENV_DUMP +および +.Dv KENV_GET +の場合には +.Fn kenv +が返すデータをコピーするべき場所を指し示す値、のどちらかを含みます。 +.Fa value +が +.Dv NULL +で +.Dv KENV_DUMP +の場合には、 +.Fn kenv +は環境変数全体をコピーするために必要なバイト数を返すでしょう。 +.Pp +.Fa len +引数は +.Fa value +が指す記憶領域が何バイトかを示します。 +.Sh 戻り値 +.Dv KENV_SET +および +.Dv KENV_UNSET +で成功した場合には、 +.Fn kenv +システムコールは 0 を返します。 +.Dv KENV_DUMP +および +.Dv KENV_GET +で成功した場合には、 +.Fa value +にコピーされたバイト数を返します。 +エラーが発生した場合には、値 \-1 が返されグローバル変数 +.Va errno +がそのエラーを示すために設定されます。 +.Sh エラー +.Fn kenv +システムコールは、以下の場合に失敗します: +.Bl -tag -width Er +.It Bq Er EINVAL +.Fa action +引数が有効なオプションではありません。または +.Dv KENV_SET +のための +.Fa value +引数の長さが 1 未満です。 +.It Bq Er ENOENT +.Dv KENV_SET +または +.Dv KENV_UNSET +のための +.Fa name +の値が見つけられませんでした。 +.It Bq Er EPERM +スーパユーザではないユーザがカーネル環境変数を設定または +設定解除しようとしました。 +.It Bq Er EFAULT +ユーザ引数にコピーまたは値をコピーしようとしたときに、 +不正なアドレスに遭遇しました。 +.It Bq Er ENAMETOOLONG +ユーザによって与えられた変数の名前が +.Dv KENV_MNAMELEN +より長過ぎました、または変数の値が +.Dv KENV_MVALLEN +より長過ぎました。 +.El +.Sh 関連項目 +.Xr kenv 1 +.Sh 作者 +.An -nosplit +このマニュアルページは +.An Chad David Aq davidc@FreeBSD.org +が書きました。 +.Pp +.Fn kenv +システムコールは +.An Maxime Henrion Aq mux@FreeBSD.org +が書きました。 diff --git a/ja_JP.eucJP/man/man2/uuidgen.2 b/ja_JP.eucJP/man/man2/uuidgen.2 new file mode 100644 index 0000000000..ec1c896af4 --- /dev/null +++ b/ja_JP.eucJP/man/man2/uuidgen.2 @@ -0,0 +1,136 @@ +.\" Copyright (c) 2002 Marcel Moolenaar +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" %FreeBSD: src/lib/libc/sys/uuidgen.2,v 1.6 2002/12/19 09:40:25 ru Exp % +.\" +.\" $FreeBSD$ +.Dd May 26, 2002 +.Dt UUIDGEN 2 +.Os +.Sh 名称 +.Nm uuidgen +.Nd 全世界的に唯一の識別子の生成 +.Sh ライブラリ +.Lb libc +.Sh 書式 +.In sys/uuid.h +.Ft int +.Fn uuidgen "struct uuid *store" "int count" +.Sh 解説 +.Fn uuidgen +システムコールは +.Fa count +個の全世界的に唯一の識別子 (UUID) を生成し、それらを +.Fa store +によって指されるバッファへ書込みます。 +この識別子は全世界的に唯一の識別子の異形である DEC version 1 の +文法とセマンティクスに従って生成されます。 +この識別子のより詳細な記述は下記を参照してください。 +利用可能な node フィールドのための IEEE 802 アドレスが無い場合には、 +個々のシステムコールの呼び出し毎に、ランダムなマルチキャストアドレスが +生成されます。 +時間基準の UUID の生成のアルゴリズムに従って、 +新しいランダムクロックシーケンスを強制します。 +それによって、識別子が唯一である可能性が増します。 +.Pp +複数の識別子が生成されなければならない時には、 +.Fn uuidgen +システムコールは、密度の濃い識別子の集合を生成します。 +これの意味するところは、 +集合の中で最小の識別子よりも大きくかつ、 +集合の中で最大の識別子よりも小さくかつ、 +集合の中にまだ存在していないという条件の識別子が存在しないということです。 +.Pp +地球規模に唯一の識別子 (GUID) としても知られる全世界的に唯一の識別子は、 +128 ビットのバイナリ表現を持っています。 +これらのビットの分類と意味は以下の構造体によって記述され、 +そのフィールドの説明が続きます: +.Bd -literal +struct uuid { + uint32_t time_low; + uint16_t time_mid; + uint16_t time_hi_and_version; + uint8_t clock_seq_hi_and_reserved; + uint8_t clock_seq_low; + uint8_t node[_UUID_NODE_LEN]; +}; +.Ed +.Bl -tag -width ".Va clock_seq_hi_and_reserved" +.It Va time_low +60 ビットのタイムスタンプの下位の 32 ビットです。 +このフィールドはネイティブのバイトオーダで格納されます。 +.It Va time_mid +60 ビットのタイムスタンプの上位 28 ビットのうちの下位の 16 ビットです。 +このフィールドはネイティブのバイトオーダで格納されます。 +.It Va time_hi_and_reserved +60 ビットのタイムスタンプの上位 12 ビットと 4 ビットのバージョン番号の +複合されたものです。 +バージョン番号は 16 ビットのフィールドの上位 4 ビットに格納されます。 +このフィールドはネイティブのバイトオーダで格納されます。 +.It Va clock_seq_hi_and_reserved +14 ビットのシーケンス番号の上位 6 ビットと 2 ビットのバリアント値の +複合されたものです。 +バリアント値の幅はそのバリアントによって決定されることに注意してください。 +.Fn uuidgen +システムコールによって生成される識別子が持つバリアント値は 10b です。 +バリアント値はこのフィールドの上位ビットに格納されます。 +.It Va clock_seq_low +14 ビットのシーケンス番号の下位 8 ビットです。 +.It Va node +そのノードのインタフェースの 1 つの 6 バイトの IEEE 802 (MAC) アドレスです。 +そのようなインタフェースが存在しない場合には、ランダムなマルチキャスト +アドレスが代わりに使用されます。 +.El +.Pp +バイナリ表現はバイトオーダに対して敏感です。 +あらゆるマルチバイトのフィールドは、ローカルまたはネイティブのバイトオーダで +格納されなければならず、また識別子はそのバイトオーダに同意しない +ホストに対して送信されるときに、変換されなければなりません。 +しかしながら、この仕様は具体的な用語で文書化されていません。また、 +その他の点ではこのシステムコールの範囲を超えています。 +.Sh 戻り値 +.Rv -std +.Sh エラー +.Fn uuidgen +システムコールは失敗することがあります: +.Bl -tag -width Er +.It Bq Er EFAULT +.Fa store +によって指されるバッファに、どれか 1 つのまたは全ての識別子を書き込めません。 +.It Bq Er EINVAL +.Fa count +引数が 1 よりも小さい、またはハード上限の 2048 よりも大きいです。 +.El +.Sh 関連項目 +.Xr uuidgen 1 , +.Xr uuid 3 +.Sh 規格 +この識別子は DCE 1.1 RPC の仕様に適合して表現され、生成されます。 +.Fn uuidgen +システムコールそれ自身は仕様の一部ではありません。 +.Sh 歴史 +.Fn uuidgen +システムコールは +.Fx 5.0 +ではじめて登場しました。