msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2015-01-23 22:25+0900\n"
+"POT-Creation-Date: 2015-02-04 23:31+0900\n"
"PO-Revision-Date: 2015-01-29 22:26+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: build/C/man3/MB_CUR_MAX.3:17 build/C/man3/MB_LEN_MAX.3:17
#: build/C/man2/_exit.2:29 build/C/man3/atexit.3:33 build/C/man3/clearenv.3:26
#: build/C/man3/exit.3:29 build/C/man3/getloadavg.3:34
-#: build/C/man3/strtod.3:45 build/C/man7/vdso.7:13
+#: build/C/man3/strtod.3:45 build/C/man7/vdso.7:13 build/C/man2/getrandom.2:27
#, no-wrap
msgid "Linux"
msgstr "Linux"
#: build/C/man3/strtoimax.3:24 build/C/man3/strtol.3:31
#: build/C/man3/strtoul.3:33 build/C/man3/system.3:31 build/C/man7/vdso.7:13
#: build/C/man3/wcstombs.3:16 build/C/man3/wctomb.3:16
+#: build/C/man2/getrandom.2:27
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr "Linux Programmer's Manual"
#: build/C/man3/strtoimax.3:25 build/C/man3/strtol.3:32
#: build/C/man3/strtoul.3:34 build/C/man3/system.3:32 build/C/man7/vdso.7:14
#: build/C/man3/wcstombs.3:17 build/C/man3/wctomb.3:17
+#: build/C/man2/getrandom.2:28
#, no-wrap
msgid "NAME"
msgstr "名前"
#: build/C/man3/strtoimax.3:27 build/C/man3/strtol.3:34
#: build/C/man3/strtoul.3:36 build/C/man3/system.3:34 build/C/man7/vdso.7:16
#: build/C/man3/wcstombs.3:19 build/C/man3/wctomb.3:19
+#: build/C/man2/getrandom.2:30
#, no-wrap
msgid "SYNOPSIS"
msgstr "書式"
#: build/C/man3/strtoimax.3:35 build/C/man3/strtol.3:59
#: build/C/man3/strtoul.3:62 build/C/man3/system.3:40 build/C/man7/vdso.7:20
#: build/C/man3/wcstombs.3:25 build/C/man3/wctomb.3:25
+#: build/C/man2/getrandom.2:34
#, no-wrap
msgid "DESCRIPTION"
msgstr "説明"
#: build/C/man3/strtoimax.3:45 build/C/man3/strtol.3:117
#: build/C/man3/strtoul.3:127 build/C/man3/system.3:73
#: build/C/man3/wcstombs.3:79 build/C/man3/wctomb.3:63
+#: build/C/man2/getrandom.2:123
#, no-wrap
msgid "RETURN VALUE"
msgstr "返り値"
#: build/C/man3/strtoimax.3:69 build/C/man3/strtol.3:173
#: build/C/man3/strtoul.3:177 build/C/man3/system.3:115
#: build/C/man3/wcstombs.3:89 build/C/man3/wctomb.3:89
+#: build/C/man2/getrandom.2:171
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"
#: build/C/man3/strtol.3:297 build/C/man3/strtoul.3:225
#: build/C/man3/system.3:207 build/C/man7/vdso.7:499
#: build/C/man3/wcstombs.3:103 build/C/man3/wctomb.3:103
+#: build/C/man2/getrandom.2:326
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"
#: build/C/man3/mkdtemp.3:103 build/C/man3/mkstemp.3:248
#: build/C/man3/mktemp.3:123 build/C/man3/on_exit.3:91
#: build/C/man3/putenv.3:124 build/C/man3/qecvt.3:112 build/C/man3/rand.3:220
-#: build/C/man3/random.3:202 build/C/man3/random_r.3:145
+#: build/C/man3/random.3:203 build/C/man3/random_r.3:145
#: build/C/man3/rpmatch.3:150 build/C/man3/setenv.3:158
#: build/C/man3/strtod.3:214 build/C/man3/strtoimax.3:77
#: build/C/man3/strtol.3:303 build/C/man3/strtoul.3:231
#: build/C/man3/system.3:215 build/C/man7/vdso.7:515
#: build/C/man3/wcstombs.3:109 build/C/man3/wctomb.3:110
+#: build/C/man2/getrandom.2:330
#, no-wrap
msgid "COLOPHON"
msgstr "この文書について"
#: build/C/man3/mkdtemp.3:111 build/C/man3/mkstemp.3:256
#: build/C/man3/mktemp.3:131 build/C/man3/on_exit.3:99
#: build/C/man3/putenv.3:132 build/C/man3/qecvt.3:120 build/C/man3/rand.3:228
-#: build/C/man3/random.3:210 build/C/man3/random_r.3:153
+#: build/C/man3/random.3:211 build/C/man3/random_r.3:153
#: build/C/man3/rpmatch.3:158 build/C/man3/setenv.3:166
#: build/C/man3/strtod.3:222 build/C/man3/strtoimax.3:85
#: build/C/man3/strtol.3:311 build/C/man3/strtoul.3:239
#: build/C/man3/system.3:223 build/C/man7/vdso.7:523
#: build/C/man3/wcstombs.3:117 build/C/man3/wctomb.3:118
-msgid ""
-"This page is part of release 3.78 of the Linux I<man-pages> project. A "
+#: build/C/man2/getrandom.2:338
+#, fuzzy
+#| msgid ""
+#| "This page is part of release 3.78 of the Linux I<man-pages> project. A "
+#| "description of the project, information about reporting bugs, and the "
+#| "latest version of this page, can be found at \\%http://www.kernel.org/doc/"
+#| "man-pages/."
+msgid ""
+"This page is part of release 3.79 of the Linux I<man-pages> project. A "
"description of the project, information about reporting bugs, and the latest "
"version of this page, can be found at \\%http://www.kernel.org/doc/man-"
"pages/."
#: build/C/man3/strtod.3:176 build/C/man3/strtol.3:178
#: build/C/man3/strtoul.3:182 build/C/man3/system.3:117
#: build/C/man7/vdso.7:129 build/C/man3/wcstombs.3:91 build/C/man3/wctomb.3:91
+#: build/C/man2/getrandom.2:173
#, no-wrap
msgid "NOTES"
msgstr "注意"
msgstr "_EXIT"
#. type: TH
-#: build/C/man2/_exit.2:29
+#: build/C/man2/_exit.2:29 build/C/man2/getrandom.2:27
#, no-wrap
msgid "2015-01-22"
msgstr "2015-01-22"
#: build/C/man3/random_r.3:105 build/C/man3/rpmatch.3:82
#: build/C/man3/setenv.3:119 build/C/man3/strtod.3:155
#: build/C/man3/strtol.3:144 build/C/man3/strtoul.3:148
+#: build/C/man2/getrandom.2:141
#, no-wrap
msgid "ERRORS"
msgstr "エラー"
#: build/C/man3/clearenv.3:57 build/C/man3/getauxval.3:188
#: build/C/man3/getenv.3:93 build/C/man3/getloadavg.3:63
#: build/C/man3/mkdtemp.3:84 build/C/man3/mkstemp.3:188
+#: build/C/man2/getrandom.2:168
#, no-wrap
msgid "VERSIONS"
msgstr "バージョン"
msgstr "EXIT"
#. type: TH
-#: build/C/man3/exit.3:29 build/C/man3/random.3:33 build/C/man3/random_r.3:26
+#: build/C/man3/exit.3:29 build/C/man3/random_r.3:26
#, no-wrap
msgid "2014-03-25"
msgstr "2014-03-25"
"The B<getauxval>() function retrieves values from the auxiliary vector, a "
"mechanism that the kernel's ELF binary loader uses to pass certain "
"information to user space when a program is executed."
-msgstr "B<getauxval>() 関数は補助ベクトル (auxiliary vector) から値を取得する。 補助ベクトルは、 プログラムが実行される際に、 カーネルの ELF バイナリーローダーがユーザー空間にある種の情報を渡すのに使われる仕組みである。"
+msgstr ""
+"B<getauxval>() 関数は補助ベクトル (auxiliary vector) から値を取得する。 補助"
+"ベクトルは、 プログラムが実行される際に、 カーネルの ELF バイナリーローダーが"
+"ユーザー空間にある種の情報を渡すのに使われる仕組みである。"
#. type: Plain text
#: build/C/man3/getauxval.3:53
"Each entry in the auxiliary vector consists of a pair of values: a type that "
"identifies what this entry represents, and a value for that type. Given the "
"argument I<type>, B<getauxval>() returns the corresponding value."
-msgstr "補助ベクトルの各エントリーは、 このエントリーを示すタイプとそのタイプの値のペアで構成される。 引き数 I<type> が指定されると、 B<getauxval>() は対応する値を返す。"
+msgstr ""
+"補助ベクトルの各エントリーは、 このエントリーを示すタイプとそのタイプの値のペ"
+"アで構成される。 引き数 I<type> が指定されると、 B<getauxval>() は対応する値"
+"を返す。"
#. type: Plain text
#: build/C/man3/getauxval.3:60
msgid ""
"The value returned for each I<type> is given in the following list. Not all "
"I<type> values are present on all architectures."
-msgstr "それぞれの I<type> に対して返される値の詳細を以下に示す。 すべてのアーキテクチャーですべて I<type> 値が存在するわけではない。"
+msgstr ""
+"それぞれの I<type> に対して返される値の詳細を以下に示す。 すべてのアーキテク"
+"チャーですべて I<type> 値が存在するわけではない。"
#. type: TP
#: build/C/man3/getauxval.3:60
msgid ""
"A string identifying the real platform; may differ from B<AT_PLATFORM> "
"(PowerPC only)."
-msgstr "実プラットフォームを示す文字列。 B<AT_PLATFORM> と異なる値の場合がある。 (PowerPC のみ)"
+msgstr ""
+"実プラットフォームを示す文字列。 B<AT_PLATFORM> と異なる値の場合がある。 "
+"(PowerPC のみ)"
#. type: TP
#: build/C/man3/getauxval.3:68
msgid ""
"The frequency with which B<times>(2) counts. This value can also be "
"obtained via I<sysconf(_SC_CLK_TCK)>."
-msgstr "B<times>(2) のカウントが行われる周波数。 この値は I<sysconf(_SC_CLK_TCK)> でも取得できる。"
+msgstr ""
+"B<times>(2) のカウントが行われる周波数。 この値は I<sysconf(_SC_CLK_TCK)> で"
+"も取得できる。"
#. type: TP
#: build/C/man3/getauxval.3:75
msgid ""
"Used FPU control word (SuperH architecture only). This gives some "
"information about the FPU initialization performed by the kernel."
-msgstr "使用された FPU 制御ワード (SuperH アーキテクチャーのみ)。 カーネルが実行した FPU 初期化に関する情報を提供するためのものである。"
+msgstr ""
+"使用された FPU 制御ワード (SuperH アーキテクチャーのみ)。 カーネルが実行した "
+"FPU 初期化に関する情報を提供するためのものである。"
#. type: TP
#: build/C/man3/getauxval.3:101
"(for example, see the kernel source file I<arch/x86/include/asm/cpufeature."
"h> for details relating to the Intel x86 architecture). A human-readable "
"version of the same information is available via I</proc/cpuinfo>."
-msgstr "プロセッサーの詳細な機能 (capabilities) を示す複数バイトからなるビットマスクへのポインターである。 このビットマスクの内容はハードウェア依存である (例えば、 Intel x86 アーキテクチャーに関する詳細はカーネルのソースファイル I<arch/x86/include/asm/cpufeature.h> を参照)。 同じ情報を人が読みやすい形になっているのが I</proc/cpuinfo> である。"
+msgstr ""
+"プロセッサーの詳細な機能 (capabilities) を示す複数バイトからなるビットマスク"
+"へのポインターである。 このビットマスクの内容はハードウェア依存である (例え"
+"ば、 Intel x86 アーキテクチャーに関する詳細はカーネルのソースファイル I<arch/"
+"x86/include/asm/cpufeature.h> を参照)。 同じ情報を人が読みやすい形になってい"
+"るのが I</proc/cpuinfo> である。"
#. type: TP
#: build/C/man3/getauxval.3:114
"A pointer to a string that identifies the hardware platform that the program "
"is running on. The dynamic linker uses this in the interpretation of "
"I<rpath> values."
-msgstr "このプログラムが実行されているハードウェアプラットフォームを特定する文字列へのポインター。 動的リンカーは I<rpath> 値の解釈を行う際にこの値を使用する。"
+msgstr ""
+"このプログラムが実行されているハードウェアプラットフォームを特定する文字列へ"
+"のポインター。 動的リンカーは I<rpath> 値の解釈を行う際にこの値を使用する。"
#. type: TP
#: build/C/man3/getauxval.3:143
"disables the use of certain environment variables (see B<ld-linux.so>(8)) "
"and glibc changes other aspects of its behavior. (See also "
"B<secure_getenv>(3).)"
-msgstr "この実行ファイルを安全に扱う必要がある場合に 0 以外の値になる。 一番よくある場合としては、 0 以外の値になるのは、 そのプロセスが set-user-ID か set-group-ID されたプログラムを実行している場合である。 他の場合としては、 Linux Security Module が有効になっている場合にも 0 以外の値となる。 この値が 0 以外の場合、 動的リンカーは特定の環境変数の使用を無効化し (B<ld-linux.so>(8) 参照)、 glibc はそのプロセスの動作を別の観点で変更する (B<secure_getenv>(3) 参照)。"
+msgstr ""
+"この実行ファイルを安全に扱う必要がある場合に 0 以外の値になる。 一番よくある"
+"場合としては、 0 以外の値になるのは、 そのプロセスが set-user-ID か set-"
+"group-ID されたプログラムを実行している場合である。 他の場合としては、 Linux "
+"Security Module が有効になっている場合にも 0 以外の値となる。 この値が 0 以外"
+"の場合、 動的リンカーは特定の環境変数の使用を無効化し (B<ld-linux.so>(8) 参"
+"照)、 glibc はそのプロセスの動作を別の観点で変更する (B<secure_getenv>(3) 参"
+"照)。"
#. type: TP
#: build/C/man3/getauxval.3:158
msgid ""
"The entry point to the system call function in the vDSO. Not present/needed "
"on all architectures (e.g., absent on x86-64)."
-msgstr "vDSO のシステムコール関数へのエントリーポイント。すべてのアーキテクチャーで存在するわけではなく、 また必要というわけでもない (例えば x86-64 には存在しない)。"
+msgstr ""
+"vDSO のシステムコール関数へのエントリーポイント。すべてのアーキテクチャーで存"
+"在するわけではなく、 また必要というわけでもない (例えば x86-64 には存在しな"
+"い)。"
#. type: TP
#: build/C/man3/getauxval.3:162
"The address of a page containing the virtual Dynamic Shared Object (vDSO) "
"that the kernel creates in order to provide fast implementations of certain "
"system calls."
-msgstr "仮想動的共有オブジェクト (vDSO; virtual Dynamic Shared Object) が入ったページのアドレス。 vDSO は、 特定のシステムコールの高速な実装を提供するためにカーネルが作成する共有オブジェクトである。"
+msgstr ""
+"仮想動的共有オブジェクト (vDSO; virtual Dynamic Shared Object) が入ったページ"
+"のアドレス。 vDSO は、 特定のシステムコールの高速な実装を提供するためにカーネ"
+"ルが作成する共有オブジェクトである。"
#. type: TP
#: build/C/man3/getauxval.3:167
"standard information that the dynamic linker usually or always needs. In "
"some cases, the same information could be obtained by system calls, but "
"using the auxiliary vector is cheaper."
-msgstr "補助ベクトルの情報を主に使用するのは、 動的ローダー B<ld-linux.so>(8) である。 補助ベクトルは、 カーネルが動的リンカーが通常もしくは常に必要とするある意味標準的な情報を伝えるための便利で効率的なショートカットである。 いくつかの場合では、 同じ情報がシステムコール経由でも取得できるが、 補助ベクトルを使う方がコストがかからない。"
+msgstr ""
+"補助ベクトルの情報を主に使用するのは、 動的ローダー B<ld-linux.so>(8) であ"
+"る。 補助ベクトルは、 カーネルが動的リンカーが通常もしくは常に必要とするある"
+"意味標準的な情報を伝えるための便利で効率的なショートカットである。 いくつかの"
+"場合では、 同じ情報がシステムコール経由でも取得できるが、 補助ベクトルを使う"
+"方がコストがかからない。"
#. type: Plain text
#: build/C/man3/getauxval.3:214
"the process address space. The auxiliary vector supplied to a program can "
"be viewed by setting the B<LD_SHOW_AUXV> environment variable when running a "
"program:"
-msgstr "補助ベクトルには、 単に、 プロセスのアドレス空間の引き数リストと環境上に存在するだけである。 プログラム実行時に B<LD_SHOW_AUXV> 環境変数を設定すると、 プログラムに渡された補助ベクトルを表示することができる。"
+msgstr ""
+"補助ベクトルには、 単に、 プロセスのアドレス空間の引き数リストと環境上に存在"
+"するだけである。 プログラム実行時に B<LD_SHOW_AUXV> 環境変数を設定すると、 プ"
+"ログラムに渡された補助ベクトルを表示することができる。"
#. type: Plain text
#: build/C/man3/getauxval.3:216
msgid ""
"The auxiliary vector of any process can (subject to file permissions) be "
"obtained via I</proc/PID/auxv>; see B<proc>(5) for more information."
-msgstr "任意のプロセスの補助ベクトルは (ファイルのアクセス許可があれば) I</proc/PID/auxv> 経由で取得できる。 詳細は B<proc>(5) を参照。"
+msgstr ""
+"任意のプロセスの補助ベクトルは (ファイルのアクセス許可があれば) I</proc/PID/"
+"auxv> 経由で取得できる。 詳細は B<proc>(5) を参照。"
#. type: SH
#: build/C/man3/getauxval.3:223 build/C/man3/mktemp.3:105
#: build/C/man3/random.3:189 build/C/man3/rpmatch.3:104
-#: build/C/man3/setenv.3:144
+#: build/C/man3/setenv.3:144 build/C/man2/getrandom.2:319
#, no-wrap
msgid "BUGS"
msgstr "バグ"
#. type: Plain text
#: build/C/man3/getauxval.3:232
+#, fuzzy
+#| msgid ""
+#| "Before the addition of the B<ENOENT> error in glibc 2.19, there was no "
+#| "way to unambiguously distinguish the case where I<type> could not be "
+#| "found from the case where the value corresponding to I<type> was zer0."
msgid ""
"Before the addition of the B<ENOENT> error in glibc 2.19, there was no way "
"to unambiguously distinguish the case where I<type> could not be found from "
-"the case where the value corresponding to I<type> was zer0."
-msgstr "glibc 2.19 で B<ENOENT> エラーが追加される前は、 I<type> が見つからなかった場合と I<type> に対応する値が 0 だった場合を明確に区別する方法がなかった。"
+"the case where the value corresponding to I<type> was zero."
+msgstr ""
+"glibc 2.19 で B<ENOENT> エラーが追加される前は、 I<type> が見つからなかった場"
+"合と I<type> に対応する値が 0 だった場合を明確に区別する方法がなかった。"
#. type: Plain text
#: build/C/man3/getauxval.3:236
#. type: IP
#: build/C/man3/getenv.3:69 build/C/man3/getenv.3:74 build/C/man3/getenv.3:76
#: build/C/man3/system.3:77 build/C/man3/system.3:82 build/C/man3/system.3:86
-#: build/C/man3/system.3:91
+#: build/C/man3/system.3:91 build/C/man2/getrandom.2:176
+#: build/C/man2/getrandom.2:184 build/C/man2/getrandom.2:322
#, no-wrap
msgid "*"
msgstr "*"
#: build/C/man3/random.3:148 build/C/man3/random_r.3:106
#: build/C/man3/random_r.3:110 build/C/man3/random_r.3:119
#: build/C/man3/setenv.3:120 build/C/man3/strtol.3:145
-#: build/C/man3/strtoul.3:149
+#: build/C/man3/strtoul.3:149 build/C/man2/getrandom.2:142
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"
msgid "RANDOM"
msgstr "RANDOM"
+#. type: TH
+#: build/C/man3/random.3:33
+#, fuzzy, no-wrap
+#| msgid "2015-01-22"
+msgid "2015-02-01"
+msgstr "2015-01-22"
+
#. type: Plain text
#: build/C/man3/random.3:36
msgid "random, srandom, initstate, setstate - random number generator"
"NULL ではない。"
#. type: Plain text
-#: build/C/man3/random.3:202
-msgid "B<drand48>(3), B<rand>(3), B<random_r>(3), B<srand>(3)"
+#: build/C/man3/random.3:203
+#, fuzzy
+#| msgid "B<drand48>(3), B<rand>(3), B<random_r>(3), B<srand>(3)"
+msgid "B<drand48>(3), B<getrandom>(2), B<rand>(3), B<random_r>(3), B<srand>(3)"
msgstr "B<drand48>(3), B<rand>(3), B<random_r>(3), B<srand>(3)"
#. type: TH
msgstr ""
"B<MB_CUR_MAX>(3), B<mblen>(3), B<mbstowcs>(3), B<mbtowc>(3), B<wcrtomb>(3), "
"B<wcstombs>(3)"
+
+#. type: TH
+#: build/C/man2/getrandom.2:27
+#, fuzzy, no-wrap
+#| msgid "RANDOM"
+msgid "GETRANDOM"
+msgstr "RANDOM"
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:30
+msgid "getrandom - obtain a series of random bytes"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:32
+#, fuzzy
+#| msgid "B<#include E<lt>unistd.hE<gt>>"
+msgid "B<#include E<lt>linux/random.hE<gt>>"
+msgstr "B<#include E<lt>unistd.hE<gt>>"
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:34
+#, fuzzy
+#| msgid ""
+#| "B<int mkostemps(char *>I<template>B<, int >I<suffixlen>B<, int "
+#| ">I<flags>B<);>\n"
+msgid ""
+"B<int getrandom(void *>I<buf>B<, size_t >I<buflen>B<, unsigned int "
+">I<flags>B<);>"
+msgstr ""
+"B<int mkostemps(char *>I<template>B<, int >I<suffixlen>B<, int >I<flags>B<);"
+">\n"
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:44
+msgid ""
+"The B<getrandom>() system call fills the buffer pointed to by I<buf> with "
+"up to I<buflen> random bytes. These bytes can be used to seed user-space "
+"random number generators or for cryptographic purposes."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:58
+msgid ""
+"B<getrandom>() relies on entropy gathered from device drivers and other "
+"sources of environmental noise. Unnecessarily reading large quantities of "
+"data will have a negative impact on other users of the I</dev/random> and I</"
+"dev/urandom> devices. Therefore, B<getrandom>() should not be used for "
+"Monte Carlo simulations or other programs/algorithms which are doing "
+"probabilistic sampling."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:80
+msgid ""
+"By default, B<getrandom>() draws entropy from the I</dev/urandom> pool. "
+"This behavior can be changed via the I<flags> argument. If the I</dev/"
+"urandom> pool has been initialized, reads of up to 256 bytes will always "
+"return as many bytes as requested and will not be interrupted by signals. "
+"No such guarantees apply for larger buffer sizes. For example, if the call "
+"is interrupted by a signal handler, it may return a partially filled buffer, "
+"or fail with the error B<EINTR>. If the pool has not yet been initialized, "
+"then the call blocks, unless B<GRND_RANDOM> is specified in I<flags>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:85
+msgid ""
+"The I<flags> argument is a bit mask that can contain zero or more of the "
+"following values ORed together:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/getrandom.2:85
+#, fuzzy, no-wrap
+#| msgid "B<AT_RANDOM>"
+msgid "B<GRND_RANDOM>"
+msgstr "B<AT_RANDOM>"
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:106
+msgid ""
+"If this bit is set, then random bytes are drawn from the I</dev/random> pool "
+"instead of the I</dev/urandom> pool. The I</dev/random> pool is limited "
+"based on the entropy that can be obtained from environmental noise. If the "
+"number of available bytes in I</dev/random> is less than requested in "
+"I<buflen>, the call returns just the available random bytes. If no random "
+"bytes are available, the behavior depends on the presence of "
+"B<GRND_NONBLOCK> in the I<flags> argument."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/getrandom.2:106
+#, no-wrap
+msgid "B<GRND_NONBLOCK>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:123
+msgid ""
+"By default, when reading from I</dev/random>, B<getrandom>() blocks if no "
+"random bytes are available, and when reading from I</dev/urandom>, it blocks "
+"if the entropy pool has not yet been initialized. If the B<GRND_NONBLOCK> "
+"flag is set, then B<getrandom>() does not block in these cases, but instead "
+"immediately returns -1 with I<errno> set to B<EAGAIN>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:137
+msgid ""
+"On success, B<getrandom>() returns the number of bytes that were copied to "
+"the buffer I<buf>. This may be less than the number of bytes requested via "
+"I<buflen> if B<GRND_RANDOM> was specified in I<flags> and insufficient "
+"entropy was present in the I</dev/random> pool, or if the system call was "
+"interrupted by a signal."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:141
+#, fuzzy
+#| msgid ""
+#| "On success, these functions return the file descriptor of the temporary "
+#| "file. On error, -1 is returned, and I<errno> is set appropriately."
+msgid "On error, -1 is returned, and I<errno> is set appropriately."
+msgstr ""
+"成功すると、これらの関数は一時ファイルのファイルディスクリプターを返す。 エ"
+"ラーの場合は、-1 を返し、 I<errno> を適切に設定する。"
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:146
+msgid "An invalid flag was specified in I<flags>."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/getrandom.2:146
+#, no-wrap
+msgid "B<EFAULT>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:151
+msgid ""
+"The address referred to by I<buf> is outside the accessible address space."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/getrandom.2:151
+#, no-wrap
+msgid "B<EAGAIN>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:158
+msgid ""
+"The requested entropy was not available, and B<getrandom>() would have "
+"blocked if the B<GRND_NONBLOCK> flag was not set."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/getrandom.2:158
+#, fuzzy, no-wrap
+#| msgid "B<EINVAL>"
+msgid "B<EINTR>"
+msgstr "B<EINVAL>"
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:168
+msgid ""
+"The call was interrupted by a signal handler; see the description of how "
+"interrupted B<read>(2) calls on \"slow\" devices are handled with and "
+"without the B<SA_RESTART> flag in the B<signal>(7) man page."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:171
+msgid "B<getrandom>() was introduced in version 3.17 of the Linux kernel."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:173
+msgid "This system call is Linux-specific."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/getrandom.2:174
+#, no-wrap
+msgid "Maximum number of bytes returned"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:176
+msgid "As of Linux 3.19 the following limits apply:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:184
+msgid ""
+"When reading from I</dev/urandom>, a maximum of 33554431 bytes is returned "
+"by a single call to B<getrandom>() on a system where I<int> has a size of "
+"32 bits."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:188
+msgid "When reading from I</dev/random>, a maximum of 512 bytes is returned."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/getrandom.2:188
+#, no-wrap
+msgid "Initialization of the entropy pool"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:194
+msgid ""
+"The kernel collects bits of entropy from environment. When a sufficient "
+"number of random bits has been collected, the I</dev/urandom> entropy pool "
+"is considered to be initialized. This state is normally reached early in "
+"the system bootstrap phase."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/getrandom.2:194
+#, no-wrap
+msgid "Interruption by a signal handler"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:218
+msgid ""
+"When reading from I</dev/urandom> (B<GRND_RANDOM> is not set), "
+"B<getrandom>() will block until the entropy pool has been initialized "
+"(unless the B<GRND_NONBLOCK> flag was specified). If a request is made to "
+"read a large number (more than 256) of bytes, B<getrandom>() will block "
+"until those bytes have been generated and transferred from kernel memory to "
+"I<buf>. When reading from I</dev/random> (B<GRND_RANDOM> is set), "
+"B<getrandom>() will block until some random bytes become available (unless "
+"the B<GRND_NONBLOCK> flag was specified)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:243
+msgid ""
+"The behavior when a call to B<getrandom>() that is blocked while reading "
+"from I</dev/urandom> is interrupted by a signal handler depends on the "
+"initialization state of the entropy buffer and on the request size, "
+"I<buflen>. If the entropy is not yet initialized, then the call will fail "
+"with the B<EINTR> error. If the entropy pool has been initialized and the "
+"request size is large (I<buflen>\\ E<gt>\\ 256), the call either succeeds, "
+"returning a partially filled buffer, or fails with the error B<EINTR.> If "
+"the entropy pool has been initialized and the request size is small "
+"(I<buflen>\\ E<lt>=\\ 256), then B<getrandom>() will not fail with "
+"B<EINTR>. Instead, it will return all of the bytes that have been requested."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:249
+msgid ""
+"When reading from I</dev/random>, blocking requests of any size can be "
+"interrupted by a signal (the call fails with the error B<EINTR>)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:257
+msgid ""
+"Calling B<getrandom>() to read I</dev/urandom> for small values (E<lt>=\\ "
+"256) of I<buflen> is the preferred mode of usage."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:264
+msgid ""
+"The special treatment of small values of I<buflen> was designed for "
+"compatibility with OpenBSD's B<getentropy>() system call."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:278
+msgid ""
+"The user of B<getrandom>() I<must> always check the return value, to "
+"determine whether either an error occurred or fewer bytes than requested "
+"were returned. In the case where B<GRND_RANDOM> is not specified and "
+"I<buflen> is less than or equal to 256, a return of fewer bytes than "
+"requested should never happen, but the careful programmer will check for "
+"this anyway!"
+msgstr ""
+
+#. type: SS
+#: build/C/man2/getrandom.2:278
+#, no-wrap
+msgid "Choice of random device"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:293
+msgid ""
+"Unless you are doing long-term key generation (and perhaps not even then), "
+"you probably shouldn't be using B<GRND_RANDOM.> The cryptographic algorithms "
+"used for I</dev/urandom> are quite conservative, and so should be sufficient "
+"for all purposes. The disadvantage of B<GRND_RANDOM> is that it can block. "
+"Furthermore, dealing with the partially fulfilled B<getrandom>() requests "
+"that can occur when using B<GRND_RANDOM> increases code complexity."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/getrandom.2:293
+#, no-wrap
+msgid "Emulating OpenBSD's getentropy()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:298
+msgid ""
+"The B<getentropy>() system call in OpenBSD can be emulated using the "
+"following function:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:305
+#, no-wrap
+msgid ""
+"int\n"
+"getentropy(void *buf, size_t buflen)\n"
+"{\n"
+" int ret;\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:317
+#, no-wrap
+msgid ""
+" if (buflen E<gt> 256)\n"
+" goto failure;\n"
+" ret = getrandom(buf, buflen, 0);\n"
+" if (ret E<lt> 0)\n"
+" return ret;\n"
+" if (ret == buflen)\n"
+" return 0;\n"
+"failure:\n"
+" errno = EIO;\n"
+" return -1;\n"
+"}\n"
+msgstr ""
+
+#. FIXME patch proposed https://lkml.org/lkml/2014/11/29/16
+#. type: Plain text
+#: build/C/man2/getrandom.2:322
+msgid "As of Linux 3.19, the following bug exists:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:326
+msgid ""
+"Depending on CPU load, B<getrandom>() does not react to interrupts before "
+"reading all bytes requested."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/getrandom.2:330
+#, fuzzy
+#| msgid "B<drand48>(3), B<rand>(3), B<random>(3)"
+msgid "B<random>(4), B<urandom>(4), B<signal>(7)"
+msgstr "B<drand48>(3), B<rand>(3), B<random>(3)"