msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2013-03-22 01:07+0900\n"
-"PO-Revision-Date: 2013-03-24 01:06+0900\n"
+"POT-Creation-Date: 2014-04-24 00:51+0900\n"
+"PO-Revision-Date: 2014-04-24 03:26+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
msgstr "ASPRINTF"
#. type: TH
-#: build/C/man3/asprintf.3:27
+#: build/C/man3/asprintf.3:27 build/C/man3/fcloseall.3:25
+#: build/C/man3/fmtmsg.3:13 build/C/man3/stdio_ext.3:25
#, no-wrap
-msgid "2001-12-18"
-msgstr "2001-12-18"
+msgid "2013-06-21"
+msgstr "2013-06-21"
#. type: TH
#: build/C/man3/asprintf.3:27 build/C/man3/ctermid.3:26
#: build/C/man3/dprintf.3:26 build/C/man3/fclose.3:44
#: build/C/man3/fcloseall.3:25 build/C/man3/fflush.3:45
-#: build/C/man3/fgetwc.3:18 build/C/man3/fmemopen.3:10 build/C/man3/fopen.3:44
-#: build/C/man3/fputwc.3:16 build/C/man3/fread.3:45 build/C/man3/fseek.3:42
-#: build/C/man3/getline.3:26 build/C/man3/gets.3:27 build/C/man3/getw.3:25
-#: build/C/man3/popen.3:40 build/C/man3/printf.3:34 build/C/man3/puts.3:26
-#: build/C/man3/remove.3:31 build/C/man3/scanf.3:52 build/C/man3/wprintf.3:16
+#: build/C/man3/fgetc.3:27 build/C/man3/fgetwc.3:18 build/C/man3/fmemopen.3:10
+#: build/C/man3/fopen.3:44 build/C/man3/fputwc.3:16 build/C/man3/fread.3:45
+#: build/C/man3/fseek.3:42 build/C/man3/getline.3:26 build/C/man3/gets.3:29
+#: build/C/man3/getw.3:25 build/C/man3/popen.3:40 build/C/man3/printf.3:34
+#: build/C/man3/puts.3:26 build/C/man3/remove.3:31 build/C/man3/scanf.3:52
+#: build/C/man3/wprintf.3:16
#, no-wrap
msgid "GNU"
msgstr "GNU"
#: build/C/man3/asprintf.3:27 build/C/man3/ctermid.3:26
#: build/C/man3/dprintf.3:26 build/C/man3/fclose.3:44
#: build/C/man3/fcloseall.3:25 build/C/man3/ferror.3:44
-#: build/C/man3/fflush.3:45 build/C/man3/fgetwc.3:18
+#: build/C/man3/fflush.3:45 build/C/man3/fgetc.3:27 build/C/man3/fgetwc.3:18
#: build/C/man3/flockfile.3:25 build/C/man3/fmemopen.3:10
#: build/C/man3/fmtmsg.3:13 build/C/man3/fopen.3:44
#: build/C/man3/fopencookie.3:26 build/C/man3/fpurge.3:25
#: build/C/man3/fputwc.3:16 build/C/man3/fread.3:45 build/C/man3/fseek.3:42
-#: build/C/man3/fseeko.3:25 build/C/man3/getline.3:26 build/C/man3/gets.3:27
-#: build/C/man3/getw.3:25 build/C/man2/link.2:31 build/C/man2/llseek.2:28
-#: build/C/man2/lseek.2:47 build/C/man3/lseek64.3:25 build/C/man2/open.2:52
-#: build/C/man3/perror.3:31 build/C/man2/pipe.2:36 build/C/man3/popen.3:40
-#: build/C/man3/printf.3:34 build/C/man3/puts.3:26 build/C/man2/read.2:35
-#: build/C/man2/readlink.2:43 build/C/man2/readv.2:32 build/C/man3/remove.3:31
-#: build/C/man2/rename.2:32 build/C/man2/rmdir.2:30 build/C/man3/scanf.3:52
-#: build/C/man3/setbuf.3:48 build/C/man3/stdin.3:13 build/C/man3/stdio.3:39
-#: build/C/man3/stdio_ext.3:25 build/C/man2/symlink.2:32
-#: build/C/man7/symlink.7:36 build/C/man3/tempnam.3:25
-#: build/C/man3/tmpfile.3:31 build/C/man3/tmpnam.3:27 build/C/man2/unlink.2:32
+#: build/C/man3/fseeko.3:25 build/C/man3/getline.3:26 build/C/man3/gets.3:29
+#: build/C/man3/getw.3:25 build/C/man2/link.2:32 build/C/man2/llseek.2:28
+#: build/C/man2/lseek.2:47 build/C/man3/lseek64.3:25 build/C/man2/open.2:51
+#: build/C/man2/open_by_handle_at.2:25 build/C/man3/perror.3:31
+#: build/C/man2/pipe.2:36 build/C/man3/popen.3:40 build/C/man3/printf.3:34
+#: build/C/man3/puts.3:26 build/C/man2/read.2:35 build/C/man2/readlink.2:44
+#: build/C/man2/readv.2:32 build/C/man3/remove.3:31 build/C/man2/rename.2:33
+#: build/C/man2/rmdir.2:30 build/C/man3/scanf.3:52 build/C/man3/setbuf.3:48
+#: build/C/man3/stdin.3:13 build/C/man3/stdio.3:39 build/C/man3/stdio_ext.3:25
+#: build/C/man2/symlink.2:33 build/C/man7/symlink.7:37
+#: build/C/man3/tempnam.3:25 build/C/man3/tmpfile.3:31
+#: build/C/man3/tmpnam.3:27 build/C/man2/unlink.2:33
#: build/C/man3/unlocked_stdio.3:25 build/C/man3/wprintf.3:16
#: build/C/man2/write.2:39
#, no-wrap
#: build/C/man3/asprintf.3:28 build/C/man3/ctermid.3:27
#: build/C/man3/dprintf.3:27 build/C/man3/fclose.3:45
#: build/C/man3/fcloseall.3:26 build/C/man3/ferror.3:45
-#: build/C/man3/fflush.3:46 build/C/man3/fgetwc.3:19
+#: build/C/man3/fflush.3:46 build/C/man3/fgetc.3:28 build/C/man3/fgetwc.3:19
#: build/C/man3/flockfile.3:26 build/C/man3/fmemopen.3:11
#: build/C/man3/fmtmsg.3:14 build/C/man3/fopen.3:45
#: build/C/man3/fopencookie.3:27 build/C/man3/fpurge.3:26
#: build/C/man3/fputwc.3:17 build/C/man3/fread.3:46 build/C/man3/fseek.3:43
-#: build/C/man3/fseeko.3:26 build/C/man3/getline.3:27 build/C/man3/gets.3:28
-#: build/C/man3/getw.3:26 build/C/man2/link.2:32 build/C/man2/llseek.2:29
-#: build/C/man2/lseek.2:48 build/C/man3/lseek64.3:26 build/C/man2/open.2:53
-#: build/C/man3/perror.3:32 build/C/man2/pipe.2:37 build/C/man3/popen.3:41
-#: build/C/man3/printf.3:35 build/C/man3/puts.3:27 build/C/man2/read.2:36
-#: build/C/man2/readlink.2:44 build/C/man2/readv.2:33 build/C/man3/remove.3:32
-#: build/C/man2/rename.2:33 build/C/man2/rmdir.2:31 build/C/man3/scanf.3:53
-#: build/C/man3/setbuf.3:49 build/C/man3/stdin.3:14 build/C/man3/stdio.3:40
-#: build/C/man3/stdio_ext.3:26 build/C/man2/symlink.2:33
-#: build/C/man7/symlink.7:37 build/C/man3/tempnam.3:26
-#: build/C/man3/tmpfile.3:32 build/C/man3/tmpnam.3:28 build/C/man2/unlink.2:33
+#: build/C/man3/fseeko.3:26 build/C/man3/getline.3:27 build/C/man3/gets.3:30
+#: build/C/man3/getw.3:26 build/C/man2/link.2:33 build/C/man2/llseek.2:29
+#: build/C/man2/lseek.2:48 build/C/man3/lseek64.3:26 build/C/man2/open.2:52
+#: build/C/man2/open_by_handle_at.2:26 build/C/man3/perror.3:32
+#: build/C/man2/pipe.2:37 build/C/man3/popen.3:41 build/C/man3/printf.3:35
+#: build/C/man3/puts.3:27 build/C/man2/read.2:36 build/C/man2/readlink.2:45
+#: build/C/man2/readv.2:33 build/C/man3/remove.3:32 build/C/man2/rename.2:34
+#: build/C/man2/rmdir.2:31 build/C/man3/scanf.3:53 build/C/man3/setbuf.3:49
+#: build/C/man3/stdin.3:14 build/C/man3/stdio.3:40 build/C/man3/stdio_ext.3:26
+#: build/C/man2/symlink.2:34 build/C/man7/symlink.7:38
+#: build/C/man3/tempnam.3:26 build/C/man3/tmpfile.3:32
+#: build/C/man3/tmpnam.3:28 build/C/man2/unlink.2:34
#: build/C/man3/unlocked_stdio.3:26 build/C/man3/wprintf.3:17
#: build/C/man2/write.2:40
#, no-wrap
#: build/C/man3/asprintf.3:30 build/C/man3/ctermid.3:29
#: build/C/man3/dprintf.3:29 build/C/man3/fclose.3:47
#: build/C/man3/fcloseall.3:28 build/C/man3/ferror.3:47
-#: build/C/man3/fflush.3:48 build/C/man3/fgetwc.3:21
+#: build/C/man3/fflush.3:48 build/C/man3/fgetc.3:30 build/C/man3/fgetwc.3:21
#: build/C/man3/flockfile.3:28 build/C/man3/fmemopen.3:13
#: build/C/man3/fmtmsg.3:16 build/C/man3/fopen.3:47
#: build/C/man3/fopencookie.3:29 build/C/man3/fpurge.3:28
#: build/C/man3/fputwc.3:19 build/C/man3/fread.3:48 build/C/man3/fseek.3:45
-#: build/C/man3/fseeko.3:28 build/C/man3/getline.3:29 build/C/man3/gets.3:30
-#: build/C/man3/getw.3:28 build/C/man2/link.2:34 build/C/man2/llseek.2:31
-#: build/C/man2/lseek.2:50 build/C/man3/lseek64.3:28 build/C/man2/open.2:55
-#: build/C/man3/perror.3:34 build/C/man2/pipe.2:39 build/C/man3/popen.3:43
-#: build/C/man3/printf.3:38 build/C/man3/puts.3:29 build/C/man2/read.2:38
-#: build/C/man2/readlink.2:46 build/C/man2/readv.2:35 build/C/man3/remove.3:34
-#: build/C/man2/rename.2:35 build/C/man2/rmdir.2:33 build/C/man3/scanf.3:55
-#: build/C/man3/setbuf.3:51 build/C/man3/stdin.3:16 build/C/man3/stdio.3:42
-#: build/C/man3/stdio_ext.3:30 build/C/man2/symlink.2:35
-#: build/C/man3/tempnam.3:28 build/C/man3/tmpfile.3:34
-#: build/C/man3/tmpnam.3:30 build/C/man2/unlink.2:35
+#: build/C/man3/fseeko.3:28 build/C/man3/getline.3:29 build/C/man3/gets.3:32
+#: build/C/man3/getw.3:28 build/C/man2/link.2:35 build/C/man2/llseek.2:31
+#: build/C/man2/lseek.2:50 build/C/man3/lseek64.3:28 build/C/man2/open.2:54
+#: build/C/man2/open_by_handle_at.2:29 build/C/man3/perror.3:34
+#: build/C/man2/pipe.2:39 build/C/man3/popen.3:43 build/C/man3/printf.3:38
+#: build/C/man3/puts.3:29 build/C/man2/read.2:38 build/C/man2/readlink.2:47
+#: build/C/man2/readv.2:35 build/C/man3/remove.3:34 build/C/man2/rename.2:36
+#: build/C/man2/rmdir.2:33 build/C/man3/scanf.3:55 build/C/man3/setbuf.3:51
+#: build/C/man3/stdin.3:16 build/C/man3/stdio.3:42 build/C/man3/stdio_ext.3:30
+#: build/C/man2/symlink.2:36 build/C/man3/tempnam.3:28
+#: build/C/man3/tmpfile.3:34 build/C/man3/tmpnam.3:30 build/C/man2/unlink.2:36
#: build/C/man3/unlocked_stdio.3:29 build/C/man3/wprintf.3:20
#: build/C/man2/write.2:42
#, no-wrap
#: build/C/man3/asprintf.3:34 build/C/man3/dprintf.3:31
#: build/C/man3/fclose.3:49 build/C/man3/ferror.3:49 build/C/man3/fflush.3:50
#: build/C/man3/fseek.3:47 build/C/man3/perror.3:36 build/C/man3/printf.3:40
-#: build/C/man3/remove.3:36 build/C/man2/rename.2:37 build/C/man3/stdio.3:44
+#: build/C/man3/remove.3:36 build/C/man3/stdio.3:44
#: build/C/man3/stdio_ext.3:32
msgid "B<#include E<lt>stdio.hE<gt>>"
msgstr "B<#include E<lt>stdio.hE<gt>>"
#: build/C/man3/asprintf.3:38 build/C/man3/ctermid.3:46
#: build/C/man3/dprintf.3:55 build/C/man3/fclose.3:51
#: build/C/man3/fcloseall.3:35 build/C/man3/ferror.3:65
-#: build/C/man3/fflush.3:52 build/C/man3/fgetwc.3:30
+#: build/C/man3/fflush.3:52 build/C/man3/fgetc.3:44 build/C/man3/fgetwc.3:30
#: build/C/man3/flockfile.3:51 build/C/man3/fmemopen.3:46
#: build/C/man3/fmtmsg.3:26 build/C/man3/fopen.3:65
#: build/C/man3/fopencookie.3:37 build/C/man3/fpurge.3:42
#: build/C/man3/fputwc.3:28 build/C/man3/fread.3:58 build/C/man3/fseek.3:57
-#: build/C/man3/fseeko.3:37 build/C/man3/getline.3:58 build/C/man3/gets.3:46
-#: build/C/man3/getw.3:59 build/C/man2/link.2:38 build/C/man2/llseek.2:43
-#: build/C/man2/lseek.2:56 build/C/man3/lseek64.3:36 build/C/man2/open.2:66
-#: build/C/man3/perror.3:55 build/C/man2/pipe.2:51 build/C/man3/popen.3:64
-#: build/C/man3/printf.3:76 build/C/man3/puts.3:43 build/C/man2/read.2:44
-#: build/C/man2/readlink.2:63 build/C/man2/readv.2:58 build/C/man3/remove.3:38
-#: build/C/man2/rename.2:39 build/C/man2/rmdir.2:37 build/C/man3/scanf.3:87
-#: build/C/man3/setbuf.3:73 build/C/man3/stdin.3:24 build/C/man3/stdio.3:50
-#: build/C/man3/stdio_ext.3:54 build/C/man2/symlink.2:52
+#: build/C/man3/fseeko.3:54 build/C/man3/getline.3:58 build/C/man3/gets.3:38
+#: build/C/man3/getw.3:59 build/C/man2/link.2:66 build/C/man2/llseek.2:43
+#: build/C/man2/lseek.2:56 build/C/man3/lseek64.3:36 build/C/man2/open.2:88
+#: build/C/man2/open_by_handle_at.2:43 build/C/man3/perror.3:55
+#: build/C/man2/pipe.2:51 build/C/man3/popen.3:64 build/C/man3/printf.3:76
+#: build/C/man3/puts.3:43 build/C/man2/read.2:44 build/C/man2/readlink.2:86
+#: build/C/man2/readv.2:58 build/C/man3/remove.3:38 build/C/man2/rename.2:67
+#: build/C/man2/rmdir.2:37 build/C/man3/scanf.3:87 build/C/man3/setbuf.3:73
+#: build/C/man3/stdin.3:24 build/C/man3/stdio.3:50 build/C/man3/stdio_ext.3:54
+#: build/C/man2/symlink.2:74 build/C/man7/symlink.7:40
#: build/C/man3/tempnam.3:42 build/C/man3/tmpfile.3:40
-#: build/C/man3/tmpnam.3:36 build/C/man2/unlink.2:39
-#: build/C/man3/unlocked_stdio.3:106 build/C/man3/wprintf.3:60
+#: build/C/man3/tmpnam.3:36 build/C/man2/unlink.2:66
+#: build/C/man3/unlocked_stdio.3:106 build/C/man3/wprintf.3:58
#: build/C/man2/write.2:46
#, no-wrap
msgid "DESCRIPTION"
msgid ""
"The functions B<asprintf>() and B<vasprintf>() are analogs of B<sprintf>"
"(3) and B<vsprintf>(3), except that they allocate a string large enough to "
-"hold the output including the terminating null byte, and return a pointer to "
-"it via the first argument. This pointer should be passed to B<free>(3) to "
-"release the allocated storage when it is no longer needed."
+"hold the output including the terminating null byte (\\(aq\\e0\\(aq), and "
+"return a pointer to it via the first argument. This pointer should be "
+"passed to B<free>(3) to release the allocated storage when it is no longer "
+"needed."
msgstr ""
"B<asprintf>() 関数と B<vasprintf>() 関数とは、それぞれ B<sprintf>(3) 関数"
-"と B<vsprintf>(3) 関数とに似ているが、 出力文字列を (終端の NULL バイトも含"
-"めて) 保持するのに十分な大きさのメモリを確保し、 最初の引数にその文字列への"
-"ポインタを返す。 このポインタは、不要になったら B<free>(3) に渡し、割り当て"
-"られた記憶領域を解放すべきである。"
+"と B<vsprintf>(3) 関数とに似ているが、 出力文字列を (終端の NULL バイト "
+"(\\(aq\\e0\\(aq) も含めて) 保持するのに十分な大きさのメモリを確保し、 最初の"
+"引数にその文字列へのポインタを返す。 このポインタは、不要になったら B<free>"
+"(3) に渡し、割り当てられた記憶領域を解放すべきである。"
#. type: SH
#: build/C/man3/asprintf.3:53 build/C/man3/ctermid.3:59
#: build/C/man3/fclose.3:59 build/C/man3/fcloseall.3:50
-#: build/C/man3/fflush.3:74 build/C/man3/fgetwc.3:55
-#: build/C/man3/flockfile.3:114 build/C/man3/fmemopen.3:176
+#: build/C/man3/fflush.3:74 build/C/man3/fgetc.3:99 build/C/man3/fgetwc.3:55
+#: build/C/man3/flockfile.3:120 build/C/man3/fmemopen.3:176
#: build/C/man3/fmtmsg.3:152 build/C/man3/fopen.3:189
#: build/C/man3/fopencookie.3:238 build/C/man3/fpurge.3:58
#: build/C/man3/fputwc.3:54 build/C/man3/fread.3:83 build/C/man3/fseek.3:121
-#: build/C/man3/fseeko.3:65 build/C/man3/getline.3:110 build/C/man3/gets.3:111
-#: build/C/man3/getw.3:73 build/C/man2/link.2:52 build/C/man2/llseek.2:62
-#: build/C/man2/lseek.2:153 build/C/man2/open.2:477 build/C/man2/pipe.2:92
+#: build/C/man3/fseeko.3:92 build/C/man3/getline.3:112 build/C/man3/gets.3:50
+#: build/C/man3/getw.3:73 build/C/man2/link.2:176 build/C/man2/llseek.2:62
+#: build/C/man2/lseek.2:179 build/C/man2/open.2:773
+#: build/C/man2/open_by_handle_at.2:245 build/C/man2/pipe.2:129
#: build/C/man3/popen.3:123 build/C/man3/puts.3:84 build/C/man2/read.2:81
-#: build/C/man2/readlink.2:77 build/C/man2/readv.2:177
-#: build/C/man3/remove.3:60 build/C/man2/rename.2:91 build/C/man2/rmdir.2:40
-#: build/C/man3/scanf.3:531 build/C/man3/setbuf.3:152
-#: build/C/man2/symlink.2:84 build/C/man3/tempnam.3:87
-#: build/C/man3/tmpfile.3:47 build/C/man3/tmpnam.3:70 build/C/man2/unlink.2:55
-#: build/C/man3/wprintf.3:187 build/C/man2/write.2:89
+#: build/C/man2/readlink.2:153 build/C/man2/readv.2:177
+#: build/C/man3/remove.3:60 build/C/man2/rename.2:166 build/C/man2/rmdir.2:40
+#: build/C/man3/scanf.3:530 build/C/man3/setbuf.3:152
+#: build/C/man2/symlink.2:140 build/C/man3/tempnam.3:94
+#: build/C/man3/tmpfile.3:47 build/C/man3/tmpnam.3:79
+#: build/C/man2/unlink.2:153 build/C/man3/wprintf.3:203
+#: build/C/man2/write.2:89
#, no-wrap
msgid "RETURN VALUE"
msgstr "返り値"
"は -1 を返し、 I<strp> の内容は未定義となる。"
#. type: SH
-#: build/C/man3/asprintf.3:61 build/C/man3/ctermid.3:61
+#: build/C/man3/asprintf.3:61 build/C/man3/ctermid.3:67
#: build/C/man3/dprintf.3:69 build/C/man3/fclose.3:90
-#: build/C/man3/fcloseall.3:55 build/C/man3/ferror.3:107
-#: build/C/man3/fflush.3:93 build/C/man3/fgetwc.3:67
-#: build/C/man3/flockfile.3:121 build/C/man3/fmemopen.3:195
-#: build/C/man3/fmtmsg.3:225 build/C/man3/fopen.3:246
+#: build/C/man3/fcloseall.3:60 build/C/man3/ferror.3:115
+#: build/C/man3/fflush.3:98 build/C/man3/fgetc.3:124 build/C/man3/fgetwc.3:70
+#: build/C/man3/flockfile.3:135 build/C/man3/fmemopen.3:195
+#: build/C/man3/fmtmsg.3:237 build/C/man3/fopen.3:246
#: build/C/man3/fopencookie.3:245 build/C/man3/fpurge.3:70
-#: build/C/man3/fputwc.3:65 build/C/man3/fread.3:103 build/C/man3/fseek.3:168
-#: build/C/man3/fseeko.3:77 build/C/man3/getline.3:134 build/C/man3/gets.3:138
-#: build/C/man3/getw.3:80 build/C/man2/link.2:138 build/C/man2/llseek.2:81
-#: build/C/man2/lseek.2:191 build/C/man2/open.2:629 build/C/man3/perror.3:111
-#: build/C/man2/pipe.2:118 build/C/man3/popen.3:169 build/C/man3/printf.3:806
-#: build/C/man3/puts.3:103 build/C/man2/read.2:173 build/C/man2/readlink.2:125
-#: build/C/man2/readv.2:214 build/C/man3/remove.3:70 build/C/man2/rename.2:232
-#: build/C/man2/rmdir.2:127 build/C/man3/scanf.3:578 build/C/man3/setbuf.3:164
+#: build/C/man3/fputwc.3:68 build/C/man3/fread.3:103 build/C/man3/fseek.3:169
+#: build/C/man3/fseeko.3:104 build/C/man3/getline.3:139 build/C/man3/gets.3:58
+#: build/C/man3/getw.3:80 build/C/man2/link.2:316 build/C/man2/llseek.2:81
+#: build/C/man2/lseek.2:217 build/C/man2/open.2:1011
+#: build/C/man2/open_by_handle_at.2:352 build/C/man3/perror.3:111
+#: build/C/man2/pipe.2:155 build/C/man3/popen.3:172 build/C/man3/printf.3:807
+#: build/C/man3/puts.3:103 build/C/man2/read.2:173 build/C/man2/readlink.2:216
+#: build/C/man2/readv.2:214 build/C/man3/remove.3:75 build/C/man2/rename.2:330
+#: build/C/man2/rmdir.2:127 build/C/man3/scanf.3:577 build/C/man3/setbuf.3:173
#: build/C/man3/stdin.3:113 build/C/man3/stdio.3:246
-#: build/C/man2/symlink.2:149 build/C/man3/tempnam.3:96
-#: build/C/man3/tmpfile.3:76 build/C/man3/tmpnam.3:77
-#: build/C/man2/unlink.2:141 build/C/man3/unlocked_stdio.3:113
-#: build/C/man3/wprintf.3:195 build/C/man2/write.2:185
+#: build/C/man2/symlink.2:222 build/C/man3/tempnam.3:105
+#: build/C/man3/tmpfile.3:78 build/C/man3/tmpnam.3:96
+#: build/C/man2/unlink.2:273 build/C/man3/unlocked_stdio.3:113
+#: build/C/man3/wprintf.3:211 build/C/man2/write.2:185
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"
"る。"
#. type: SH
-#: build/C/man3/asprintf.3:67 build/C/man3/ctermid.3:71
+#: build/C/man3/asprintf.3:67 build/C/man3/ctermid.3:77
#: build/C/man3/dprintf.3:95 build/C/man3/fclose.3:102
-#: build/C/man3/fcloseall.3:57 build/C/man3/ferror.3:114
-#: build/C/man3/fflush.3:108 build/C/man3/fgetwc.3:84
-#: build/C/man3/flockfile.3:129 build/C/man3/fmemopen.3:341
-#: build/C/man3/fmtmsg.3:297 build/C/man3/fopen.3:348
+#: build/C/man3/fcloseall.3:62 build/C/man3/ferror.3:126
+#: build/C/man3/fflush.3:113 build/C/man3/fgetc.3:133 build/C/man3/fgetwc.3:87
+#: build/C/man3/flockfile.3:143 build/C/man3/fmemopen.3:341
+#: build/C/man3/fmtmsg.3:309 build/C/man3/fopen.3:348
#: build/C/man3/fopencookie.3:437 build/C/man3/fpurge.3:80
-#: build/C/man3/fputwc.3:82 build/C/man3/fread.3:105 build/C/man3/fseek.3:170
-#: build/C/man3/fseeko.3:83 build/C/man3/getline.3:168 build/C/man3/gets.3:173
-#: build/C/man3/getw.3:86 build/C/man2/link.2:187 build/C/man2/llseek.2:87
-#: build/C/man2/lseek.2:236 build/C/man3/lseek64.3:159 build/C/man2/open.2:901
-#: build/C/man3/perror.3:139 build/C/man2/pipe.2:190 build/C/man3/popen.3:198
-#: build/C/man3/printf.3:1080 build/C/man3/puts.3:112 build/C/man2/read.2:187
-#: build/C/man2/readlink.2:214 build/C/man2/readv.2:284
-#: build/C/man3/remove.3:81 build/C/man2/rename.2:245 build/C/man2/rmdir.2:132
-#: build/C/man3/scanf.3:716 build/C/man3/setbuf.3:200 build/C/man3/stdin.3:154
-#: build/C/man3/stdio.3:250 build/C/man3/stdio_ext.3:132
-#: build/C/man2/symlink.2:164 build/C/man7/symlink.7:471
-#: build/C/man3/tempnam.3:166 build/C/man3/tmpfile.3:88
-#: build/C/man3/tmpnam.3:153 build/C/man2/unlink.2:148
-#: build/C/man3/unlocked_stdio.3:136 build/C/man3/wprintf.3:231
+#: build/C/man3/fputwc.3:85 build/C/man3/fread.3:105 build/C/man3/fseek.3:171
+#: build/C/man3/fseeko.3:110 build/C/man3/getline.3:173 build/C/man3/gets.3:90
+#: build/C/man3/getw.3:87 build/C/man2/link.2:369 build/C/man2/llseek.2:87
+#: build/C/man2/lseek.2:262 build/C/man3/lseek64.3:164
+#: build/C/man2/open.2:1444 build/C/man2/open_by_handle_at.2:715
+#: build/C/man3/perror.3:139 build/C/man2/pipe.2:228 build/C/man3/popen.3:201
+#: build/C/man3/printf.3:1085 build/C/man3/puts.3:112 build/C/man2/read.2:187
+#: build/C/man2/readlink.2:313 build/C/man2/readv.2:284
+#: build/C/man3/remove.3:86 build/C/man2/rename.2:347 build/C/man2/rmdir.2:132
+#: build/C/man3/scanf.3:738 build/C/man3/setbuf.3:209 build/C/man3/stdin.3:154
+#: build/C/man3/stdio.3:250 build/C/man3/stdio_ext.3:151
+#: build/C/man2/symlink.2:241 build/C/man7/symlink.7:512
+#: build/C/man3/tempnam.3:168 build/C/man3/tmpfile.3:97
+#: build/C/man3/tmpnam.3:172 build/C/man2/unlink.2:284
+#: build/C/man3/unlocked_stdio.3:136 build/C/man3/wprintf.3:251
#: build/C/man2/write.2:211
#, no-wrap
msgid "SEE ALSO"
msgstr "B<free>(3), B<malloc>(3), B<printf>(3)"
#. type: SH
-#: build/C/man3/asprintf.3:71 build/C/man3/ctermid.3:73
+#: build/C/man3/asprintf.3:71 build/C/man3/ctermid.3:79
#: build/C/man3/dprintf.3:97 build/C/man3/fclose.3:108
-#: build/C/man3/fcloseall.3:63 build/C/man3/ferror.3:119
-#: build/C/man3/fflush.3:116 build/C/man3/fgetwc.3:89
-#: build/C/man3/flockfile.3:131 build/C/man3/fmemopen.3:344
-#: build/C/man3/fmtmsg.3:300 build/C/man3/fopen.3:354
+#: build/C/man3/fcloseall.3:68 build/C/man3/ferror.3:131
+#: build/C/man3/fflush.3:121 build/C/man3/fgetc.3:150 build/C/man3/fgetwc.3:92
+#: build/C/man3/flockfile.3:145 build/C/man3/fmemopen.3:344
+#: build/C/man3/fmtmsg.3:312 build/C/man3/fopen.3:354
#: build/C/man3/fopencookie.3:442 build/C/man3/fpurge.3:85
-#: build/C/man3/fputwc.3:86 build/C/man3/fread.3:111 build/C/man3/fseek.3:173
-#: build/C/man3/fseeko.3:85 build/C/man3/getline.3:175 build/C/man3/gets.3:189
-#: build/C/man3/getw.3:92 build/C/man2/link.2:197 build/C/man2/llseek.2:90
-#: build/C/man2/lseek.2:243 build/C/man3/lseek64.3:162 build/C/man2/open.2:923
-#: build/C/man3/perror.3:144 build/C/man2/pipe.2:197 build/C/man3/popen.3:208
-#: build/C/man3/printf.3:1089 build/C/man3/puts.3:124 build/C/man2/read.2:200
-#: build/C/man2/readlink.2:222 build/C/man2/readv.2:288
-#: build/C/man3/remove.3:92 build/C/man2/rename.2:254 build/C/man2/rmdir.2:141
-#: build/C/man3/scanf.3:723 build/C/man3/setbuf.3:208 build/C/man3/stdin.3:160
-#: build/C/man3/stdio.3:257 build/C/man3/stdio_ext.3:135
-#: build/C/man2/symlink.2:176 build/C/man7/symlink.7:489
-#: build/C/man3/tempnam.3:171 build/C/man3/tmpfile.3:94
-#: build/C/man3/tmpnam.3:158 build/C/man2/unlink.2:161
-#: build/C/man3/unlocked_stdio.3:139 build/C/man3/wprintf.3:238
-#: build/C/man2/write.2:223
+#: build/C/man3/fputwc.3:89 build/C/man3/fread.3:111 build/C/man3/fseek.3:174
+#: build/C/man3/fseeko.3:112 build/C/man3/getline.3:179
+#: build/C/man3/gets.3:108 build/C/man3/getw.3:93 build/C/man2/link.2:378
+#: build/C/man2/llseek.2:90 build/C/man2/lseek.2:269
+#: build/C/man3/lseek64.3:167 build/C/man2/open.2:1466
+#: build/C/man2/open_by_handle_at.2:731 build/C/man3/perror.3:144
+#: build/C/man2/pipe.2:235 build/C/man3/popen.3:211 build/C/man3/printf.3:1094
+#: build/C/man3/puts.3:124 build/C/man2/read.2:200 build/C/man2/readlink.2:320
+#: build/C/man2/readv.2:288 build/C/man3/remove.3:97 build/C/man2/rename.2:355
+#: build/C/man2/rmdir.2:141 build/C/man3/scanf.3:745 build/C/man3/setbuf.3:217
+#: build/C/man3/stdin.3:160 build/C/man3/stdio.3:257
+#: build/C/man3/stdio_ext.3:154 build/C/man2/symlink.2:252
+#: build/C/man7/symlink.7:530 build/C/man3/tempnam.3:173
+#: build/C/man3/tmpfile.3:103 build/C/man3/tmpnam.3:177
+#: build/C/man2/unlink.2:296 build/C/man3/unlocked_stdio.3:139
+#: build/C/man3/wprintf.3:258 build/C/man2/write.2:223
#, no-wrap
msgid "COLOPHON"
msgstr "この文書について"
#. type: Plain text
-#: build/C/man3/asprintf.3:78 build/C/man3/ctermid.3:80
+#: build/C/man3/asprintf.3:78 build/C/man3/ctermid.3:86
#: build/C/man3/dprintf.3:104 build/C/man3/fclose.3:115
-#: build/C/man3/fcloseall.3:70 build/C/man3/ferror.3:126
-#: build/C/man3/fflush.3:123 build/C/man3/fgetwc.3:96
-#: build/C/man3/flockfile.3:138 build/C/man3/fmemopen.3:351
-#: build/C/man3/fmtmsg.3:307 build/C/man3/fopen.3:361
+#: build/C/man3/fcloseall.3:75 build/C/man3/ferror.3:138
+#: build/C/man3/fflush.3:128 build/C/man3/fgetc.3:157 build/C/man3/fgetwc.3:99
+#: build/C/man3/flockfile.3:152 build/C/man3/fmemopen.3:351
+#: build/C/man3/fmtmsg.3:319 build/C/man3/fopen.3:361
#: build/C/man3/fopencookie.3:449 build/C/man3/fpurge.3:92
-#: build/C/man3/fputwc.3:93 build/C/man3/fread.3:118 build/C/man3/fseek.3:180
-#: build/C/man3/fseeko.3:92 build/C/man3/getline.3:182 build/C/man3/gets.3:196
-#: build/C/man3/getw.3:99 build/C/man2/link.2:204 build/C/man2/llseek.2:97
-#: build/C/man2/lseek.2:250 build/C/man3/lseek64.3:169 build/C/man2/open.2:930
-#: build/C/man3/perror.3:151 build/C/man2/pipe.2:204 build/C/man3/popen.3:215
-#: build/C/man3/printf.3:1096 build/C/man3/puts.3:131 build/C/man2/read.2:207
-#: build/C/man2/readlink.2:229 build/C/man2/readv.2:295
-#: build/C/man3/remove.3:99 build/C/man2/rename.2:261 build/C/man2/rmdir.2:148
-#: build/C/man3/scanf.3:730 build/C/man3/setbuf.3:215 build/C/man3/stdin.3:167
-#: build/C/man3/stdio.3:264 build/C/man3/stdio_ext.3:142
-#: build/C/man2/symlink.2:183 build/C/man7/symlink.7:496
-#: build/C/man3/tempnam.3:178 build/C/man3/tmpfile.3:101
-#: build/C/man3/tmpnam.3:165 build/C/man2/unlink.2:168
-#: build/C/man3/unlocked_stdio.3:146 build/C/man3/wprintf.3:245
-#: build/C/man2/write.2:230
-msgid ""
-"This page is part of release 3.50 of the Linux I<man-pages> project. A "
+#: build/C/man3/fputwc.3:96 build/C/man3/fread.3:118 build/C/man3/fseek.3:181
+#: build/C/man3/fseeko.3:119 build/C/man3/getline.3:186
+#: build/C/man3/gets.3:115 build/C/man3/getw.3:100 build/C/man2/link.2:385
+#: build/C/man2/llseek.2:97 build/C/man2/lseek.2:276
+#: build/C/man3/lseek64.3:174 build/C/man2/open.2:1473
+#: build/C/man2/open_by_handle_at.2:738 build/C/man3/perror.3:151
+#: build/C/man2/pipe.2:242 build/C/man3/popen.3:218 build/C/man3/printf.3:1101
+#: build/C/man3/puts.3:131 build/C/man2/read.2:207 build/C/man2/readlink.2:327
+#: build/C/man2/readv.2:295 build/C/man3/remove.3:104
+#: build/C/man2/rename.2:362 build/C/man2/rmdir.2:148 build/C/man3/scanf.3:752
+#: build/C/man3/setbuf.3:224 build/C/man3/stdin.3:167 build/C/man3/stdio.3:264
+#: build/C/man3/stdio_ext.3:161 build/C/man2/symlink.2:259
+#: build/C/man7/symlink.7:537 build/C/man3/tempnam.3:180
+#: build/C/man3/tmpfile.3:110 build/C/man3/tmpnam.3:184
+#: build/C/man2/unlink.2:303 build/C/man3/unlocked_stdio.3:146
+#: build/C/man3/wprintf.3:265 build/C/man2/write.2:230
+msgid ""
+"This page is part of release 3.65 of the Linux I<man-pages> project. A "
"description of the project, and information about reporting bugs, can be "
-"found at http://www.kernel.org/doc/man-pages/."
+"found at \\%http://www.kernel.org/doc/man-pages/."
msgstr ""
-"この man ページは Linux I<man-pages> プロジェクトのリリース 3.50 の一部\n"
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.65 の一部\n"
"である。プロジェクトの説明とバグ報告に関する情報は\n"
"http://www.kernel.org/doc/man-pages/ に書かれている。"
#. type: TH
#: build/C/man3/ctermid.3:26
#, no-wrap
-msgid "2007-07-26"
-msgstr "2007-07-26"
+msgid "2013-07-04"
+msgstr "2013-07-04"
#. type: Plain text
#: build/C/man3/ctermid.3:29
msgstr "ctermid - 制御端末名の取得"
#. type: Plain text
-#: build/C/man3/ctermid.3:34 build/C/man3/fgetwc.3:24
+#: build/C/man3/ctermid.3:34 build/C/man3/fgetc.3:33 build/C/man3/fgetwc.3:24
#: build/C/man3/flockfile.3:31 build/C/man3/fmemopen.3:16
#: build/C/man3/fopen.3:50 build/C/man3/fputwc.3:22 build/C/man3/fread.3:51
-#: build/C/man3/fseeko.3:31 build/C/man3/getline.3:32 build/C/man3/gets.3:33
+#: build/C/man3/fseeko.3:31 build/C/man3/getline.3:32 build/C/man3/gets.3:35
#: build/C/man3/getw.3:31 build/C/man3/popen.3:46 build/C/man3/puts.3:32
-#: build/C/man3/scanf.3:58 build/C/man3/setbuf.3:54 build/C/man3/stdin.3:19
-#: build/C/man3/tempnam.3:31 build/C/man3/tmpfile.3:37
+#: build/C/man2/rename.2:39 build/C/man3/scanf.3:58 build/C/man3/setbuf.3:54
+#: build/C/man3/stdin.3:19 build/C/man3/tempnam.3:31 build/C/man3/tmpfile.3:37
#: build/C/man3/tmpnam.3:33 build/C/man3/unlocked_stdio.3:32
#, no-wrap
msgid "B<#include E<lt>stdio.hE<gt>>\n"
#. type: Plain text
#: build/C/man3/ctermid.3:41 build/C/man3/dprintf.3:39
#: build/C/man3/ferror.3:61 build/C/man3/flockfile.3:42
-#: build/C/man3/fmemopen.3:29 build/C/man3/fopen.3:61
-#: build/C/man3/getline.3:42 build/C/man3/getw.3:40 build/C/man3/perror.3:50
-#: build/C/man3/popen.3:55 build/C/man3/printf.3:63 build/C/man2/readlink.2:54
-#: build/C/man2/readv.2:53 build/C/man3/scanf.3:73 build/C/man3/setbuf.3:68
-#: build/C/man2/symlink.2:43 build/C/man3/tempnam.3:38
-#: build/C/man3/unlocked_stdio.3:68 build/C/man3/wprintf.3:39
+#: build/C/man3/fmemopen.3:29 build/C/man3/fopen.3:61 build/C/man3/fseeko.3:41
+#: build/C/man3/getline.3:42 build/C/man3/getw.3:40 build/C/man2/link.2:51
+#: build/C/man2/open.2:73 build/C/man3/perror.3:50 build/C/man3/popen.3:55
+#: build/C/man3/printf.3:63 build/C/man2/readlink.2:64 build/C/man2/readv.2:53
+#: build/C/man2/rename.2:52 build/C/man3/scanf.3:73 build/C/man3/setbuf.3:68
+#: build/C/man2/symlink.2:52 build/C/man3/tempnam.3:38
+#: build/C/man2/unlink.2:51 build/C/man3/unlocked_stdio.3:68
+#: build/C/man3/wprintf.3:39
msgid ""
"Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
msgid "The pointer to the pathname."
msgstr "パス名へのポインタ。"
+#. type: SH
+#: build/C/man3/ctermid.3:61 build/C/man3/fcloseall.3:55
+#: build/C/man3/ferror.3:106 build/C/man3/fflush.3:93
+#: build/C/man3/flockfile.3:127 build/C/man3/fmtmsg.3:225
+#: build/C/man3/lseek64.3:159 build/C/man3/remove.3:70
+#: build/C/man3/setbuf.3:164 build/C/man3/stdio_ext.3:132
+#: build/C/man3/tmpnam.3:86
+#, no-wrap
+msgid "ATTRIBUTES"
+msgstr "属性"
+
+#. type: SS
+#: build/C/man3/ctermid.3:62 build/C/man3/fcloseall.3:56
+#: build/C/man3/ferror.3:107 build/C/man3/fflush.3:94
+#: build/C/man3/flockfile.3:128 build/C/man3/fmtmsg.3:226
+#: build/C/man3/lseek64.3:160 build/C/man3/remove.3:71
+#: build/C/man3/setbuf.3:165 build/C/man3/stdio_ext.3:133
+#: build/C/man3/tmpnam.3:87
+#, no-wrap
+msgid "Multithreading (see pthreads(7))"
+msgstr "マルチスレッディング (pthreads(7) 参照)"
+
+#. type: Plain text
+#: build/C/man3/ctermid.3:67
+msgid ""
+"The B<ctermid>() function is thread-safe with exceptions. It is not thread-"
+"safe if called with a NULL parameter."
+msgstr ""
+"B<ctermid>() 関数は例外付きでスレッドセーフである。 NULL パラメータで呼び出さ"
+"れた場合はスレッドセーフではない。"
+
#. type: Plain text
-#: build/C/man3/ctermid.3:63
+#: build/C/man3/ctermid.3:69
msgid "Svr4, POSIX.1-2001."
msgstr "SVr4, POSIX.1-2001."
#. type: SH
-#: build/C/man3/ctermid.3:63 build/C/man3/fmemopen.3:213
-#: build/C/man3/fopen.3:331 build/C/man3/gets.3:152 build/C/man3/getw.3:82
-#: build/C/man2/link.2:181 build/C/man2/open.2:890 build/C/man3/popen.3:175
-#: build/C/man3/printf.3:929 build/C/man3/puts.3:105 build/C/man2/readv.2:258
-#: build/C/man3/remove.3:78 build/C/man2/rename.2:234 build/C/man2/rmdir.2:129
-#: build/C/man3/scanf.3:647 build/C/man3/setbuf.3:170
-#: build/C/man3/tempnam.3:156 build/C/man3/tmpnam.3:146
-#: build/C/man2/unlink.2:145
+#: build/C/man3/ctermid.3:69 build/C/man3/fmemopen.3:213
+#: build/C/man3/fopen.3:331 build/C/man3/gets.3:72 build/C/man3/getw.3:83
+#: build/C/man2/link.2:363 build/C/man2/open.2:1425 build/C/man3/popen.3:178
+#: build/C/man3/printf.3:930 build/C/man3/puts.3:105 build/C/man2/readv.2:258
+#: build/C/man3/remove.3:83 build/C/man2/rename.2:336 build/C/man2/rmdir.2:129
+#: build/C/man3/scanf.3:669 build/C/man3/setbuf.3:179
+#: build/C/man3/tempnam.3:165 build/C/man3/tmpnam.3:165
+#: build/C/man2/unlink.2:281
#, no-wrap
msgid "BUGS"
msgstr "バグ"
#. type: Plain text
-#: build/C/man3/ctermid.3:67
+#: build/C/man3/ctermid.3:73
msgid ""
"The path returned may not uniquely identify the controlling terminal; it "
"may, for example, be I</dev/tty>."
#. in glibc 2.3.x, x >= 4, the glibc headers threw an error
#. if ctermid() was given an argument; fixed in 2.4.
#. type: Plain text
-#: build/C/man3/ctermid.3:71
+#: build/C/man3/ctermid.3:77
msgid "It is not assured that the program can open the terminal."
msgstr "プログラムが端末をオープンできることは保証されていない。"
#. type: Plain text
-#: build/C/man3/ctermid.3:73
+#: build/C/man3/ctermid.3:79
msgid "B<ttyname>(3)"
msgstr "B<ttyname>(3)"
#. type: TP
#: build/C/man3/dprintf.3:46 build/C/man3/fmemopen.3:37
-#: build/C/man3/getline.3:49
+#: build/C/man3/getline.3:49 build/C/man2/link.2:57 build/C/man2/open.2:79
+#: build/C/man2/readlink.2:77 build/C/man2/rename.2:58
+#: build/C/man2/symlink.2:65 build/C/man2/unlink.2:57
#, no-wrap
msgid "Since glibc 2.10:"
msgstr "glibc 2.10 以降:"
#. type: Plain text
-#: build/C/man3/dprintf.3:49 build/C/man3/fmemopen.3:40
+#: build/C/man3/dprintf.3:49 build/C/man3/fmemopen.3:40 build/C/man2/link.2:60
+#: build/C/man2/open.2:82 build/C/man2/readlink.2:80 build/C/man2/rename.2:61
+#: build/C/man2/symlink.2:68 build/C/man2/unlink.2:60
msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
msgstr "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
#. type: TP
#: build/C/man3/dprintf.3:49 build/C/man3/fmemopen.3:40
-#: build/C/man3/getline.3:52
+#: build/C/man3/getline.3:52 build/C/man2/link.2:60 build/C/man2/open.2:82
+#: build/C/man2/readlink.2:80 build/C/man2/rename.2:61
+#: build/C/man2/symlink.2:68 build/C/man2/unlink.2:60
#, no-wrap
msgid "Before glibc 2.10:"
msgstr "glibc 2.10 より前:"
"は 未定義の動作を生じさせる。"
#. type: SH
-#: build/C/man3/fclose.3:70 build/C/man3/ferror.3:97 build/C/man3/fflush.3:81
-#: build/C/man3/fgetwc.3:61 build/C/man3/flockfile.3:119
-#: build/C/man3/fopen.3:201 build/C/man3/fpurge.3:65 build/C/man3/fputwc.3:60
-#: build/C/man3/fseek.3:136 build/C/man3/fseeko.3:74
-#: build/C/man3/getline.3:122 build/C/man2/link.2:57 build/C/man2/llseek.2:69
-#: build/C/man2/lseek.2:161 build/C/man2/open.2:485 build/C/man2/pipe.2:97
-#: build/C/man3/popen.3:143 build/C/man2/read.2:95 build/C/man2/readlink.2:85
-#: build/C/man2/readv.2:188 build/C/man3/remove.3:65 build/C/man2/rename.2:96
-#: build/C/man2/rmdir.2:45 build/C/man3/scanf.3:548 build/C/man2/symlink.2:89
-#: build/C/man3/tempnam.3:92 build/C/man3/tmpfile.3:54
-#: build/C/man3/tmpnam.3:75 build/C/man2/unlink.2:60 build/C/man2/write.2:107
+#: build/C/man3/fclose.3:70 build/C/man3/ferror.3:96 build/C/man3/fflush.3:81
+#: build/C/man3/fgetwc.3:64 build/C/man3/flockfile.3:125
+#: build/C/man3/fopen.3:201 build/C/man3/fpurge.3:65 build/C/man3/fputwc.3:63
+#: build/C/man3/fseek.3:136 build/C/man3/fseeko.3:101
+#: build/C/man3/getline.3:127 build/C/man2/link.2:181 build/C/man2/llseek.2:69
+#: build/C/man2/lseek.2:187 build/C/man2/open.2:782
+#: build/C/man2/open_by_handle_at.2:256 build/C/man2/pipe.2:134
+#: build/C/man3/popen.3:146 build/C/man2/read.2:95 build/C/man2/readlink.2:159
+#: build/C/man2/readv.2:188 build/C/man3/remove.3:65 build/C/man2/rename.2:171
+#: build/C/man2/rmdir.2:45 build/C/man3/scanf.3:547 build/C/man2/symlink.2:145
+#: build/C/man3/tempnam.3:101 build/C/man3/tmpfile.3:56
+#: build/C/man3/tmpnam.3:84 build/C/man2/unlink.2:158 build/C/man2/write.2:107
#, no-wrap
msgid "ERRORS"
msgstr "エラー"
#. type: TP
#: build/C/man3/fclose.3:71 build/C/man3/fflush.3:82 build/C/man3/fpurge.3:66
-#: build/C/man3/fseek.3:137 build/C/man2/llseek.2:70 build/C/man2/lseek.2:162
-#: build/C/man2/read.2:114 build/C/man3/scanf.3:554 build/C/man2/write.2:126
+#: build/C/man3/fseek.3:137 build/C/man2/link.2:265 build/C/man2/llseek.2:70
+#: build/C/man2/lseek.2:188 build/C/man2/open.2:997
+#: build/C/man2/open_by_handle_at.2:317 build/C/man2/read.2:114
+#: build/C/man2/readlink.2:202 build/C/man2/rename.2:310
+#: build/C/man3/scanf.3:553 build/C/man2/symlink.2:208
+#: build/C/man2/unlink.2:248 build/C/man2/write.2:126
#, no-wrap
msgid "B<EBADF>"
msgstr "B<EBADF>"
"された値に設定される。"
#. type: Plain text
-#: build/C/man3/fclose.3:92 build/C/man3/fseek.3:170 build/C/man3/puts.3:105
+#: build/C/man3/fclose.3:92 build/C/man3/fseek.3:171 build/C/man3/puts.3:105
msgid "C89, C99."
msgstr "C89, C99."
#. type: SH
-#: build/C/man3/fclose.3:92 build/C/man3/fflush.3:99 build/C/man3/fgetwc.3:69
-#: build/C/man3/fmemopen.3:207 build/C/man3/fmtmsg.3:240
-#: build/C/man3/fopen.3:255 build/C/man3/fpurge.3:78 build/C/man3/fputwc.3:67
-#: build/C/man3/fseeko.3:79 build/C/man2/link.2:143 build/C/man2/llseek.2:84
-#: build/C/man2/lseek.2:201 build/C/man2/open.2:655 build/C/man3/perror.3:124
-#: build/C/man3/printf.3:867 build/C/man2/read.2:175
-#: build/C/man2/readlink.2:130 build/C/man2/readv.2:226
-#: build/C/man3/remove.3:72 build/C/man3/scanf.3:609 build/C/man3/stdin.3:122
-#: build/C/man2/symlink.2:155 build/C/man3/tempnam.3:101
-#: build/C/man3/tmpfile.3:78 build/C/man3/tmpnam.3:82
-#: build/C/man3/wprintf.3:197 build/C/man2/write.2:194
+#: build/C/man3/fclose.3:92 build/C/man3/fflush.3:104 build/C/man3/fgetwc.3:72
+#: build/C/man3/fmemopen.3:207 build/C/man3/fmtmsg.3:252
+#: build/C/man3/fopen.3:255 build/C/man3/fpurge.3:78 build/C/man3/fputwc.3:70
+#: build/C/man3/fseeko.3:106 build/C/man2/link.2:325 build/C/man2/llseek.2:84
+#: build/C/man2/lseek.2:227 build/C/man2/open.2:1055
+#: build/C/man2/open_by_handle_at.2:354 build/C/man3/perror.3:124
+#: build/C/man3/printf.3:868 build/C/man2/read.2:175
+#: build/C/man2/readlink.2:225 build/C/man2/readv.2:226
+#: build/C/man3/remove.3:77 build/C/man3/scanf.3:608 build/C/man3/stdin.3:122
+#: build/C/man2/symlink.2:232 build/C/man3/tempnam.3:110
+#: build/C/man3/tmpfile.3:80 build/C/man3/tmpnam.3:101
+#: build/C/man3/wprintf.3:213 build/C/man2/write.2:194
#, no-wrap
msgid "NOTES"
msgstr "注意"
#. type: Plain text
#: build/C/man3/fclose.3:102
-#, fuzzy
-#| msgid ""
-#| "Note that B<fclose>() only flushes the user space buffers provided by "
-#| "the C library. To ensure that the data is physically stored on disk the "
-#| "kernel buffers must be flushed too, for example, with B<sync>(2) or "
-#| "B<fsync>(2)."
msgid ""
"Note that B<fclose>() only flushes the user-space buffers provided by the C "
"library. To ensure that the data is physically stored on disk the kernel "
msgid "FCLOSEALL"
msgstr "FCLOSEALL"
-#. type: TH
-#: build/C/man3/fcloseall.3:25
-#, no-wrap
-msgid "2006-12-27"
-msgstr "2006-12-27"
-
#. type: Plain text
#: build/C/man3/fcloseall.3:28
msgid "fcloseall - close all open streams"
"B<EOF> を返す。"
#. type: Plain text
-#: build/C/man3/fcloseall.3:57
+#: build/C/man3/fcloseall.3:60
+msgid ""
+"The B<fcloseall>() function does not lock the streams, so it is not thread-"
+"safe."
+msgstr ""
+"B<fcloseall>() 関数はストリームのロックを行わない。そのため、スレッドセーフで"
+"はない。"
+
+#. type: Plain text
+#: build/C/man3/fcloseall.3:62
msgid "This function is a GNU extension."
msgstr "この関数は GNU 拡張である。"
#. type: Plain text
-#: build/C/man3/fcloseall.3:63
+#: build/C/man3/fcloseall.3:68
msgid "B<close>(2), B<fclose>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
msgstr "B<close>(2), B<fclose>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
msgstr "FERROR"
#. type: TH
-#: build/C/man3/ferror.3:44 build/C/man3/flockfile.3:25
-#: build/C/man3/unlocked_stdio.3:25
+#: build/C/man3/ferror.3:44
#, no-wrap
-msgid "2008-08-29"
-msgstr "2008-08-29"
+msgid "2014-01-15"
+msgstr "2014-01-15"
#. type: Plain text
#: build/C/man3/ferror.3:47
"子とエラー指示子をクリアする。"
#. type: Plain text
-#: build/C/man3/ferror.3:79
+#: build/C/man3/ferror.3:78
msgid ""
"The function B<feof>() tests the end-of-file indicator for the stream "
"pointed to by I<stream>, returning nonzero if it is set. The end-of-file "
-"indicator can only be cleared by the function B<clearerr>()."
+"indicator can be cleared only by the function B<clearerr>()."
msgstr ""
"関数 B<feof>() は I<stream> で示されるストリームの EOF 指示子をテストし、 "
"セットされていれば 0 以外の数を返す。 EOF 指示子は、関数 B<clearerr>() に"
"よってのみクリアすることができる。"
#. type: Plain text
-#: build/C/man3/ferror.3:88
+#: build/C/man3/ferror.3:87
msgid ""
"The function B<ferror>() tests the error indicator for the stream pointed "
-"to by I<stream>, returning nonzero if it is set. The error indicator can "
-"only be reset by the B<clearerr>() function."
+"to by I<stream>, returning nonzero if it is set. The error indicator can be "
+"reset only by the B<clearerr>() function."
msgstr ""
"関数 B<ferror>() は I<stream> で示されるストリームのエラー指示子をテスト"
"し、 セットされていれば 0 以外の数を返す。 エラー指示子は、関数 B<clearerr>"
"() によってのみリセットすることができる。"
#. type: Plain text
-#: build/C/man3/ferror.3:94
+#: build/C/man3/ferror.3:93
msgid ""
"The function B<fileno>() examines the argument I<stream> and returns its "
"integer descriptor."
"関数 B<fileno>() は、引数 I<stream> を調べ、その整数のディスクリプタを返す。"
#. type: Plain text
-#: build/C/man3/ferror.3:97 build/C/man3/fgetwc.3:55 build/C/man3/fputwc.3:54
-#: build/C/man3/fread.3:83 build/C/man3/gets.3:111 build/C/man3/puts.3:84
+#: build/C/man3/ferror.3:96 build/C/man3/fgetc.3:99 build/C/man3/fgetwc.3:55
+#: build/C/man3/fputwc.3:54 build/C/man3/fread.3:83 build/C/man3/puts.3:84
msgid "For nonlocking counterparts, see B<unlocked_stdio>(3)."
msgstr ""
"これらの処理を停止せずに行いたいときは、 B<unlocked_stdio>(3) を参照のこと。"
#. type: Plain text
-#: build/C/man3/ferror.3:107
+#: build/C/man3/ferror.3:106
msgid ""
"These functions should not fail and do not set the external variable "
"I<errno>. (However, in case B<fileno>() detects that its argument is not a "
"合、 関数は -1 を返し、 I<errno> に B<EBADF> を設定しなければならない。)"
#. type: Plain text
-#: build/C/man3/ferror.3:114
+#: build/C/man3/ferror.3:115
+msgid ""
+"The B<clearerr>(), B<feof>(), B<ferror>(), and B<fileno>() functions are "
+"thread-safe."
+msgstr ""
+"関数 B<clearerr>(), B<feof>(), B<ferror>(), B<fileno>() はスレッドセーフであ"
+"る。"
+
+#. type: Plain text
+#: build/C/man3/ferror.3:122
msgid ""
-"The functions B<clearerr>(), B<feof>(), and B<ferror>() conform to C89 and "
-"C99."
+"The functions B<clearerr>(), B<feof>(), and B<ferror>() conform to C89, "
+"C99, POSIX.1-2001, and POSIX.1-2008."
msgstr ""
-"関数 B<clearerr>(), B<feof>(), B<ferror>() は C89 と C99 に準拠している。"
+"関数 B<clearerr>(), B<feof>(), B<ferror>() は C89, C99, POSIX.1-2001, "
+"POSIX.1-2008 に準拠している。"
+
+#. type: Plain text
+#: build/C/man3/ferror.3:126
+msgid "The function B<fileno>() conforms to POSIX.1-2001 and POSIX.1-2008."
+msgstr "関数 B<fileno>() は POSIX.1-2001 と POSIX.1-2008 に準拠している。"
#. type: Plain text
-#: build/C/man3/ferror.3:119
+#: build/C/man3/ferror.3:131
msgid "B<open>(2), B<fdopen>(3), B<stdio>(3), B<unlocked_stdio>(3)"
msgstr "B<open>(2), B<fdopen>(3), B<stdio>(3), B<unlocked_stdio>(3)"
#. type: TH
#: build/C/man3/fflush.3:45
#, no-wrap
-msgid "2009-09-06"
-msgstr "2009-09-06"
+msgid "2013-07-15"
+msgstr "2013-07-15"
#. type: Plain text
#: build/C/man3/fflush.3:48
"ある。 この場合 I<errno> もその値に設定される。"
#. type: Plain text
-#: build/C/man3/fflush.3:95
+#: build/C/man3/fflush.3:98
+msgid "The B<fflush>() function is thread-safe."
+msgstr "関数 B<fflush>() はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/fflush.3:100
msgid "C89, C99, POSIX.1-2001, POSIX.1-2008."
msgstr "C89, C99, POSIX.1-2001, POSIX.1-2008."
#. Verified on: Solaris 8.
#. type: Plain text
-#: build/C/man3/fflush.3:99
+#: build/C/man3/fflush.3:104
msgid ""
"The standards do not specify the behavior for input streams. Most other "
"implementations behave the same as Linux."
"は Linux と同じ動作をする。"
#. type: Plain text
-#: build/C/man3/fflush.3:108
-#, fuzzy
-#| msgid ""
-#| "Note that B<fflush>() only flushes the user space buffers provided by "
-#| "the C library. To ensure that the data is physically stored on disk the "
-#| "kernel buffers must be flushed too, for example, with B<sync>(2) or "
-#| "B<fsync>(2)."
+#: build/C/man3/fflush.3:113
msgid ""
"Note that B<fflush>() only flushes the user-space buffers provided by the C "
"library. To ensure that the data is physically stored on disk the kernel "
"B<fsync>(2) を用いる。"
#. type: Plain text
-#: build/C/man3/fflush.3:116
+#: build/C/man3/fflush.3:121
msgid ""
"B<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), B<setbuf>"
"(3), B<unlocked_stdio>(3)"
"(3), B<unlocked_stdio>(3)"
#. type: TH
+#: build/C/man3/fgetc.3:27
+#, no-wrap
+msgid "FGETC"
+msgstr "FGETC"
+
+#. type: TH
+#: build/C/man3/fgetc.3:27
+#, no-wrap
+msgid "2013-12-31"
+msgstr "2013-12-31"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:30
+msgid "fgetc, fgets, getc, getchar, ungetc - input of characters and strings"
+msgstr "fgetc, fgets, getc, getchar, ungetc - 文字と文字列の入力"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:35
+#, no-wrap
+msgid "B<int fgetc(FILE *>I<stream>B<);>\n"
+msgstr "B<int fgetc(FILE *>I<stream>B<);>\n"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:37
+#, no-wrap
+msgid "B<char *fgets(char *>I<s>B<, int >I<size>B<, FILE *>I<stream>B<);>\n"
+msgstr "B<char *fgets(char *>I<s>B<, int >I<size>B<, FILE *>I<stream>B<);>\n"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:39
+#, no-wrap
+msgid "B<int getc(FILE *>I<stream>B<);>\n"
+msgstr "B<int getc(FILE *>I<stream>B<);>\n"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:41
+#, no-wrap
+msgid "B<int getchar(void);>\n"
+msgstr "B<int getchar(void);>\n"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:43
+#, no-wrap
+msgid "B<int ungetc(int >I<c>B<, FILE *>I<stream>B<);>\n"
+msgstr "B<int ungetc(int >I<c>B<, FILE *>I<stream>B<);>\n"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:55
+msgid ""
+"B<fgetc>() reads the next character from I<stream> and returns it as an "
+"I<unsigned char> cast to an I<int>, or B<EOF> on end of file or error."
+msgstr ""
+"B<fgetc>() は、 I<stream> から次の文字を I<unsigned char> として読み、 "
+"I<int> にキャストして返す。ファイルの終わりやエラーとなった場合は B<EOF> を返"
+"す。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:62
+msgid ""
+"B<getc>() is equivalent to B<fgetc>() except that it may be implemented as "
+"a macro which evaluates I<stream> more than once."
+msgstr ""
+"B<getc>() は B<fgetc>() と同様だが、 I<stream> を複数回評価するマクロとして"
+"実装されているかもしれない。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:66
+msgid "B<getchar>() is equivalent to B<getc(>I<stdin>B<)>."
+msgstr "B<getchar>() は B<getc(>I<stdin>B<)> と同じである。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:80
+msgid ""
+"B<fgets>() reads in at most one less than I<size> characters from I<stream> "
+"and stores them into the buffer pointed to by I<s>. Reading stops after an "
+"B<EOF> or a newline. If a newline is read, it is stored into the buffer. A "
+"terminating null byte (\\(aq\\e0\\(aq) is stored after the last character "
+"in the buffer."
+msgstr ""
+"B<fgets>() は I<stream> から最大で I<size> - 1 個の文字を読み込み、 I<s> が"
+"指すバッファに格納する。読み込みは B<EOF> または改行文字を読み込んだ後で停止"
+"する。 読み込まれた改行文字はバッファに格納される。 終端の NULL バイト (\\(aq"
+"\\e0\\(aq) が一つバッファの中の最後の文字の後に書き込まれる。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:91
+msgid ""
+"B<ungetc>() pushes I<c> back to I<stream>, cast to I<unsigned char>, where "
+"it is available for subsequent read operations. Pushed-back characters will "
+"be returned in reverse order; only one pushback is guaranteed."
+msgstr ""
+"B<ungetc>() は、後の read 操作で読めるように、 I<c> を I<unsigned char> に"
+"キャストして I<stream> に書き戻す。 書き戻された文字は逆順に戻される; 書き戻"
+"しとして保証されているのは、一文字だけである。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:96
+msgid ""
+"Calls to the functions described here can be mixed with each other and with "
+"calls to other input functions from the I<stdio> library for the same input "
+"stream."
+msgstr ""
+"ここで述べた関数や I<stdio> ライブラリの入力関数を同じ入力ストリームに対して"
+"互いに混ぜて使うことができる。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:111
+msgid ""
+"B<fgetc>(), B<getc>() and B<getchar>() return the character read as an "
+"I<unsigned char> cast to an I<int> or B<EOF> on end of file or error."
+msgstr ""
+"B<fgetc>(), B<getc>(), B<getchar>() は、文字を I<unsigned char> として読ん"
+"で I<int> にキャストして返す。ファイルの終わりやエラーの場合は B<EOF> を返"
+"す。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:117
+msgid ""
+"B<fgets>() returns I<s> on success, and NULL on error or when end of file "
+"occurs while no characters have been read."
+msgstr ""
+"B<fgets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込んでいないのに"
+"ファイルの終わりになった 場合に NULL を返す。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:124
+msgid "B<ungetc>() returns I<c> on success, or B<EOF> on error."
+msgstr "B<ungetc>() は成功すると I<c> を返し、エラーの場合は B<EOF> を返す。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:126 build/C/man3/gets.3:60
+msgid "C89, C99, POSIX.1-2001."
+msgstr "C89, C99, POSIX.1-2001."
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:133
+msgid ""
+"It is not advisable to mix calls to input functions from the I<stdio> "
+"library with low-level calls to B<read>(2) for the file descriptor "
+"associated with the input stream; the results will be undefined and very "
+"probably not what you want."
+msgstr ""
+"入力ストリームのファイルディスクリプタに対して、 I<stdio> ライブラリの入力関"
+"数と、低レベル呼び出しの B<read>(2) を混ぜて呼び出す事は勧められない。 結果"
+"がどうなるかは分からず、おそらくあなたの 望んでいる結果にはならないだろう。"
+
+#. type: Plain text
+#: build/C/man3/fgetc.3:150
+msgid ""
+"B<read>(2), B<write>(2), B<ferror>(3), B<fgetwc>(3), B<fgetws>(3), B<fopen>"
+"(3), B<fread>(3), B<fseek>(3), B<getline>(3), B<gets>(3), B<getwchar>(3), "
+"B<puts>(3), B<scanf>(3), B<ungetwc>(3), B<unlocked_stdio>(3), "
+"B<feature_test_macros>(7)"
+msgstr ""
+"B<read>(2), B<write>(2), B<ferror>(3), B<fgetwc>(3), B<fgetws>(3), B<fopen>"
+"(3), B<fread>(3), B<fseek>(3), B<getline>(3), B<gets>(3), B<getwchar>(3), "
+"B<puts>(3), B<scanf>(3), B<ungetwc>(3), B<unlocked_stdio>(3), "
+"B<feature_test_macros>(7)"
+
+#. type: TH
#: build/C/man3/fgetwc.3:18
#, no-wrap
msgid "FGETWC"
msgstr "FGETWC"
#. type: TH
-#: build/C/man3/fgetwc.3:18 build/C/man3/fputwc.3:16
+#: build/C/man3/fgetwc.3:18 build/C/man3/fputwc.3:16 build/C/man3/popen.3:40
#, no-wrap
-msgid "1999-07-25"
-msgstr "1999-07-25"
+msgid "2013-04-19"
+msgstr "2013-04-19"
#. type: Plain text
#: build/C/man3/fgetwc.3:21
"ない。この関数を使う理由はもはや存在しない。"
#. type: Plain text
-#: build/C/man3/fgetwc.3:61
+#: build/C/man3/fgetwc.3:64
msgid ""
"The B<fgetwc>() function returns the next wide-character from the stream, "
-"or B<WEOF>."
+"or B<WEOF>. In the event of an error, I<errno> is set to indicate the cause."
msgstr ""
-"B<fgetwc>() 関数はストリームの次のワイド文字か、あるいは B<WEOF> を返す。"
+"B<fgetwc>() 関数はストリームの次のワイド文字か、あるいは B<WEOF> を返す。 エ"
+"ラーが起こった場合、 I<errno> にエラーの原因を示す値が設定される。"
#. type: Plain text
-#: build/C/man3/fgetwc.3:63 build/C/man3/fputwc.3:62
+#: build/C/man3/fgetwc.3:66 build/C/man3/fputwc.3:65
msgid "Apart from the usual ones, there is"
msgstr "通常のエラーに加えて、以下のエラーがある:"
#. type: TP
-#: build/C/man3/fgetwc.3:63 build/C/man3/fputwc.3:62 build/C/man3/scanf.3:559
+#: build/C/man3/fgetwc.3:66 build/C/man3/fputwc.3:65 build/C/man3/scanf.3:558
#, no-wrap
msgid "B<EILSEQ>"
msgstr "B<EILSEQ>"
#. type: Plain text
-#: build/C/man3/fgetwc.3:67
+#: build/C/man3/fgetwc.3:70
msgid ""
"The data obtained from the input stream does not form a valid character."
msgstr "入力ストリームから取得したデータが、正しい文字でない。"
#. type: Plain text
-#: build/C/man3/fgetwc.3:69 build/C/man3/fputwc.3:67
+#: build/C/man3/fgetwc.3:72 build/C/man3/fputwc.3:70
msgid "C99, POSIX.1-2001."
msgstr "C99, POSIX.1-2001."
#. type: Plain text
-#: build/C/man3/fgetwc.3:76
+#: build/C/man3/fgetwc.3:79
msgid ""
"The behavior of B<fgetwc>() depends on the B<LC_CTYPE> category of the "
"current locale."
"B<fgetwc>() の動作は、現在のロケールの B<LC_CTYPE> カテゴリに依存する。"
#. type: Plain text
-#: build/C/man3/fgetwc.3:84
+#: build/C/man3/fgetwc.3:87
msgid ""
"In the absence of additional information passed to the B<fopen>(3) call, it "
"is reasonable to expect that B<fgetwc>() will actually read a multibyte "
"換すると期待することは適切である。"
#. type: Plain text
-#: build/C/man3/fgetwc.3:89
+#: build/C/man3/fgetwc.3:92
msgid "B<fgetws>(3), B<fputwc>(3), B<ungetwc>(3), B<unlocked_stdio>(3)"
msgstr "B<fgetws>(3), B<fputwc>(3), B<ungetwc>(3), B<unlocked_stdio>(3)"
msgid "FLOCKFILE"
msgstr "FLOCKFILE"
+#. type: TH
+#: build/C/man3/flockfile.3:25
+#, no-wrap
+msgid "2013-07-23"
+msgstr "2013-07-23"
+
#. type: Plain text
#: build/C/man3/flockfile.3:28
msgid "flockfile, ftrylockfile, funlockfile - lock FILE for stdio"
"B<putc_unlocked>(3) を使用する。"
#. type: Plain text
-#: build/C/man3/flockfile.3:101
+#: build/C/man3/flockfile.3:105
msgid ""
"The B<flockfile>() function waits for I<*filehandle> to be no longer locked "
"by a different thread, then makes the current thread owner of "
"ロック数を加算する。"
#. type: Plain text
-#: build/C/man3/flockfile.3:105
+#: build/C/man3/flockfile.3:109
msgid "The B<funlockfile>() function decrements the lock count."
msgstr "B<funlockfile>() 関数は、ロック数を減算する。"
#. type: Plain text
-#: build/C/man3/flockfile.3:114
+#: build/C/man3/flockfile.3:120
msgid ""
"The B<ftrylockfile>() function is a nonblocking version of B<flockfile>(). "
"It does nothing in case some other thread owns I<*filehandle>, and it "
"ない場合は I<*filehandle> の所有権を獲得し、 ロック数を加算する。"
#. type: Plain text
-#: build/C/man3/flockfile.3:119
+#: build/C/man3/flockfile.3:125
msgid ""
"The B<ftrylockfile>() function returns zero for success (the lock was "
"obtained), and nonzero for failure."
"の値を返す。"
#. type: Plain text
-#: build/C/man3/flockfile.3:121
+#: build/C/man3/flockfile.3:127
msgid "None."
msgstr "なし。"
#. type: Plain text
-#: build/C/man3/flockfile.3:123 build/C/man3/popen.3:171
+#: build/C/man3/flockfile.3:135
+msgid ""
+"The B<flockfile>(), B<ftrylockfile>(), and B<funlockfile>() functions are "
+"thread-safe."
+msgstr ""
+"関数 B<flockfile>(), B<ftrylockfile>(), B<funlockfile>() はスレッドセーフであ"
+"る。"
+
+#. type: Plain text
+#: build/C/man3/flockfile.3:137 build/C/man3/popen.3:174
msgid "POSIX.1-2001."
msgstr "POSIX.1-2001."
#. type: SH
-#: build/C/man3/flockfile.3:123
+#: build/C/man3/flockfile.3:137
#, no-wrap
msgid "AVAILABILITY"
msgstr "可用性"
#. type: Plain text
-#: build/C/man3/flockfile.3:129
+#: build/C/man3/flockfile.3:143
msgid ""
"These functions are available when B<_POSIX_THREAD_SAFE_FUNCTIONS> is "
"defined. They are in libc since libc 5.1.1 and in glibc since glibc 2.0."
"ことができる。 5.1.1 以降の libc と 2.0 以降の glibc に存在する。"
#. type: Plain text
-#: build/C/man3/flockfile.3:131
+#: build/C/man3/flockfile.3:145
msgid "B<unlocked_stdio>(3)"
msgstr "B<unlocked_stdio>(3)"
msgstr "FMEMOPEN"
#. type: TH
-#: build/C/man3/fmemopen.3:10
+#: build/C/man3/fmemopen.3:10 build/C/man3/getline.3:26
+#: build/C/man7/symlink.7:37
#, no-wrap
-msgid "2012-04-28"
-msgstr "2012-04-28"
+msgid "2014-04-06"
+msgstr "2014-04-06"
#. type: Plain text
#: build/C/man3/fmemopen.3:13
#: build/C/man3/fmemopen.3:107
msgid ""
"Attempts to write more than I<size> bytes to the buffer result in an error. "
-"(By default, such errors will only be visible when the I<stdio> buffer is "
+"(By default, such errors will be visible only when the I<stdio> buffer is "
"flushed. Disabling buffering with I<setbuf(fp,\\ NULL)> may be useful to "
"detect errors at the time of an output operation. Alternatively, the caller "
"can explicitly set I<buf> as the stdio stream buffer, at the same time "
#. type: SH
#: build/C/man3/fmemopen.3:188 build/C/man3/fmtmsg.3:222
-#: build/C/man3/getline.3:132 build/C/man2/pipe.2:113 build/C/man2/readv.2:209
+#: build/C/man3/getline.3:137 build/C/man2/link.2:312 build/C/man2/open.2:1007
+#: build/C/man2/open_by_handle_at.2:349 build/C/man2/pipe.2:150
+#: build/C/man2/readlink.2:212 build/C/man2/readv.2:209
+#: build/C/man2/rename.2:326 build/C/man2/symlink.2:218
+#: build/C/man2/unlink.2:269
#, no-wrap
msgid "VERSIONS"
msgstr "バージョン"
#: build/C/man3/fmemopen.3:255
msgid ""
"If the I<mode> argument to B<fmemopen>() specifies append (\"a\" or \"a+"
-"\"), and the I<size> argument does not cover a null byte in I<buf> then, "
+"\"), and the I<size> argument does not cover a null byte in I<buf>, then, "
"according to POSIX.1-2008, the initial file position should be set to the "
"next byte after the end of the buffer. However, in this case the glibc "
"B<fmemopen>() sets the file position to -1."
"それ以前の B<fmemopen>() では I<mode> 内の \\(aqb\\(aq は無視されていた。"
#. type: SH
-#: build/C/man3/fmemopen.3:276 build/C/man3/fmtmsg.3:244
-#: build/C/man3/fopencookie.3:247 build/C/man3/getline.3:141
-#: build/C/man2/pipe.2:124 build/C/man3/printf.3:973
-#: build/C/man2/readlink.2:157 build/C/man2/readv.2:265
-#: build/C/man3/scanf.3:682
+#: build/C/man3/fmemopen.3:276 build/C/man3/fmtmsg.3:256
+#: build/C/man3/fopencookie.3:247 build/C/man3/getline.3:146
+#: build/C/man2/open_by_handle_at.2:434 build/C/man2/pipe.2:161
+#: build/C/man3/printf.3:974 build/C/man2/readlink.2:256
+#: build/C/man2/readv.2:265 build/C/man3/scanf.3:704
#, no-wrap
msgid "EXAMPLE"
msgstr "例"
#. type: SS
#: build/C/man3/fmemopen.3:293 build/C/man3/fopencookie.3:271
+#: build/C/man2/pipe.2:177
#, no-wrap
msgid "Program source"
msgstr "プログラムのソース"
#, no-wrap
msgid ""
" if (argc != 2) {\n"
-"\tfprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
-"\texit(EXIT_FAILURE);\n"
+" fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
" }\n"
msgstr ""
" if (argc != 2) {\n"
-"\tfprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
-"\texit(EXIT_FAILURE);\n"
+" fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
" }\n"
#. type: Plain text
" }\n"
" fclose(in);\n"
" fclose(out);\n"
-" printf(\"size=%ld; ptr=%s\\en\", (long) size, ptr);\n"
+" printf(\"size=%zu; ptr=%s\\en\", size, ptr);\n"
" free(ptr);\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
" }\n"
" fclose(in);\n"
" fclose(out);\n"
-" printf(\"size=%ld; ptr=%s\\en\", (long) size, ptr);\n"
+" printf(\"size=%zu; ptr=%s\\en\", size, ptr);\n"
" free(ptr);\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
msgid "FMTMSG"
msgstr "FMTMSG"
-#. type: TH
-#: build/C/man3/fmtmsg.3:13
-#, no-wrap
-msgid "2008-06-14"
-msgstr "2008-06-14"
-
#. type: Plain text
#: build/C/man3/fmtmsg.3:16
msgid "fmtmsg - print formatted error messages"
"value B<MM_NULLMC> (0L) does not specify any output, so nothing is printed. "
"The dummy severity value B<NO_SEV> (0) says that no severity is supplied. "
"The values B<MM_NULLLBL>, B<MM_NULLTXT>, B<MM_NULLACT>, B<MM_NULLTAG> are "
-"synonyms for I<((char *) 0)>, the empty string, and B<MM_NULLSEV> is a "
+"synonyms for I<((char\\ *)\\ 0)>, the empty string, and B<MM_NULLSEV> is a "
"synonym for B<NO_SEV>."
msgstr ""
"各引き数にはダミーの値を入れることができる。 ダミーの I<classification> 値 "
"B<MM_NULLMC> (0L) は出力を何も指定しない。そのため何も表示されない。 ダミー"
"の I<severity> 値 B<NO_SEV> (0) は重大度 (severity) が与えられていないことを"
"表す。 値 B<MM_NULLLBL>, B<MM_NULLTXT>, B<MM_NULLACT>, B<MM_NULLTAG> は I<"
-"((char *) 0)> と空文字列の別名であり、 B<MM_NULLSEV> は B<NO_SEV> の別名であ"
-"る。"
+"((char\\ *)\\ 0)> と空文字列の別名であり、 B<MM_NULLSEV> は B<NO_SEV> の別名"
+"ã\81§ã\81\82ã\82\8bã\80\82"
#. type: SS
#: build/C/man3/fmtmsg.3:79
msgstr "B<fmtmsg>() は、バージョン 2.1 以降の glibc で提供されている。"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:240
+#: build/C/man3/fmtmsg.3:231
+msgid ""
+"Before glibc 2.16, the B<fmtmsg>() function uses a static variable that is "
+"not protected, so it is not thread-safe."
+msgstr ""
+"glibc 2.16 より前のバージョンでは、 B<fmtmsg>() 関数は、 保護されていない静的"
+"な変数を使うため、 スレッドセーフではない。"
+
+#. Modified in commit 7724defcf8873116fe4efab256596861eef21a94
+#. type: Plain text
+#: build/C/man3/fmtmsg.3:237
+msgid ""
+"Since glibc 2.16, the B<fmtmsg>() function uses a lock to protect the "
+"static variable, so it is thread-safe."
+msgstr ""
+"glibc 2.16 以降では、 B<fmtmsg>() 関数はロックを使って静的な変数を保護してお"
+"り、 スレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/fmtmsg.3:252
msgid ""
"The functions B<fmtmsg>() and B<addseverity>(3), and environment variables "
"B<MSGVERB> and B<SEV_LEVEL> come from System V. The function B<fmtmsg>() "
"B<MSGVERB> は POSIX.1-2001 に記述されている。"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:244
+#: build/C/man3/fmtmsg.3:256
msgid ""
"System V and UnixWare man pages tell us that these functions have been "
"replaced by \"pfmt() and addsev()\" or by \"pfmt(), vpfmt(), lfmt(), and "
"は削除される予定である」と書かれている。"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:249
+#: build/C/man3/fmtmsg.3:261
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>fmtmsg.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:255
+#: build/C/man3/fmtmsg.3:267
#, no-wrap
msgid ""
"int\n"
" int err;\n"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:276
+#: build/C/man3/fmtmsg.3:288
#, no-wrap
msgid ""
" err = fmtmsg(class, \"util-linux:mount\", MM_ERROR,\n"
"}\n"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:279
+#: build/C/man3/fmtmsg.3:291
msgid "The output should be:"
msgstr "出力は"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:283
+#: build/C/man3/fmtmsg.3:295
#, no-wrap
msgid ""
" util-linux:mount: ERROR: unknown mount option\n"
" TO FIX: See mount(8). util-linux:mount:017\n"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:286
+#: build/C/man3/fmtmsg.3:298
msgid "and after"
msgstr "のようになり、"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:289
+#: build/C/man3/fmtmsg.3:301
#, no-wrap
msgid " MSGVERB=text:action; export MSGVERB\n"
msgstr " MSGVERB=text:action; export MSGVERB\n"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:292
+#: build/C/man3/fmtmsg.3:304
msgid "the output becomes:"
msgstr "を実行すると、次のようになる。"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:296
+#: build/C/man3/fmtmsg.3:308
#, no-wrap
msgid ""
" unknown mount option\n"
" TO FIX: See mount(8).\n"
#. type: Plain text
-#: build/C/man3/fmtmsg.3:300
+#: build/C/man3/fmtmsg.3:312
msgid "B<addseverity>(3), B<perror>(3)"
msgstr "B<addseverity>(3), B<perror>(3)"
"indeed sometimes necessary under Linux) to put an B<fseek>(3) or B<fgetpos>"
"(3) operation between write and read operations on such a stream. This "
"operation may be an apparent no-op (as in I<fseek(..., 0L, SEEK_CUR)> called "
-"for its synchronizing side effect."
+"for its synchronizing side effect)."
msgstr ""
"読み出し/書き込みストリームに対しては任意の順序で読み書きを行うことができ"
"る。 ただし ANSI C では、 (入力操作がファイルの末尾に到達した場合を除いて) "
#. type: Plain text
#: build/C/man3/fopen.3:149
-#, fuzzy, no-wrap
-#| msgid " fseek(stream,0,SEEK_END);\n"
+#, no-wrap
msgid " fseek(stream, 0, SEEK_END);\n"
-msgstr " fseek(stream,0,SEEK_END);\n"
+msgstr " fseek(stream, 0, SEEK_END);\n"
#. type: Plain text
#: build/C/man3/fopen.3:171
#. type: TP
#: build/C/man3/fopen.3:202 build/C/man3/fseek.3:142
-#: build/C/man3/getline.3:123 build/C/man2/llseek.2:77
-#: build/C/man2/lseek.2:166 build/C/man2/pipe.2:102 build/C/man2/read.2:126
-#: build/C/man2/read.2:137 build/C/man2/readlink.2:95
-#: build/C/man2/readlink.2:104 build/C/man2/readv.2:200
-#: build/C/man2/rename.2:139 build/C/man2/rmdir.2:67 build/C/man3/scanf.3:566
-#: build/C/man2/write.2:154
+#: build/C/man3/getline.3:128 build/C/man2/link.2:271 build/C/man2/llseek.2:77
+#: build/C/man2/lseek.2:192 build/C/man2/open.2:824 build/C/man2/open.2:832
+#: build/C/man2/open.2:837 build/C/man2/open_by_handle_at.2:273
+#: build/C/man2/open_by_handle_at.2:277 build/C/man2/open_by_handle_at.2:325
+#: build/C/man2/pipe.2:139 build/C/man2/read.2:126 build/C/man2/read.2:137
+#: build/C/man2/readlink.2:169 build/C/man2/readlink.2:178
+#: build/C/man2/readv.2:200 build/C/man2/rename.2:214 build/C/man2/rmdir.2:67
+#: build/C/man3/scanf.3:565 build/C/man2/unlink.2:252 build/C/man2/write.2:154
#, no-wrap
msgid "B<EINVAL>"
msgstr "B<EINVAL>"
#. type: SS
#: build/C/man3/fopen.3:256
-#, fuzzy, no-wrap
-#| msgid "Glibc Notes"
+#, no-wrap
msgid "Glibc notes"
msgstr "glibc での注意"
#: build/C/man3/fopen.3:288
msgid ""
"Attempt to access the file using B<mmap>(2), rather than I/O system calls "
-"(B<read>(2), B<write>(2)). Currently, use of B<mmap>(2) is only attempted "
+"(B<read>(2), B<write>(2)). Currently, use of B<mmap>(2) is attempted only "
"for a file opened for reading."
msgstr ""
"I/O システムコール (B<read>(2), B<write>(2)) ではなく、 B<mmap>(2) を使って"
#. type: TH
#: build/C/man3/fopencookie.3:26
#, no-wrap
-msgid "2012-04-30"
-msgstr "2012-04-30"
+msgid "2013-03-17"
+msgstr "2013-03-17"
#. type: TH
-#: build/C/man3/fopencookie.3:26 build/C/man2/link.2:31
+#: build/C/man3/fopencookie.3:26 build/C/man2/link.2:32
#: build/C/man2/llseek.2:28 build/C/man2/lseek.2:47 build/C/man3/lseek64.3:25
-#: build/C/man2/open.2:52 build/C/man2/pipe.2:36 build/C/man2/read.2:35
-#: build/C/man2/readlink.2:43 build/C/man2/readv.2:32 build/C/man2/rename.2:32
-#: build/C/man2/rmdir.2:30 build/C/man3/setbuf.3:48 build/C/man3/stdin.3:13
-#: build/C/man2/symlink.2:32 build/C/man7/symlink.7:36
-#: build/C/man2/unlink.2:32 build/C/man2/write.2:39
+#: build/C/man2/open.2:51 build/C/man2/open_by_handle_at.2:25
+#: build/C/man2/pipe.2:36 build/C/man2/read.2:35 build/C/man2/readlink.2:44
+#: build/C/man2/readv.2:32 build/C/man2/rename.2:33 build/C/man2/rmdir.2:30
+#: build/C/man3/setbuf.3:48 build/C/man3/stdin.3:13 build/C/man2/symlink.2:33
+#: build/C/man7/symlink.7:37 build/C/man2/unlink.2:33 build/C/man2/write.2:39
#, no-wrap
msgid "Linux"
msgstr "Linux"
#. type: IP
#: build/C/man3/fopencookie.3:51 build/C/man3/fopencookie.3:54
-#: build/C/man3/fopencookie.3:65 build/C/man3/scanf.3:634
-#: build/C/man3/scanf.3:639 build/C/man3/scanf.3:645
-#: build/C/man7/symlink.7:249 build/C/man7/symlink.7:259
-#: build/C/man7/symlink.7:289 build/C/man7/symlink.7:349
-#: build/C/man7/symlink.7:378 build/C/man7/symlink.7:407
-#: build/C/man7/symlink.7:438 build/C/man7/symlink.7:451
+#: build/C/man3/fopencookie.3:65 build/C/man2/lseek.2:168
+#: build/C/man2/lseek.2:170 build/C/man2/lseek.2:173 build/C/man2/lseek.2:175
+#: build/C/man2/lseek.2:177 build/C/man2/open.2:533 build/C/man2/open.2:541
+#: build/C/man2/open.2:547 build/C/man2/open.2:553 build/C/man2/open.2:560
+#: build/C/man2/open.2:566 build/C/man2/open.2:687 build/C/man2/open.2:695
+#: build/C/man2/open_by_handle_at.2:138 build/C/man2/open_by_handle_at.2:146
+#: build/C/man2/open_by_handle_at.2:157 build/C/man2/open_by_handle_at.2:170
+#: build/C/man2/pipe.2:95 build/C/man2/pipe.2:101 build/C/man2/pipe.2:111
+#: build/C/man3/scanf.3:658 build/C/man3/scanf.3:663
+#: build/C/man7/symlink.7:290 build/C/man7/symlink.7:300
+#: build/C/man7/symlink.7:330 build/C/man7/symlink.7:390
+#: build/C/man7/symlink.7:419 build/C/man7/symlink.7:448
+#: build/C/man7/symlink.7:479 build/C/man7/symlink.7:492
#, no-wrap
msgid "*"
msgstr "*"
#: build/C/man3/fopencookie.3:116
#, no-wrap
msgid ""
-"struct cookie_io_functions_t {\n"
+"typedef struct {\n"
" cookie_read_function_t *read;\n"
" cookie_write_function_t *write;\n"
" cookie_seek_function_t *seek;\n"
" cookie_close_function_t *close;\n"
-"};\n"
+"} cookie_io_functions_t;\n"
msgstr ""
-"struct cookie_io_functions_t {\n"
+"typedef struct {\n"
" cookie_read_function_t *read;\n"
" cookie_write_function_t *write;\n"
" cookie_seek_function_t *seek;\n"
" cookie_close_function_t *close;\n"
-"};\n"
+"} cookie_io_functions_t;\n"
#. type: Plain text
#: build/C/man3/fopencookie.3:120
#. type: Plain text
#: build/C/man3/fopencookie.3:146
msgid ""
-"If I<*read> is a NULL pointer, then reads from the custom stream always "
+"If I<*read> is a null pointer, then reads from the custom stream always "
"return end of file."
msgstr ""
#. type: Plain text
#: build/C/man3/fopencookie.3:173
-msgid "If I<*write> is a NULL pointer, then output to the stream is discarded."
+msgid "If I<*write> is a null pointer, then output to the stream is discarded."
msgstr ""
#. type: TP
#. type: Plain text
#: build/C/man3/fopencookie.3:215
msgid ""
-"If I<*seek> is a NULL pointer, then it is not possible to perform seek "
+"If I<*seek> is a null pointer, then it is not possible to perform seek "
"operations on the stream."
msgstr ""
" }\n"
#. type: Plain text
-#: build/C/man3/fopencookie.3:436 build/C/man2/readlink.2:213
+#: build/C/man3/fopencookie.3:436 build/C/man2/open_by_handle_at.2:574
+#: build/C/man2/open_by_handle_at.2:714 build/C/man2/readlink.2:312
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
"ない。この関数を使う理由はもはや存在しない。"
#. type: Plain text
-#: build/C/man3/fputwc.3:60
+#: build/C/man3/fputwc.3:63
msgid ""
"The B<fputwc>() function returns I<wc> if no error occurred, or B<WEOF> to "
-"indicate an error."
+"indicate an error. In the event of an error, I<errno> is set to indicate "
+"the cause."
msgstr ""
"B<fputwc>() 関数は、エラーが起きなければ I<wc> を返す。エラーの場合には "
-"B<WEOF> ã\82\92è¿\94ã\81\99。"
+"B<WEOF> ã\81\8cè¿\94ã\82\8aã\80\81 I<errno> ã\81«ã\82¨ã\83©ã\83¼ã\81®å\8e\9få\9b ã\82\92示ã\81\99å\80¤ã\81\8cè¨å®\9aã\81\95ã\82\8cã\82\8b。"
#. type: Plain text
-#: build/C/man3/fputwc.3:65
+#: build/C/man3/fputwc.3:68
msgid "Conversion of I<wc> to the stream's encoding fails."
msgstr "I<wc> からストリームの符号への変換に失敗した。"
#. type: Plain text
-#: build/C/man3/fputwc.3:74
+#: build/C/man3/fputwc.3:77
msgid ""
"The behavior of B<fputwc>() depends on the B<LC_CTYPE> category of the "
"current locale."
msgstr "B<fputwc>() の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存する。"
#. type: Plain text
-#: build/C/man3/fputwc.3:82
+#: build/C/man3/fputwc.3:85
msgid ""
"In the absence of additional information passed to the B<fopen>(3) call, it "
"is reasonable to expect that B<fputwc>() will actually write the multibyte "
"よい。"
#. type: Plain text
-#: build/C/man3/fputwc.3:86
+#: build/C/man3/fputwc.3:89
msgid "B<fgetwc>(3), B<fputws>(3), B<unlocked_stdio>(3)"
msgstr "B<fgetwc>(3), B<fputws>(3), B<unlocked_stdio>(3)"
#. type: TH
#: build/C/man3/fseek.3:42
#, no-wrap
-msgid "1993-11-29"
-msgstr "1993-11-29"
+msgid "2014-04-02"
+msgstr "2014-04-02"
#. type: Plain text
#: build/C/man3/fseek.3:45
#. type: Plain text
#: build/C/man3/fseek.3:121
-#, fuzzy
-#| msgid ""
-#| "The B<fgetpos>() and B<fsetpos>() functions are alternate interfaces "
-#| "equivalent to B<ftell>() and B<fseek>() (with whence set to "
-#| "B<SEEK_SET>), setting and storing the current value of the file offset "
-#| "into or from the object referenced by I<pos>. On some non-UNIX systems "
-#| "an I<fpos_t> object may be a complex object and these routines may be the "
-#| "only way to portably reposition a text stream."
msgid ""
"The B<fgetpos>() and B<fsetpos>() functions are alternate interfaces "
"equivalent to B<ftell>() and B<fseek>() (with I<whence> set to "
msgstr "指定した I<stream> がシークできない。"
#. type: Plain text
-#: build/C/man3/fseek.3:153
+#: build/C/man3/fseek.3:154
msgid ""
"The I<whence> argument to B<fseek>() was not B<SEEK_SET>, B<SEEK_END>, or "
-"B<SEEK_CUR>."
+"B<SEEK_CUR>. Or: the resulting file offset would be negative."
msgstr ""
"B<fseek>() 関数に対して与えた I<whence> 引数が B<SEEK_SET>, B<SEEK_END>, "
-"B<SEEK_CUR> 以外の値であった。"
+"B<SEEK_CUR> 以外の値であった。 または、更新後のファイルオフセットが負になって"
+"しまう。"
#. type: Plain text
-#: build/C/man3/fseek.3:168
+#: build/C/man3/fseek.3:169
msgid ""
"The functions B<fgetpos>(), B<fseek>(), B<fsetpos>(), and B<ftell>() may "
"also fail and set I<errno> for any of the errors specified for the routines "
"する可能性がある。この場合は それぞれ対応した I<errno> が設定される。"
#. type: Plain text
-#: build/C/man3/fseek.3:173
+#: build/C/man3/fseek.3:174
msgid "B<lseek>(2), B<fseeko>(3)"
msgstr "B<lseek>(2), B<fseeko>(3)"
#. type: TH
#: build/C/man3/fseeko.3:25
#, no-wrap
-msgid "2001-11-05"
-msgstr "2001-11-05"
+msgid "2014-03-20"
+msgstr "2014-03-20"
#. type: Plain text
#: build/C/man3/fseeko.3:28
"\n"
#. type: Plain text
-#: build/C/man3/fseeko.3:54
+#: build/C/man3/fseeko.3:45
+msgid "B<fseeko>(), B<ftello>():"
+msgstr "B<fseeko>(), B<ftello>():"
+
+#. type: Plain text
+#: build/C/man3/fseeko.3:50
+msgid ""
+"_FILE_OFFSET_BITS\\ ==\\ 64 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || "
+"_XOPEN_SOURCE\\ E<gt>=\\ 600"
+msgstr ""
+"_FILE_OFFSET_BITS\\ ==\\ 64 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || "
+"_XOPEN_SOURCE\\ E<gt>=\\ 600"
+
+#. type: Plain text
+#: build/C/man3/fseeko.3:52
+msgid "(defining the obsolete _LARGEFILE_SOURCE macro also works)"
+msgstr "(廃止予定のマクロ _LARGEFILE_SOURCE を指定しても動作する)"
+
+#. type: Plain text
+#: build/C/man3/fseeko.3:75
msgid ""
"The B<fseeko>() and B<ftello>() functions are identical to B<fseek>(3) "
"and B<ftell>(3) (see B<fseek>(3)), respectively, except that the I<offset> "
"I<off_t> になっている。"
#. type: Plain text
-#: build/C/man3/fseeko.3:57
+#: build/C/man3/fseeko.3:82
msgid ""
"On many architectures both I<off_t> and I<long> are 32-bit types, but "
"compilation with"
"多くのアーキテクチャでは I<off_t> も I<long> も共に 32 ビットの型であるが、"
#. type: Plain text
-#: build/C/man3/fseeko.3:61 build/C/man3/lseek64.3:81
+#: build/C/man3/fseeko.3:86 build/C/man3/lseek64.3:81
#, no-wrap
msgid "#define _FILE_OFFSET_BITS 64\n"
msgstr "#define _FILE_OFFSET_BITS 64\n"
#. type: Plain text
-#: build/C/man3/fseeko.3:65
+#: build/C/man3/fseeko.3:92
msgid "will turn I<off_t> into a 64-bit type."
msgstr "でコンパイルすると I<off_t> は 64 ビット型となる。"
#. type: Plain text
-#: build/C/man3/fseeko.3:74
+#: build/C/man3/fseeko.3:101
msgid ""
"On successful completion, B<fseeko>() returns 0, while B<ftello>() returns "
"the current offset. Otherwise, -1 is returned and I<errno> is set to "
"す。 失敗した場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
#. type: Plain text
-#: build/C/man3/fseeko.3:77
+#: build/C/man3/fseeko.3:104
msgid "See the ERRORS in B<fseek>(3)."
msgstr "B<fseek>(3) の「エラー」の節を参照。"
#. type: Plain text
-#: build/C/man3/fseeko.3:79
+#: build/C/man3/fseeko.3:106
msgid "SUSv2, POSIX.1-2001."
msgstr "SUSv2, POSIX.1-2001."
#. type: Plain text
-#: build/C/man3/fseeko.3:83
+#: build/C/man3/fseeko.3:110
msgid ""
"These functions are found on System V-like systems. They are not present in "
"libc4, libc5, glibc 2.0 but are available since glibc 2.1."
"かったが、 glibc 2.1 から使えるようになった。"
#. type: Plain text
-#: build/C/man3/fseeko.3:85
+#: build/C/man3/fseeko.3:112
msgid "B<fseek>(3)"
msgstr "B<fseek>(3)"
msgid "GETLINE"
msgstr "GETLINE"
-#. type: TH
-#: build/C/man3/getline.3:26
-#, no-wrap
-msgid "2010-06-12"
-msgstr "2010-06-12"
-
#. type: Plain text
#: build/C/man3/getline.3:29
msgid "getline, getdelim - delimited string input"
"端される。 改行文字が見つかった場合は、改行文字もバッファに格納される。"
#. type: Plain text
-#: build/C/man3/getline.3:75
+#: build/C/man3/getline.3:77
msgid ""
-"If I<*lineptr> is NULL, then B<getline>() will allocate a buffer for "
-"storing the line, which should be freed by the user program. (In this case, "
-"the value in I<*n> is ignored.)"
+"If I<*lineptr> is set to NULL and I<*n> is set 0 before the call, then "
+"B<getline>() will allocate a buffer for storing the line. This buffer "
+"should be freed by the user program even if B<getline>() failed."
msgstr ""
-"I<*lineptr> が NULL の場合、 B<getline>() は行の内容を格納するためのバッファ"
-"を確保する。 このバッファはユーザーのプログラムで解放すべきである (この場"
-"合、 I<*n> の値は無視される)。"
+"I<*lineptr> が NULL にセットされ、 I<*n> が呼び出し前に 0 にセットされた場"
+"合、 B<getline>() は行の内容を格納するためのバッファを確保する。 このバッ"
+"ファは、 B<getline>() が失敗した場合であっても、ユーザーのプログラムで解放す"
+"べきである。"
#. type: Plain text
-#: build/C/man3/getline.3:93
+#: build/C/man3/getline.3:95
msgid ""
"Alternatively, before calling B<getline>(), I<*lineptr> can contain a "
"pointer to a B<malloc>(3)-allocated buffer I<*n> bytes in size. If the "
"I<*n> を更新する。"
#. type: Plain text
-#: build/C/man3/getline.3:99
+#: build/C/man3/getline.3:101
msgid ""
"In either case, on a successful call, I<*lineptr> and I<*n> will be updated "
"to reflect the buffer address and allocated size respectively."
"ファのアドレスと割り当てたサイズを反映した値に更新される。"
#. type: Plain text
-#: build/C/man3/getline.3:110
+#: build/C/man3/getline.3:112
msgid ""
"B<getdelim>() works like B<getline>(), except that a line delimiter other "
"than newline can be specified as the I<delimiter> argument. As with "
"ファに追加しない。"
#. type: Plain text
-#: build/C/man3/getline.3:119
+#: build/C/man3/getline.3:121
msgid ""
"On success, B<getline>() and B<getdelim>() return the number of characters "
"read, including the delimiter character, but not including the terminating "
-"null byte. This value can be used to handle embedded null bytes in the line "
-"read."
+"null byte (\\(aq\\e0\\(aq). This value can be used to handle embedded null "
+"bytes in the line read."
msgstr ""
"成功した場合、 B<getline>() と B<getdelim>() は読み込んだ文字数を返す。 文"
-"字数には区切り文字は含まれるが、終端に使う NULL バイトは含まれない。 この値に"
-"よって、読み込んだ行に含まれる NULL バイトを操作することができる。"
+"字数には区切り文字は含まれるが、終端に使う NULL バイト (\\(aq\\e0\\(aq) は含"
+"まれない。 この値によって、読み込んだ行に含まれる NULL バイトを操作することが"
+"できる。"
#. type: Plain text
-#: build/C/man3/getline.3:122
+#: build/C/man3/getline.3:127
msgid ""
"Both functions return -1 on failure to read a line (including end-of-file "
-"condition)."
+"condition). In the event of an error, I<errno> is set to indicate the cause."
msgstr ""
"どちらの関数も、行の読み込みに失敗した場合には -1 を返す (ファイルの終端に達"
-"した場合にも -1 を返す)。"
+"した場合にも -1 を返す)。 エラーが発生した場合には、 I<errno> にエラーの原因"
+"を示す値が設定される。"
#. type: Plain text
-#: build/C/man3/getline.3:132
+#: build/C/man3/getline.3:137
msgid "Bad arguments (I<n> or I<lineptr> is NULL, or I<stream> is not valid)."
msgstr ""
"引き数が不正である (I<n> または I<lineptr> が NULL である。 もしくは "
"I<stream> が有効でない)。"
#. type: Plain text
-#: build/C/man3/getline.3:134
+#: build/C/man3/getline.3:139
msgid "These functions are available since libc 4.6.27."
msgstr "これらの関数は libc 4.6.27 以降で利用可能である。"
#. type: Plain text
-#: build/C/man3/getline.3:141
+#: build/C/man3/getline.3:146
msgid ""
"Both B<getline>() and B<getdelim>() were originally GNU extensions. They "
"were standardized in POSIX.1-2008."
"POSIX.1-2008 で標準化された。"
#. type: Plain text
-#: build/C/man3/getline.3:146
+#: build/C/man3/getline.3:151
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include E<lt>stdlib.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/getline.3:154
+#: build/C/man3/getline.3:159
#, no-wrap
msgid ""
"int\n"
" ssize_t read;\n"
#. type: Plain text
-#: build/C/man3/getline.3:158
+#: build/C/man3/getline.3:163
#, no-wrap
msgid ""
" fp = fopen(\"/etc/motd\", \"r\");\n"
" exit(EXIT_FAILURE);\n"
#. type: Plain text
-#: build/C/man3/getline.3:163
+#: build/C/man3/getline.3:168
#, no-wrap
msgid ""
" while ((read = getline(&line, &len, fp)) != -1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man3/getline.3:167
+#: build/C/man3/getline.3:172
#, no-wrap
msgid ""
" free(line);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/getline.3:175
-msgid ""
-"B<read>(2), B<fgets>(3), B<fopen>(3), B<fread>(3), B<gets>(3), B<scanf>(3)"
-msgstr ""
-"B<read>(2), B<fgets>(3), B<fopen>(3), B<fread>(3), B<gets>(3), B<scanf>(3)"
+#: build/C/man3/getline.3:179
+msgid "B<read>(2), B<fgets>(3), B<fopen>(3), B<fread>(3), B<scanf>(3)"
+msgstr "B<read>(2), B<fgets>(3), B<fopen>(3), B<fread>(3), B<scanf>(3)"
#. type: TH
-#: build/C/man3/gets.3:27
+#: build/C/man3/gets.3:29
#, no-wrap
msgid "GETS"
msgstr "GETS"
#. type: TH
-#: build/C/man3/gets.3:27
+#: build/C/man3/gets.3:29
#, no-wrap
-msgid "2012-01-18"
-msgstr "2012-01-18"
-
-#. type: Plain text
-#: build/C/man3/gets.3:30
-msgid ""
-"fgetc, fgets, getc, getchar, gets, ungetc - input of characters and strings"
-msgstr "fgetc, fgets, getc, getchar, gets, ungetc - 文字と文字列の入力"
+msgid "2014-01-24"
+msgstr "2014-01-24"
#. type: Plain text
-#: build/C/man3/gets.3:35
-#, no-wrap
-msgid "B<int fgetc(FILE *>I<stream>B<);>\n"
-msgstr "B<int fgetc(FILE *>I<stream>B<);>\n"
+#: build/C/man3/gets.3:32
+msgid "gets - get a string from standard input (DEPRECATED)"
+msgstr "gets - 標準入力からの文字列を取得する (非推奨)"
#. type: Plain text
#: build/C/man3/gets.3:37
#, no-wrap
-msgid "B<char *fgets(char *>I<s>B<, int >I<size>B<, FILE *>I<stream>B<);>\n"
-msgstr "B<char *fgets(char *>I<s>B<, int >I<size>B<, FILE *>I<stream>B<);>\n"
-
-#. type: Plain text
-#: build/C/man3/gets.3:39
-#, no-wrap
-msgid "B<int getc(FILE *>I<stream>B<);>\n"
-msgstr "B<int getc(FILE *>I<stream>B<);>\n"
-
-#. type: Plain text
-#: build/C/man3/gets.3:41
-#, no-wrap
-msgid "B<int getchar(void);>\n"
-msgstr "B<int getchar(void);>\n"
-
-#. type: Plain text
-#: build/C/man3/gets.3:43
-#, no-wrap
msgid "B<char *gets(char *>I<s>B<);>\n"
msgstr "B<char *gets(char *>I<s>B<);>\n"
#. type: Plain text
-#: build/C/man3/gets.3:45
-#, no-wrap
-msgid "B<int ungetc(int >I<c>B<, FILE *>I<stream>B<);>\n"
-msgstr "B<int ungetc(int >I<c>B<, FILE *>I<stream>B<);>\n"
+#: build/C/man3/gets.3:40
+msgid "I<Never use this function>."
+msgstr "I<この関数は使用しないこと>。"
#. type: Plain text
-#: build/C/man3/gets.3:57
+#: build/C/man3/gets.3:50
msgid ""
-"B<fgetc>() reads the next character from I<stream> and returns it as an "
-"I<unsigned char> cast to an I<int>, or B<EOF> on end of file or error."
-msgstr ""
-"B<fgetc>() は、 I<stream> から次の文字を I<unsigned char> として読み、 "
-"I<int> にキャストして返す。ファイルの終わりやエラーとなった場合は B<EOF> を返"
-"す。"
-
-#. type: Plain text
-#: build/C/man3/gets.3:64
-msgid ""
-"B<getc>() is equivalent to B<fgetc>() except that it may be implemented as "
-"a macro which evaluates I<stream> more than once."
-msgstr ""
-"B<getc>() は B<fgetc>() と同様だが、 I<stream> を複数回評価するマクロとして"
-"実装されているかもしれない。"
-
-#. type: Plain text
-#: build/C/man3/gets.3:68
-msgid "B<getchar>() is equivalent to B<getc(>I<stdin>B<)>."
-msgstr "B<getchar>() は B<getc(>I<stdin>B<)> と同じである。"
-
-#. type: Plain text
-#: build/C/man3/gets.3:78
-msgid ""
-"B<gets>() reads a line from I<stdin> into the buffer pointed to by I<s> "
-"until either a terminating newline or B<EOF>, which it replaces with a null "
-"byte (\\(aq\\e0\\(aq). No check for buffer overrun is performed (see BUGS "
-"below)."
+"B<gets>() reads a line from I<stdin> into the buffer pointed to by I<s> "
+"until either a terminating newline or B<EOF>, which it replaces with a null "
+"byte (\\(aq\\e0\\(aq). No check for buffer overrun is performed (see BUGS "
+"below)."
msgstr ""
"B<gets>() は、改行文字か B<EOF> までの 1行を I<stdin> から読み込み I<s> が指"
"すバッファに格納する (末尾の改行文字や B<EOF> は NULL バイト (\\(aq"
"記の「バグ」を参照)。"
#. type: Plain text
-#: build/C/man3/gets.3:92
-msgid ""
-"B<fgets>() reads in at most one less than I<size> characters from I<stream> "
-"and stores them into the buffer pointed to by I<s>. Reading stops after an "
-"B<EOF> or a newline. If a newline is read, it is stored into the buffer. A "
-"terminating null byte (\\(aq\\e0\\(aq) is stored after the last character "
-"in the buffer."
-msgstr ""
-"B<fgets>() は I<stream> から最大で I<size> - 1 個の文字を読み込み、 I<s> が"
-"指すバッファに格納する。読み込みは B<EOF> または改行文字を読み込んだ後で停止"
-"する。 読み込まれた改行文字はバッファに格納される。 終端の NULL バイト (\\(aq"
-"\\e0\\(aq) が一つバッファの中の最後の文字の後に書き込まれる。"
-
-#. type: Plain text
-#: build/C/man3/gets.3:103
-msgid ""
-"B<ungetc>() pushes I<c> back to I<stream>, cast to I<unsigned char>, where "
-"it is available for subsequent read operations. Pushed-back characters will "
-"be returned in reverse order; only one pushback is guaranteed."
-msgstr ""
-"B<ungetc>() は、後の read 操作で読めるように、 I<c> を I<unsigned char> に"
-"キャストして I<stream> に書き戻す。 書き戻された文字は逆順に戻される; 書き戻"
-"しとして保証されているのは、一文字だけである。"
-
-#. type: Plain text
-#: build/C/man3/gets.3:108
-msgid ""
-"Calls to the functions described here can be mixed with each other and with "
-"calls to other input functions from the I<stdio> library for the same input "
-"stream."
-msgstr ""
-"ここで述べた関数や I<stdio> ライブラリの入力関数を同じ入力ストリームに対して"
-"互いに混ぜて使うことができる。"
-
-#. type: Plain text
-#: build/C/man3/gets.3:123
-msgid ""
-"B<fgetc>(), B<getc>() and B<getchar>() return the character read as an "
-"I<unsigned char> cast to an I<int> or B<EOF> on end of file or error."
-msgstr ""
-"B<fgetc>(), B<getc>(), B<getchar>() は、文字を I<unsigned char> として読ん"
-"で I<int> にキャストして返す。ファイルの終わりやエラーの場合は B<EOF> を返"
-"す。"
-
-#. type: Plain text
-#: build/C/man3/gets.3:131
+#: build/C/man3/gets.3:58
msgid ""
-"B<gets>() and B<fgets>() return I<s> on success, and NULL on error or when "
-"end of file occurs while no characters have been read."
+"B<gets>() returns I<s> on success, and NULL on error or when end of file "
+"occurs while no characters have been read. However, given the lack of "
+"buffer overrun checking, there can be no guarantees that the function will "
+"even return."
msgstr ""
-"B<gets>() と B<fgets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込"
-"んでいないのにファイルの終わりになった 場合に NULL を返す。"
-
-#. type: Plain text
-#: build/C/man3/gets.3:138
-msgid "B<ungetc>() returns I<c> on success, or B<EOF> on error."
-msgstr "B<ungetc>() は成功すると I<c> を返し、エラーの場合は B<EOF> を返す。"
+"B<gets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込んでいないのに"
+"ファイルの終わりになった 場合に NULL を返す。 しかし、バッファの行き過ぎの"
+"チェックが行われないため、この関数が返るという保証はない。"
#. type: Plain text
-#: build/C/man3/gets.3:140
-msgid "C89, C99, POSIX.1-2001."
-msgstr "C89, C99, POSIX.1-2001."
-
-#. type: Plain text
-#: build/C/man3/gets.3:152
+#: build/C/man3/gets.3:72
msgid ""
"LSB deprecates B<gets>(). POSIX.1-2008 marks B<gets>() obsolescent. ISO "
"C11 removes the specification of B<gets>() from the C language, and since "
"場合、glibc ヘッダファイルでは B<gets>)() の宣言が公開されない。"
#. type: Plain text
-#: build/C/man3/gets.3:166
+#: build/C/man3/gets.3:86
msgid ""
"Never use B<gets>(). Because it is impossible to tell without knowing the "
"data in advance how many characters B<gets>() will read, and because B<gets>"
"と。"
#. type: Plain text
-#: build/C/man3/gets.3:173
+#: build/C/man3/gets.3:90
msgid ""
-"It is not advisable to mix calls to input functions from the I<stdio> "
-"library with low-level calls to B<read>(2) for the file descriptor "
-"associated with the input stream; the results will be undefined and very "
-"probably not what you want."
+"For more information, see CWE-242 (aka \"Use of Inherently Dangerous Function"
+"\") at http://cwe.mitre.org/data/definitions/242.html"
msgstr ""
-"入力ストリームのファイルディスクリプタに対して、 I<stdio> ライブラリの入力関"
-"数と、低レベル呼び出しの B<read>(2) を混ぜて呼び出す事は勧められない。 結果"
-"がどうなるかは分からず、おそらくあなたの 望んでいる結果にはならないだろう。"
+"詳しい情報については、CWE-242 (別名 \"Use of Inherently Dangerous Function"
+"\" (「本質的に危険な関数を使う」)) を参照。 http://cwe.mitre.org/data/"
+"definitions/242.html で参照できる。"
#. type: Plain text
-#: build/C/man3/gets.3:189
+#: build/C/man3/gets.3:108
msgid ""
-"B<read>(2), B<write>(2), B<ferror>(3), B<fgetwc>(3), B<fgetws>(3), B<fopen>"
-"(3), B<fread>(3), B<fseek>(3), B<getline>(3), B<getwchar>(3), B<puts>(3), "
-"B<scanf>(3), B<ungetwc>(3), B<unlocked_stdio>(3), B<feature_test_macros>(7)"
+"B<read>(2), B<write>(2), B<ferror>(3), B<fgetc>(3), B<fgets>(3), B<fgetwc>"
+"(3), B<fgetws>(3), B<fopen>(3), B<fread>(3), B<fseek>(3), B<getline>(3), "
+"B<getwchar>(3), B<puts>(3), B<scanf>(3), B<ungetwc>(3), B<unlocked_stdio>"
+"(3), B<feature_test_macros>(7)"
msgstr ""
-"B<read>(2), B<write>(2), B<ferror>(3), B<fgetwc>(3), B<fgetws>(3),\n"
-"B<fopen>(3), B<fread>(3), B<fseek>(3), B<getline>(3), B<getwchar>(3),\n"
-"B<puts>(3), B<scanf>(3), B<ungetwc>(3), B<unlocked_stdio>(3),\n"
-"B<feature_test_macros>(7)"
+"B<read>(2), B<write>(2), B<ferror>(3), B<fgetc>(3), B<fgets>(3), B<fgetwc>"
+"(3), B<fgetws>(3), B<fopen>(3), B<fread>(3), B<fseek>(3), B<getline>(3), "
+"B<getwchar>(3), B<puts>(3), B<scanf>(3), B<ungetwc>(3), B<unlocked_stdio>"
+"(3), B<feature_test_macros>(7)"
#. type: TH
#: build/C/man3/getw.3:25
"が発生した場合、これらの関数は B<EOF> を返す。"
#. type: Plain text
-#: build/C/man3/getw.3:82
+#: build/C/man3/getw.3:83
msgid "SVr4, SUSv2. Not present in POSIX.1-2001."
msgstr "SVr4, SUSv2. POSIX.1-2001 には存在しない。"
#. type: Plain text
-#: build/C/man3/getw.3:86
+#: build/C/man3/getw.3:87
msgid ""
"The value returned on error is also a legitimate data value. B<ferror>(3) "
"can be used to distinguish between the two cases."
"(3) を用いると、この二つの場合を区別することが出来る。"
#. type: Plain text
-#: build/C/man3/getw.3:92
+#: build/C/man3/getw.3:93
msgid "B<ferror>(3), B<fread>(3), B<fwrite>(3), B<getc>(3), B<putc>(3)"
msgstr "B<ferror>(3), B<fread>(3), B<fwrite>(3), B<getc>(3), B<putc>(3)"
#. type: TH
-#: build/C/man2/link.2:31
+#: build/C/man2/link.2:32
#, no-wrap
msgid "LINK"
msgstr "LINK"
#. type: TH
-#: build/C/man2/link.2:31 build/C/man2/rename.2:32 build/C/man2/symlink.2:32
-#: build/C/man2/write.2:39
-#, fuzzy, no-wrap
-#| msgid "2012-01-18"
-msgid "2013-01-27"
-msgstr "2012-01-18"
+#: build/C/man2/link.2:32 build/C/man3/wprintf.3:16
+#, no-wrap
+msgid "2014-03-19"
+msgstr "2014-03-19"
#. type: Plain text
-#: build/C/man2/link.2:34
-msgid "link - make a new name for a file"
-msgstr "link - ファイルの新しい名前を作成する"
+#: build/C/man2/link.2:35
+msgid "link, linkat - make a new name for a file"
+msgstr "link, linkat - ファイルの新しい名前を作成する"
#. type: Plain text
-#: build/C/man2/link.2:36 build/C/man2/lseek.2:54 build/C/man3/lseek64.3:34
-#: build/C/man2/readlink.2:48 build/C/man2/rmdir.2:35
-#: build/C/man2/symlink.2:37 build/C/man2/unlink.2:37 build/C/man2/write.2:44
-msgid "B<#include E<lt>unistd.hE<gt>>"
-msgstr "B<#include E<lt>unistd.hE<gt>>"
+#: build/C/man2/link.2:38 build/C/man2/pipe.2:42 build/C/man2/read.2:41
+#: build/C/man2/readlink.2:50 build/C/man2/symlink.2:39
+#: build/C/man2/unlink.2:39
+#, no-wrap
+msgid "B<#include E<lt>unistd.hE<gt>>\n"
+msgstr "B<#include E<lt>unistd.hE<gt>>\n"
+
+#. type: Plain text
+#: build/C/man2/link.2:40
+#, no-wrap
+msgid "B<int link(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
+msgstr "B<int link(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
+
+#. type: Plain text
+#: build/C/man2/link.2:43 build/C/man2/readlink.2:56 build/C/man2/symlink.2:44
+#: build/C/man2/unlink.2:44
+#, no-wrap
+msgid ""
+"B<#include E<lt>fcntl.hE<gt> >/* Definition of AT_* constants */\n"
+"B<#include E<lt>unistd.hE<gt>>\n"
+msgstr ""
+"B<#include E<lt>fcntl.hE<gt> >/* AT_* 定数の定義 */\n"
+"B<#include E<lt>unistd.hE<gt>>\n"
+
+#. type: Plain text
+#: build/C/man2/link.2:46
+#, no-wrap
+msgid ""
+"B<int linkat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
+"B< int >I<newdirfd>B<, const char *>I<newpath>B<, int >I<flags>B<);>\n"
+msgstr ""
+"B<int linkat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
+"B< int >I<newdirfd>B<, const char *>I<newpath>B<, int >I<flags>B<);>\n"
+
+#. type: Plain text
+#: build/C/man2/link.2:54
+msgid "B<linkat>():"
+msgstr "B<linkat>():"
#. type: Plain text
-#: build/C/man2/link.2:38
-msgid "B<int link(const char *>I<oldpath>B<, const char *>I<newpath>B<);>"
-msgstr "B<int link(const char *>I<oldpath>B<, const char *>I<newpath>B<);>"
+#: build/C/man2/link.2:63 build/C/man2/open.2:85 build/C/man2/readlink.2:83
+#: build/C/man2/rename.2:64 build/C/man2/symlink.2:71 build/C/man2/unlink.2:63
+msgid "_ATFILE_SOURCE"
+msgstr "_ATFILE_SOURCE"
#. type: Plain text
-#: build/C/man2/link.2:41
+#: build/C/man2/link.2:69
msgid ""
"B<link>() creates a new link (also known as a hard link) to an existing "
"file."
"link) ともいう) を作成する。"
#. type: Plain text
-#: build/C/man2/link.2:47 build/C/man2/symlink.2:84
-msgid "If I<newpath> exists it will I<not> be overwritten."
-msgstr "I<newpath> が存在する場合には上書きはI<されない>。"
+#: build/C/man2/link.2:75
+msgid "If I<newpath> exists, it will I<not> be overwritten."
+msgstr "I<newpath> が存在する場合には、上書きはI<されない>。"
#. type: Plain text
-#: build/C/man2/link.2:52
+#: build/C/man2/link.2:80
msgid ""
"This new name may be used exactly as the old one for any operation; both "
"names refer to the same file (and so have the same permissions and "
"の名前は同じファイルを参照しており (それで同じ許可 (permission) や所有者 "
"(ownership) となるので)、 どちらの名前が本来のものであるか判別できない。"
+#. type: SS
+#: build/C/man2/link.2:80
+#, no-wrap
+msgid "linkat()"
+msgstr "linkat()"
+
+#. type: Plain text
+#: build/C/man2/link.2:86
+msgid ""
+"The B<linkat>() system call operates in exactly the same way as B<link>(), "
+"except for the differences described here."
+msgstr ""
+"B<linkat>() システムコールは B<link>() と全く同様に動作するが、以下で説明する"
+"点が異なる。"
+
+#. type: Plain text
+#: build/C/man2/link.2:96
+msgid ""
+"If the pathname given in I<oldpath> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<olddirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<link>() for a relative pathname)."
+msgstr ""
+"I<oldpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスクリ"
+"プター I<olddirfd> が参照するディレクトリに対する相対パスと解釈される "
+"(B<link>(2) に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
+"ワーキングディレクトリに対する相対パスではない)。"
+
+#. type: Plain text
+#: build/C/man2/link.2:108
+msgid ""
+"If I<oldpath> is relative and I<olddirfd> is the special value B<AT_FDCWD>, "
+"then I<oldpath> is interpreted relative to the current working directory of "
+"the calling process (like B<link>())."
+msgstr ""
+"I<oldpath> で指定されたパス名が相対パスで、 I<olddirfd> が特別な値 "
+"B<AT_FDCWD> の場合、 (B<link>(2) と同様に) I<oldpath> は呼び出したプロセスの"
+"カレントワーキングディレクトリに対する相対パスと解釈される。"
+
+#. type: Plain text
+#: build/C/man2/link.2:114 build/C/man2/rename.2:153
+msgid "If I<oldpath> is absolute, then I<olddirfd> is ignored."
+msgstr ""
+"I<oldpath> で指定されたパス名が絶対パスの場合、 I<olddirfd> は無視される。"
+
+#. type: Plain text
+#: build/C/man2/link.2:122 build/C/man2/rename.2:161
+msgid ""
+"The interpretation of I<newpath> is as for I<oldpath>, except that a "
+"relative pathname is interpreted relative to the directory referred to by "
+"the file descriptor I<newdirfd>."
+msgstr ""
+"I<newpath> の解釈は I<oldpath> と同じである。 相対パスのパス名がファイルディ"
+"スクリプター I<newdirfd> が参照するディレクトリと解釈される点だけが異なる。"
+
+#. type: Plain text
+#: build/C/man2/link.2:125
+msgid "The following values can be bitwise ORed in I<flags>:"
+msgstr "以下の値のビット単位の論理和を I<flags> に指定できる。"
+
+#. type: TP
+#: build/C/man2/link.2:125
+#, no-wrap
+msgid "B<AT_EMPTY_PATH> (since Linux 2.6.39)"
+msgstr "B<AT_EMPTY_PATH> (Linux 2.6.39 以降)"
+
+#. commit 11a7b371b64ef39fc5fb1b6f2218eef7c4d035e3
+#. Before glibc 2.16, defining _ATFILE_SOURCE sufficed
+#. type: Plain text
+#: build/C/man2/link.2:152
+msgid ""
+"If I<oldpath> is an empty string, create a link to the file referenced by "
+"I<olddirfd> (which may have been obtained using the B<open>(2) B<O_PATH> "
+"flag). In this case, I<olddirfd> must refer to a file other than a "
+"directory. The caller must have the B<CAP_DAC_READ_SEARCH> capability in "
+"order to use this flag; this prevents arbitrary users from creating hard "
+"links using file descriptors received via a UNIX domain socket (see the "
+"discussion of B<SCM_RIGHTS> in B<unix>(7)). This flag is Linux-specific; "
+"define B<_GNU_SOURCE> to obtain its definition."
+msgstr ""
+"I<oldpath> が空文字列の場合、 I<olddirfd> が参照するファイルへのリンクを作成"
+"する (I<olddirfd> は B<open>(2) の B<O_PATH> フラグを使って取得する)。 この場"
+"合、 I<olddirfd> はディレクトリではなくファイルを参照していなければならな"
+"い。 このフラグを使用するためには、 呼び出し元は B<CAP_DAC_READ_SEARCH> ケー"
+"パビリティを持っていなければならない。 これにより、 任意のユーザーが UNIX ド"
+"メインソケット経由で受信したファイルディスクリプターを使ってハードリンクを作"
+"成することがないようになっている (B<unix>(7) の B<SCM_RIGHTS> の議論を参"
+"照)。 このフラグは Linux 固有で、 この定義を得るには B<_GNU_SOURCE> を定義す"
+"ること。"
+
+#. type: TP
+#: build/C/man2/link.2:152
+#, no-wrap
+msgid "B<AT_SYMLINK_FOLLOW> (since Linux 2.6.18)"
+msgstr "B<AT_SYMLINK_FOLLOW> (Linux 2.6.18 以降)"
+
+#. type: Plain text
+#: build/C/man2/link.2:167
+msgid ""
+"By default, B<linkat>(), does not dereference I<oldpath> if it is a symbolic "
+"link (like B<link>()). The flag B<AT_SYMLINK_FOLLOW> can be specified in "
+"I<flags> to cause I<oldpath> to be dereferenced if it is a symbolic link."
+msgstr ""
+"B<linkat>() は (B<link>() 同様) デフォルトでは I<oldpath> がシンボリックリン"
+"クの場合リンクの展開を行わない。 フラグ B<AT_SYMLINK_FOLLOW> を I<flags> に指"
+"定することができ、指定した場合 I<oldpath> がシンボリックリンクの場合リンクの"
+"展開が行われる。"
+
+#. type: Plain text
+#: build/C/man2/link.2:171
+msgid ""
+"Before kernel 2.6.18, the I<flags> argument was unused, and had to be "
+"specified as 0."
+msgstr ""
+"カーネル 2.6.18 より前では、 I<flags> 引き数は未使用で、 0 を指定しなければな"
+"らなかった。"
+
+#. type: Plain text
+#: build/C/man2/link.2:176
+msgid "See B<openat>(2) for an explanation of the need for B<linkat>()."
+msgstr "B<linkat>() の必要性についての説明については B<openat>(2) を参照。"
+
#. type: Plain text
-#: build/C/man2/link.2:57 build/C/man2/pipe.2:97 build/C/man3/remove.3:65
-#: build/C/man2/rename.2:96 build/C/man2/rmdir.2:45 build/C/man2/symlink.2:89
-#: build/C/man2/unlink.2:60
+#: build/C/man2/link.2:181 build/C/man2/pipe.2:134 build/C/man3/remove.3:65
+#: build/C/man2/rename.2:171 build/C/man2/rmdir.2:45
+#: build/C/man2/symlink.2:145 build/C/man2/unlink.2:158
msgid ""
"On success, zero is returned. On error, -1 is returned, and I<errno> is set "
"appropriately."
"定される。"
#. type: TP
-#: build/C/man2/link.2:58 build/C/man2/open.2:486 build/C/man2/readlink.2:86
-#: build/C/man2/rename.2:97 build/C/man2/rmdir.2:46 build/C/man2/symlink.2:90
-#: build/C/man3/tmpfile.3:55 build/C/man2/unlink.2:61
+#: build/C/man2/link.2:182 build/C/man2/open.2:788 build/C/man2/readlink.2:160
+#: build/C/man2/rename.2:172 build/C/man2/rmdir.2:46
+#: build/C/man2/symlink.2:146 build/C/man3/tmpfile.3:57
+#: build/C/man2/unlink.2:159
#, no-wrap
msgid "B<EACCES>"
msgstr "B<EACCES>"
#. type: Plain text
-#: build/C/man2/link.2:69
+#: build/C/man2/link.2:193
msgid ""
"Write access to the directory containing I<newpath> is denied, or search "
"permission is denied for one of the directories in the path prefix of "
"(B<path_resolution>(7) を参照)。"
#. type: TP
-#: build/C/man2/link.2:69 build/C/man2/open.2:495 build/C/man2/rename.2:133
-#: build/C/man2/symlink.2:99 build/C/man2/write.2:135
+#: build/C/man2/link.2:193 build/C/man2/open.2:797 build/C/man2/rename.2:208
+#: build/C/man2/symlink.2:155 build/C/man2/write.2:135
#, no-wrap
msgid "B<EDQUOT>"
-msgstr ""
+msgstr "B<EDQUOT>"
#. type: Plain text
-#: build/C/man2/link.2:72 build/C/man2/rename.2:136
-msgid "The user's quota of disk blocks on the file system has been exhausted."
+#: build/C/man2/link.2:196 build/C/man2/rename.2:211
+msgid "The user's quota of disk blocks on the filesystem has been exhausted."
msgstr ""
+"ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。"
#. type: TP
-#: build/C/man2/link.2:72 build/C/man2/open.2:501 build/C/man2/symlink.2:104
-#: build/C/man3/tmpfile.3:58
+#: build/C/man2/link.2:196 build/C/man2/open.2:803 build/C/man2/symlink.2:160
+#: build/C/man3/tmpfile.3:60
#, no-wrap
msgid "B<EEXIST>"
msgstr "B<EEXIST>"
#. type: Plain text
-#: build/C/man2/link.2:76 build/C/man2/symlink.2:108
+#: build/C/man2/link.2:200
msgid "I<newpath> already exists."
msgstr "I<newpath> が既に存在する。"
#. type: TP
-#: build/C/man2/link.2:76 build/C/man2/llseek.2:74 build/C/man2/open.2:507
-#: build/C/man2/pipe.2:98 build/C/man2/read.2:118 build/C/man2/readlink.2:91
-#: build/C/man2/rename.2:136 build/C/man2/rmdir.2:64
-#: build/C/man2/symlink.2:108 build/C/man2/unlink.2:80
+#: build/C/man2/link.2:200 build/C/man2/llseek.2:74 build/C/man2/open.2:809
+#: build/C/man2/open_by_handle_at.2:266 build/C/man2/open_by_handle_at.2:321
+#: build/C/man2/pipe.2:135 build/C/man2/read.2:118 build/C/man2/readlink.2:165
+#: build/C/man2/rename.2:211 build/C/man2/rmdir.2:64
+#: build/C/man2/symlink.2:164 build/C/man2/unlink.2:178
#: build/C/man2/write.2:141
#, no-wrap
msgid "B<EFAULT>"
msgstr "B<EFAULT>"
#. type: Plain text
-#: build/C/man2/link.2:79 build/C/man2/rename.2:139 build/C/man2/symlink.2:111
+#: build/C/man2/link.2:203 build/C/man2/rename.2:214
msgid "I<oldpath> or I<newpath> points outside your accessible address space."
msgstr ""
"I<oldpath> や I<newpath> がアクセス可能なアドレス空間の外を指している。"
#. type: TP
-#: build/C/man2/link.2:79 build/C/man2/read.2:147 build/C/man2/readlink.2:107
-#: build/C/man2/symlink.2:111 build/C/man2/unlink.2:84
+#: build/C/man2/link.2:203 build/C/man2/read.2:147 build/C/man2/readlink.2:181
+#: build/C/man2/symlink.2:167 build/C/man2/unlink.2:182
#: build/C/man2/write.2:165
#, no-wrap
msgid "B<EIO>"
msgstr "B<EIO>"
#. type: Plain text
-#: build/C/man2/link.2:82 build/C/man2/symlink.2:114 build/C/man2/unlink.2:87
+#: build/C/man2/link.2:206 build/C/man2/symlink.2:170
+#: build/C/man2/unlink.2:185
msgid "An I/O error occurred."
msgstr "I/O エラーが発生した。"
#. type: TP
-#: build/C/man2/link.2:82 build/C/man2/open.2:531 build/C/man2/readlink.2:110
-#: build/C/man2/rename.2:149 build/C/man2/rmdir.2:73
-#: build/C/man2/symlink.2:114 build/C/man2/unlink.2:92
+#: build/C/man2/link.2:206 build/C/man2/open.2:870 build/C/man2/open.2:874
+#: build/C/man2/open_by_handle_at.2:331 build/C/man2/readlink.2:184
+#: build/C/man2/rename.2:224 build/C/man2/rmdir.2:73
+#: build/C/man2/symlink.2:170 build/C/man2/unlink.2:190
#, no-wrap
msgid "B<ELOOP>"
msgstr "B<ELOOP>"
#. type: Plain text
-#: build/C/man2/link.2:86 build/C/man2/rename.2:153
+#: build/C/man2/link.2:210 build/C/man2/rename.2:228
msgid ""
"Too many symbolic links were encountered in resolving I<oldpath> or "
"I<newpath>."
"る。"
#. type: TP
-#: build/C/man2/link.2:86 build/C/man2/rename.2:153
+#: build/C/man2/link.2:210 build/C/man2/rename.2:228
#, no-wrap
msgid "B<EMLINK>"
msgstr "B<EMLINK>"
#. type: Plain text
-#: build/C/man2/link.2:91
+#: build/C/man2/link.2:215
msgid ""
"The file referred to by I<oldpath> already has the maximum number of links "
"to it."
"I<oldpath> によって参照されるファイルは 既に最大数までのリンクを持っている。"
#. type: TP
-#: build/C/man2/link.2:91 build/C/man2/open.2:541 build/C/man2/readlink.2:113
-#: build/C/man2/rename.2:160 build/C/man2/rmdir.2:77
-#: build/C/man2/symlink.2:118 build/C/man2/unlink.2:96
+#: build/C/man2/link.2:215 build/C/man2/open.2:886 build/C/man2/readlink.2:187
+#: build/C/man2/rename.2:235 build/C/man2/rmdir.2:77
+#: build/C/man2/symlink.2:174 build/C/man2/unlink.2:194
#, no-wrap
msgid "B<ENAMETOOLONG>"
msgstr "B<ENAMETOOLONG>"
#. type: Plain text
-#: build/C/man2/link.2:94 build/C/man2/rename.2:163 build/C/man2/symlink.2:121
+#: build/C/man2/link.2:218 build/C/man2/rename.2:238
msgid "I<oldpath> or I<newpath> was too long."
msgstr "I<oldpath> または I<newpath> が長過ぎる。"
#. type: TP
-#: build/C/man2/link.2:94 build/C/man2/open.2:555 build/C/man2/readlink.2:116
-#: build/C/man2/rename.2:163 build/C/man2/rmdir.2:80
-#: build/C/man2/symlink.2:121 build/C/man2/unlink.2:99
+#: build/C/man2/link.2:218 build/C/man2/link.2:275 build/C/man2/link.2:283
+#: build/C/man2/open.2:900 build/C/man2/open.2:907
+#: build/C/man2/open_by_handle_at.2:282 build/C/man2/readlink.2:190
+#: build/C/man2/rename.2:238 build/C/man2/rmdir.2:80
+#: build/C/man2/symlink.2:177 build/C/man2/unlink.2:197
#, no-wrap
msgid "B<ENOENT>"
msgstr "B<ENOENT>"
#. type: Plain text
-#: build/C/man2/link.2:99
+#: build/C/man2/link.2:223
msgid ""
"A directory component in I<oldpath> or I<newpath> does not exist or is a "
"dangling symbolic link."
"(dangling)シンボリックリンクである。"
#. type: TP
-#: build/C/man2/link.2:99 build/C/man2/open.2:562 build/C/man2/readlink.2:119
-#: build/C/man2/rename.2:176 build/C/man2/rmdir.2:85 build/C/man3/scanf.3:571
-#: build/C/man2/symlink.2:128 build/C/man3/tempnam.3:93
-#: build/C/man2/unlink.2:106
+#: build/C/man2/link.2:223 build/C/man2/open.2:921 build/C/man2/readlink.2:193
+#: build/C/man2/rename.2:251 build/C/man2/rmdir.2:85 build/C/man3/scanf.3:570
+#: build/C/man2/symlink.2:184 build/C/man3/tempnam.3:102
+#: build/C/man2/unlink.2:204
#, no-wrap
msgid "B<ENOMEM>"
msgstr "B<ENOMEM>"
#. type: Plain text
-#: build/C/man2/link.2:102 build/C/man2/open.2:565 build/C/man2/readlink.2:122
-#: build/C/man2/rename.2:179 build/C/man2/rmdir.2:88
-#: build/C/man2/symlink.2:131 build/C/man2/unlink.2:109
+#: build/C/man2/link.2:226 build/C/man2/open.2:924 build/C/man2/readlink.2:196
+#: build/C/man2/rename.2:254 build/C/man2/rmdir.2:88
+#: build/C/man2/symlink.2:187 build/C/man2/unlink.2:207
msgid "Insufficient kernel memory was available."
msgstr "十分なカーネルメモリーがない。"
#. type: TP
-#: build/C/man2/link.2:102 build/C/man2/open.2:565 build/C/man2/rename.2:179
-#: build/C/man2/symlink.2:131 build/C/man3/tmpfile.3:70
+#: build/C/man2/link.2:226 build/C/man2/open.2:924 build/C/man2/rename.2:254
+#: build/C/man2/symlink.2:187 build/C/man3/tmpfile.3:72
#: build/C/man2/write.2:168
#, no-wrap
msgid "B<ENOSPC>"
msgstr "B<ENOSPC>"
#. type: Plain text
-#: build/C/man2/link.2:106 build/C/man2/rename.2:183
-#: build/C/man2/symlink.2:135
+#: build/C/man2/link.2:230 build/C/man2/rename.2:258
+#: build/C/man2/symlink.2:191
msgid "The device containing the file has no room for the new directory entry."
msgstr ""
"そのファイルを含んでいるデバイスに新しいディレクトリエントリを 作成するための"
"空きがない。"
#. type: TP
-#: build/C/man2/link.2:106 build/C/man2/open.2:571 build/C/man2/readlink.2:122
-#: build/C/man2/rename.2:183 build/C/man2/rmdir.2:88
-#: build/C/man2/symlink.2:135 build/C/man2/unlink.2:109
+#: build/C/man2/link.2:230 build/C/man2/link.2:293 build/C/man2/open.2:930
+#: build/C/man2/open.2:1001 build/C/man2/open_by_handle_at.2:289
+#: build/C/man2/readlink.2:196 build/C/man2/readlink.2:206
+#: build/C/man2/rename.2:258 build/C/man2/rename.2:316 build/C/man2/rmdir.2:88
+#: build/C/man2/symlink.2:191 build/C/man2/symlink.2:212
+#: build/C/man2/unlink.2:207 build/C/man2/unlink.2:263
#, no-wrap
msgid "B<ENOTDIR>"
msgstr "B<ENOTDIR>"
#. type: Plain text
-#: build/C/man2/link.2:111
+#: build/C/man2/link.2:235
msgid ""
"A component used as a directory in I<oldpath> or I<newpath> is not, in fact, "
"a directory."
"い。"
#. type: TP
-#: build/C/man2/link.2:111 build/C/man2/link.2:115 build/C/man2/open.2:604
+#: build/C/man2/link.2:235 build/C/man2/link.2:239 build/C/man2/link.2:303
+#: build/C/man2/open.2:969 build/C/man2/open_by_handle_at.2:338
#: build/C/man2/rmdir.2:107 build/C/man2/rmdir.2:118
-#: build/C/man2/symlink.2:140 build/C/man2/unlink.2:114
+#: build/C/man2/symlink.2:196 build/C/man2/unlink.2:212
#, no-wrap
msgid "B<EPERM>"
msgstr "B<EPERM>"
#. type: Plain text
-#: build/C/man2/link.2:115
+#: build/C/man2/link.2:239
msgid "I<oldpath> is a directory."
msgstr "I<oldpath> がディレクトリである。"
#. type: Plain text
-#: build/C/man2/link.2:120
+#: build/C/man2/link.2:244
msgid ""
-"The file system containing I<oldpath> and I<newpath> does not support the "
+"The filesystem containing I<oldpath> and I<newpath> does not support the "
"creation of hard links."
msgstr ""
"I<oldpath> と I<newpath> を含んでいるファイルシステムがハードリンクをサポート"
"していない。"
#. type: TP
-#: build/C/man2/link.2:120
-#, fuzzy, no-wrap
-#| msgid "B<EPERM> (Linux only)"
+#: build/C/man2/link.2:244
+#, no-wrap
msgid "B<EPERM> (since Linux 3.6)"
-msgstr "B<EPERM> (Linux のみ)"
+msgstr "B<EPERM> (Linux 3.6 以降)"
#. type: Plain text
-#: build/C/man2/link.2:127
+#: build/C/man2/link.2:251
msgid ""
"The caller does not have permission to create a hard link to this file (see "
-"the description of I</proc/sys/fs/protected_hardlink> in B<proc>(5))."
+"the description of I</proc/sys/fs/protected_hardlinks> in B<proc>(5))."
msgstr ""
+"呼び出し元にこのファイルへのハードリンクを作成する許可がなかった (B<proc>(5) "
+"の I</proc/sys/fs/protected_hardlinks> の説明を参照)。"
#. type: TP
-#: build/C/man2/link.2:127 build/C/man2/open.2:612 build/C/man2/rename.2:221
-#: build/C/man2/rmdir.2:123 build/C/man2/symlink.2:145
-#: build/C/man3/tmpfile.3:73 build/C/man2/unlink.2:137
+#: build/C/man2/link.2:251 build/C/man2/open.2:977 build/C/man2/rename.2:296
+#: build/C/man2/rmdir.2:123 build/C/man2/symlink.2:201
+#: build/C/man3/tmpfile.3:75 build/C/man2/unlink.2:235
#, no-wrap
msgid "B<EROFS>"
msgstr "B<EROFS>"
#. type: Plain text
-#: build/C/man2/link.2:130 build/C/man2/rename.2:224
-msgid "The file is on a read-only file system."
+#: build/C/man2/link.2:254 build/C/man2/rename.2:299
+msgid "The file is on a read-only filesystem."
msgstr "ファイルが読み込み専用のファイルシステムに存在する。"
#. type: TP
-#: build/C/man2/link.2:130 build/C/man2/rename.2:224
+#: build/C/man2/link.2:254 build/C/man2/rename.2:299
#, no-wrap
msgid "B<EXDEV>"
msgstr "B<EXDEV>"
#. type: Plain text
-#: build/C/man2/link.2:138
+#: build/C/man2/link.2:262
msgid ""
-"I<oldpath> and I<newpath> are not on the same mounted file system. (Linux "
-"permits a file system to be mounted at multiple points, but B<link>() does "
-"not work across different mount points, even if the same file system is "
+"I<oldpath> and I<newpath> are not on the same mounted filesystem. (Linux "
+"permits a filesystem to be mounted at multiple points, but B<link>() does "
+"not work across different mount points, even if the same filesystem is "
"mounted on both.)"
msgstr ""
"I<oldpath> と I<newpath> が同じマウントされたファイルシステムに存在しない。 "
"している。 しかし B<link>() は、たとえ同じファイルシステムであっても、 別々"
"のマウント位置を跨いでは動作しない。)"
+#. type: Plain text
+#: build/C/man2/link.2:265
+msgid "The following additional errors can occur for B<linkat>():"
+msgstr "B<linkat>() では以下のエラーも発生する。"
+
+#. type: Plain text
+#: build/C/man2/link.2:271 build/C/man2/rename.2:316
+msgid "I<olddirfd> or I<newdirfd> is not a valid file descriptor."
+msgstr "I<olddirfd> か I<newdirfd> が有効なファイルディスクリプタでない。"
+
+#. type: Plain text
+#: build/C/man2/link.2:275 build/C/man2/unlink.2:256
+msgid "An invalid flag value was specified in I<flags>."
+msgstr "無効なフラグ値が I<flags> に指定された。"
+
+#. type: Plain text
+#: build/C/man2/link.2:283
+msgid ""
+"B<AT_EMPTY_PATH> was specified in I<flags>, but the caller did not have the "
+"B<CAP_DAC_READ_SEARCH> capability."
+msgstr ""
+"B<AT_EMPTY_PATH> が I<flags> に指定されたが、呼び出し元が "
+"B<CAP_DAC_READ_SEARCH> ケーパビリティを持っていなかった。"
+
+#. type: Plain text
+#: build/C/man2/link.2:288
+msgid ""
+"An attempt was made to link to the I</proc/self/fd/NN> file corresponding to "
+"a file descriptor created with"
+msgstr ""
+"以下の呼び出しで作成されたファイルディスクリプターに対応する I</proc/self/fd/"
+"NN> ファイルに対してリンクを行おおうとした。"
+
+#. type: Plain text
+#: build/C/man2/link.2:290
+#, no-wrap
+msgid " open(path, O_TMPFILE | O_EXCL, mode);\n"
+msgstr " open(path, O_TMPFILE | O_EXCL, mode);\n"
+
+#. type: Plain text
+#: build/C/man2/link.2:293
+msgid "See B<open>(2)."
+msgstr "B<open>(2) 参照。"
+
+#. type: Plain text
+#: build/C/man2/link.2:303 build/C/man2/rename.2:326
+msgid ""
+"I<oldpath> is relative and I<olddirfd> is a file descriptor referring to a "
+"file other than a directory; or similar for I<newpath> and I<newdirfd>"
+msgstr ""
+"I<oldpath> が相対パスで、 I<olddirfd> がディレクトリ以外のファイルを参照して"
+"いる。または I<newpath> と I<newdirfd> に関して同じ状況である。"
+
+#. type: Plain text
+#: build/C/man2/link.2:312
+msgid ""
+"B<AT_EMPTY_PATH> was specified in I<flags>, I<oldpath> is an empty string, "
+"and I<olddirfd> refers to a directory."
+msgstr ""
+"I<flags> に B<AT_EMPTY_PATH> が指定され、 I<oldpath> が空文字列で、 "
+"I<olddirfd> がディレクトリを参照している。"
+
+#. type: Plain text
+#: build/C/man2/link.2:316
+msgid ""
+"B<linkat>() was added to Linux in kernel 2.6.16; library support was added "
+"to glibc in version 2.4."
+msgstr ""
+"B<linkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポー"
+"トはバージョン 2.4 で glibc に追加された。"
+
#. SVr4 documents additional ENOLINK and
#. EMULTIHOP error conditions; POSIX.1 does not document ELOOP.
#. X/OPEN does not document EFAULT, ENOMEM or EIO.
#. type: Plain text
-#: build/C/man2/link.2:143
-msgid "SVr4, 4.3BSD, POSIX.1-2001 (but see NOTES)."
-msgstr "SVr4, 4.3BSD, POSIX.1-2001 (但し「注意」を参照)。"
+#: build/C/man2/link.2:322
+msgid "B<link>(): SVr4, 4.3BSD, POSIX.1-2001 (but see NOTES), POSIX.1-2008."
+msgstr ""
+"B<link>(): SVr4, 4.3BSD, POSIX.1-2001 (但し「注意」を参照), POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/link.2:325
+msgid "B<linkat>(): POSIX.1-2008."
+msgstr "B<linkat>(): POSIX.1-2008."
#. type: Plain text
-#: build/C/man2/link.2:150
+#: build/C/man2/link.2:332
msgid ""
-"Hard links, as created by B<link>(), cannot span file systems. Use "
-"B<symlink>(2) if this is required."
+"Hard links, as created by B<link>(), cannot span filesystems. Use B<symlink>"
+"(2) if this is required."
msgstr ""
"B<link>() でファイルシステムを超えてハードリンクを作成することはできない。 "
"このような場合は B<symlink>(2) を使用すること。"
#. thread in the Austin mailing list reported that some
#. other (System V) implementations did/do the same -- MTK, Apr 05
#. type: Plain text
-#: build/C/man2/link.2:181
+#: build/C/man2/link.2:363
msgid ""
"POSIX.1-2001 says that B<link>() should dereference I<oldpath> if it is a "
"symbolic link. However, since kernel 2.0, Linux does not do so: if "
"in the same manner as Linux. POSIX.1-2008 changes the specification of "
"B<link>(), making it implementation-dependent whether or not I<oldpath> is "
"dereferenced if it is a symbolic link. For precise control over the "
-"treatment of symbolic links when creating a link, see B<linkat>(2)."
+"treatment of symbolic links when creating a link, use B<linkat>(2)."
msgstr ""
"POSIX.1-2001 では、 I<oldpath> がシンボリックリンクである場合、 B<link>() "
"は I<oldpath> の参照を解決すべきであると記述されている。 しかし、カーネル "
"へのシンボリックリンクになる)。 他のいくつかの実装でも Linux と同じように動作"
"する。 POSIX.1-2008 では B<link>() の仕様が変更され、 I<oldpath> がシンボ"
"リックリンクの場合にシンボリックリンクの参照を 解決するかどうかは実装依存と"
-"ã\81ªã\81£ã\81\9fã\80\82 ã\83ªã\83³ã\82¯ä½\9cæ\88\90æ\99\82ã\81®ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81®æ\89±ã\81\84ã\81«ã\81¤ã\81\84ã\81¦ã\81®è©³ç´°ã\81ªå\88¶å¾¡ã\81« é\96¢ã\81\97ã\81¦"
-"ã\81¯ B<linkat>(2) ã\82\92å\8f\82ç\85§ã\81®こと。"
+"ã\81ªã\81£ã\81\9fã\80\82 ã\83ªã\83³ã\82¯ä½\9cæ\88\90æ\99\82ã\81®ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81®æ\89±ã\81\84ã\81«ã\81¤ã\81\84ã\81¦ã\81®è©³ç´°ã\81ªå\88¶å¾¡ã\82\92è¡\8cã\81\86å ´å\90\88"
+"ã\81«ã\81¯ B<linkat>(2) ã\82\92使ç\94¨ã\81\99ã\82\8bこと。"
#. type: Plain text
-#: build/C/man2/link.2:187
+#: build/C/man2/link.2:369
msgid ""
-"On NFS file systems, the return code may be wrong in case the NFS server "
+"On NFS filesystems, the return code may be wrong in case the NFS server "
"performs the link creation and dies before it can say so. Use B<stat>(2) "
"to find out if the link got created."
msgstr ""
"ためには B<stat>(2) を使用すること。"
#. type: Plain text
-#: build/C/man2/link.2:197
+#: build/C/man2/link.2:378
msgid ""
-"B<ln>(1), B<linkat>(2), B<open>(2), B<rename>(2), B<stat>(2), B<symlink>(2), "
-"B<unlink>(2), B<path_resolution>(7), B<symlink>(7)"
+"B<ln>(1), B<open>(2), B<rename>(2), B<stat>(2), B<symlink>(2), B<unlink>(2), "
+"B<path_resolution>(7), B<symlink>(7)"
msgstr ""
-"B<ln>(1), B<linkat>(2), B<open>(2), B<rename>(2), B<stat>(2), B<symlink>(2), "
-"B<unlink>(2), B<path_resolution>(7), B<symlink>(7)"
+"B<ln>(1), B<open>(2), B<rename>(2), B<stat>(2), B<symlink>(2), B<unlink>(2), "
+"B<path_resolution>(7), B<symlink>(7)"
#. type: TH
#: build/C/man2/llseek.2:28
#. type: TH
#: build/C/man2/llseek.2:28
-#, fuzzy, no-wrap
-#| msgid "2012-04-30"
+#, no-wrap
msgid "2012-07-13"
-msgstr "2012-04-30"
+msgstr "2012-07-13"
#. type: Plain text
#: build/C/man2/llseek.2:31
#: build/C/man2/llseek.2:43
msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
msgstr ""
+"I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
+"を参照。"
#. type: Plain text
#: build/C/man2/llseek.2:62
"エラーを示す I<errno> が設定される。"
#. type: Plain text
-#: build/C/man2/llseek.2:74 build/C/man2/lseek.2:166
+#: build/C/man2/llseek.2:74 build/C/man2/lseek.2:192
msgid "I<fd> is not an open file descriptor."
msgstr "I<fd> がオープンされたファイルディスクリプタでない。"
#. type: TH
#: build/C/man2/lseek.2:47
#, no-wrap
-msgid "2011-09-25"
-msgstr "2011-09-25"
+msgid "2014-01-22"
+msgstr "2014-01-22"
#. type: Plain text
#: build/C/man2/lseek.2:50
msgstr "B<#include E<lt>sys/types.hE<gt>>"
#. type: Plain text
+#: build/C/man2/lseek.2:54 build/C/man3/lseek64.3:34 build/C/man2/rmdir.2:35
+#: build/C/man2/write.2:44
+msgid "B<#include E<lt>unistd.hE<gt>>"
+msgstr "B<#include E<lt>unistd.hE<gt>>"
+
+#. type: Plain text
#: build/C/man2/lseek.2:56
msgid "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>"
msgstr "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>"
#: build/C/man2/lseek.2:90
#, no-wrap
msgid "Seeking file data and holes"
-msgstr ""
+msgstr "ファイルのデータとホールの探索"
#. type: Plain text
#: build/C/man2/lseek.2:93
"Since version 3.1, Linux supports the following additional values for "
"I<whence>:"
msgstr ""
-"Linux バージョン 3.1 以降では、\n"
-"I<whence> に以下の値も指定することができる。"
+"Linux バージョン 3.1 以降では、 I<whence> に以下の値も指定することができる。"
#. type: TP
#: build/C/man2/lseek.2:93
"equal to I<offset> containing data. If I<offset> points to data, then the "
"file offset is set to I<offset>."
msgstr ""
+"ファイルオフセットを I<offset> 以上で次にデータがある位置に設定する。 "
+"I<offset> がデータを指している場合には、 ファイルオフセットは I<offset> に設"
+"定される。"
#. type: TP
#: build/C/man2/lseek.2:104
"file offset is adjusted to the end of the file (i.e., there is an implicit "
"hole at the end of any file)."
msgstr ""
+"ファイルオフセットを、 位置が I<offset> 以上の次のホール (hole) に設定する。 "
+"I<offset> がホールの内部にある場合は、ファイルシステムは I<offset> に設定され"
+"る。 I<offset> 以降にホールがない場合は、 ファイルオフセットはファイル末尾に"
+"設定される (つまり、 どのファイルの末尾にも暗黙のホールが存在するということ"
+"だ)。"
#. type: Plain text
#: build/C/man2/lseek.2:124
"In both of the above cases, B<lseek>() fails if I<offset> points past the "
"end of the file."
msgstr ""
+"上記のどちらの場合も、 I<offset> がファイル末尾よりも先を指している場合には "
+"B<lseek>() は失敗する。"
#. type: Plain text
#: build/C/man2/lseek.2:130
"can save space when creating backups and preserve holes, if they have a "
"mechanism for discovering holes."
msgstr ""
+"これらの操作を使うことで、 アプリケーションが、 まばら (sparse ) にページが割"
+"り当てられたファイルでホールをマップすることができる。 この機能はファイルバッ"
+"クアップツールなどのアプリケーションで有用である。 ホールを見つける仕組みがあ"
+"れば、 ファイルバックアップツールで、 バックアップを作成する際に保存領域を節"
+"約し、ホールを保持することができる。"
#. https://lkml.org/lkml/2011/4/22/79
#. http://lwn.net/Articles/440255/
msgid ""
"For the purposes of these operations, a hole is a sequence of zeros that "
"(normally) has not been allocated in the underlying file storage. However, "
-"a file system is not obliged to report holes, so these operations are not a "
+"a filesystem is not obliged to report holes, so these operations are not a "
"guaranteed mechanism for mapping the storage space actually allocated to a "
"file. (Furthermore, a sequence of zeros that actually has been written to "
"the underlying storage may not be reported as a hole.) In the simplest "
-"implementation, a file system can support the operations by making "
+"implementation, a filesystem can support the operations by making "
"B<SEEK_HOLE> always return the offset of the end of the file, and making "
"B<SEEK_DATA> always return I<offset> (i.e., even if the location referred to "
"by I<offset> is a hole, it can be considered to consist of data that is a "
"sequence of zeros)."
msgstr ""
+"これらの操作の目的としては、 ホールは (通常は) バックエンドのファイルストレー"
+"ジには割り当てられていない連続する 0 の列である。 しかし、ファイルシステムに"
+"はホールを報告する義務はなく、 そのため、 これらの操作は、 ファイルに実際に割"
+"り当てられたストレージ領域をマッピングする方法としては確実性のある仕組みでは"
+"ない。 (また、バックエンドのストレージに実際に書き込まれた連続する 0 の列は"
+"ホールとして報告されないこともある。) 最も単純な実装としては、 B<SEEK_HOLE> "
+"は常にファイル末尾のオフセットを返すようにし、 B<SEEK_DATA> は常に I<offset> "
+"を返すようにすることで、 ファイルシステムはこれらの操作をサポートすることがで"
+"きる (B<SEEK_DATA> は常に I<offset> を返すというのは、 I<offset> が参照する場"
+"所がホールであったとしても、 連続する 0 の列のデータで構成されているとみなす"
+"ということである)。"
#. type: Plain text
-#: build/C/man2/lseek.2:161
+#: build/C/man2/lseek.2:162
+msgid ""
+"The B<_GNU_SOURCE> feature test macro must be defined in order to obtain the "
+"definitions of B<SEEK_DATA> and B<SEEK_HOLE> from I<E<lt>unistd.hE<gt>>."
+msgstr ""
+"I<E<lt>unistd.hE<gt>> から B<SEEK_DATA> と B<SEEK_HOLE> の定義を得るには、 機"
+"能検査マクロ B<_GNU_SOURCE> を定義しなければならない。"
+
+#. type: Plain text
+#: build/C/man2/lseek.2:168
+msgid ""
+"The B<SEEK_HOLE> and B<SEEK_DATA> operations are supported for the following "
+"filesystems:"
+msgstr ""
+"B<SEEK_HOLE>, B<SEEK_DATA> 操作に対応しているのは以下のファイルシステムであ"
+"る。"
+
+#. type: Plain text
+#: build/C/man2/lseek.2:170
+msgid "Btrfs (since Linux 3.1)"
+msgstr "Btrfs (Linux 3.1 以降)"
+
+#. commit 93862d5e1ab875664c6cc95254fc365028a48bb1
+#. type: Plain text
+#: build/C/man2/lseek.2:173
+msgid "OCFS (since Linux 3.2)"
+msgstr "OCFS (Linux 3.2 以降)"
+
+#. type: Plain text
+#: build/C/man2/lseek.2:175
+msgid "XFS (since Linux 3.5)"
+msgstr "XFS (Linux 3.5 以降)"
+
+#. type: Plain text
+#: build/C/man2/lseek.2:177
+msgid "ext4 (since Linux 3.8)"
+msgstr "ext4 (Linux 3.8 以降)"
+
+#. type: Plain text
+#: build/C/man2/lseek.2:179
+msgid "tmpfs (since Linux 3.8)"
+msgstr "tmpfs (Linux 3.8 以降)"
+
+#. type: Plain text
+#: build/C/man2/lseek.2:187
msgid ""
"Upon successful completion, B<lseek>() returns the resulting offset "
"location as measured in bytes from the beginning of the file. On error, the "
"される。"
#. Some systems may allow negative offsets for character devices
-#. and/or for remote file systems.
+#. and/or for remote filesystems.
#. type: Plain text
-#: build/C/man2/lseek.2:174
+#: build/C/man2/lseek.2:200
msgid ""
"I<whence> is not valid. Or: the resulting file offset would be negative, or "
"beyond the end of a seekable device."
"なってしまうか、 seek 可能なデバイスの末尾を越えてしまう。"
#. type: TP
-#: build/C/man2/lseek.2:174 build/C/man2/open.2:584
+#: build/C/man2/lseek.2:200 build/C/man2/open.2:949
+#: build/C/man2/open_by_handle_at.2:304
#, no-wrap
msgid "B<EOVERFLOW>"
msgstr "B<EOVERFLOW>"
#. HP-UX 11 says EINVAL for this case (but POSIX.1 says EOVERFLOW)
#. type: Plain text
-#: build/C/man2/lseek.2:179
+#: build/C/man2/lseek.2:205
msgid "The resulting file offset cannot be represented in an I<off_t>."
msgstr "結果のファイルオフセットを I<off_t> 型で表現することができない。"
#. type: TP
-#: build/C/man2/lseek.2:179
+#: build/C/man2/lseek.2:205
#, no-wrap
msgid "B<ESPIPE>"
msgstr "B<ESPIPE>"
#. type: Plain text
-#: build/C/man2/lseek.2:183
+#: build/C/man2/lseek.2:209
msgid "I<fd> is associated with a pipe, socket, or FIFO."
msgstr "I<fd> がパイプ、ソケット、FIFO を参照している。"
#. type: TP
-#: build/C/man2/lseek.2:183 build/C/man2/open.2:578
+#: build/C/man2/lseek.2:209 build/C/man2/open.2:937
#, no-wrap
msgid "B<ENXIO>"
msgstr "B<ENXIO>"
#. type: Plain text
-#: build/C/man2/lseek.2:191
+#: build/C/man2/lseek.2:217
msgid ""
"I<whence> is B<SEEK_DATA> or B<SEEK_HOLE>, and the current file offset is "
"beyond the end of the file."
#. SVr4 documents additional error
#. conditions EDEADLK, ENOLCK, ENOLNK, ENOSR, ENXIO, or ERANGE.
#. type: Plain text
-#: build/C/man2/lseek.2:193 build/C/man2/read.2:175 build/C/man2/rmdir.2:129
-#: build/C/man2/symlink.2:155 build/C/man2/unlink.2:145
+#: build/C/man2/lseek.2:219 build/C/man2/read.2:175 build/C/man2/rmdir.2:129
#: build/C/man2/write.2:189
msgid "SVr4, 4.3BSD, POSIX.1-2001."
msgstr "SVr4, 4.3BSD, POSIX.1-2001."
#. FIXME . Review http://austingroupbugs.net/view.php?id=415 in the future
#. type: Plain text
-#: build/C/man2/lseek.2:201
+#: build/C/man2/lseek.2:227
msgid ""
"B<SEEK_DATA> and B<SEEK_HOLE> are nonstandard extensions also present in "
"Solaris, FreeBSD, and DragonFly BSD; they are proposed for inclusion in the "
"next POSIX revision (Issue 8)."
msgstr ""
+"B<SEEK_DATA> と B<SEEK_HOLE> は非標準の拡張で、 Solaris, FreeBSD, DragonFly "
+"BSD にも存在する。 これらは POSIX の次の版 (Issue 8) に入れるよう提案されてい"
+"る。"
#. type: Plain text
-#: build/C/man2/lseek.2:205
+#: build/C/man2/lseek.2:231
msgid ""
"Some devices are incapable of seeking and POSIX does not specify which "
"devices must support B<lseek>()."
#. Other systems return the number of written characters,
#. using SEEK_SET to set the counter. (Of written characters.)
#. type: Plain text
-#: build/C/man2/lseek.2:212
-#, fuzzy
-#| msgid "On Linux, using B<lseek>() on a tty device returns B<ESPIPE>."
+#: build/C/man2/lseek.2:238
msgid "On Linux, using B<lseek>() on a terminal device returns B<ESPIPE>."
msgstr ""
-"Linux では、 tty デバイスに B<lseek>() を使用すると B<ESPIPE> を返す。"
+"Linux では、端末 (terminal) デバイスに B<lseek>() を使用すると B<ESPIPE> が返"
+"る。"
#. type: Plain text
-#: build/C/man2/lseek.2:215
+#: build/C/man2/lseek.2:241
msgid ""
"When converting old code, substitute values for I<whence> with the following "
"macros:"
msgstr "古いコードを変換する時は I<whence> の値を以下のマクロに置き換えること:"
#. type: tbl table
-#: build/C/man2/lseek.2:218
+#: build/C/man2/lseek.2:244
#, no-wrap
msgid "old\tnew\n"
msgstr "old \tnew\n"
#. type: tbl table
-#: build/C/man2/lseek.2:219
+#: build/C/man2/lseek.2:245
#, no-wrap
msgid "0\tSEEK_SET\n"
msgstr "0\tSEEK_SET\n"
#. type: tbl table
-#: build/C/man2/lseek.2:220
+#: build/C/man2/lseek.2:246
#, no-wrap
msgid "1\tSEEK_CUR\n"
msgstr "1\tSEEK_CUR\n"
#. type: tbl table
-#: build/C/man2/lseek.2:221
+#: build/C/man2/lseek.2:247
#, no-wrap
msgid "2\tSEEK_END\n"
msgstr "2\tSEEK_END\n"
#. type: tbl table
-#: build/C/man2/lseek.2:222
+#: build/C/man2/lseek.2:248
#, no-wrap
msgid "L_SET\tSEEK_SET\n"
msgstr "L_SET\tSEEK_SET\n"
#. type: tbl table
-#: build/C/man2/lseek.2:223
+#: build/C/man2/lseek.2:249
#, no-wrap
msgid "L_INCR\tSEEK_CUR\n"
msgstr "L_INCR\tSEEK_CUR\n"
#. type: tbl table
-#: build/C/man2/lseek.2:224
+#: build/C/man2/lseek.2:250
#, no-wrap
msgid "L_XTND\tSEEK_END\n"
msgstr "L_XTND\tSEEK_END\n"
#. type: Plain text
-#: build/C/man2/lseek.2:236
+#: build/C/man2/lseek.2:262
msgid ""
"Note that file descriptors created by B<dup>(2) or B<fork>(2) share the "
"current file position pointer, so seeking on such files may be subject to "
"なファイルで移動を行うと競合状態を引き起こす可能性がある。"
#. type: Plain text
-#: build/C/man2/lseek.2:243
+#: build/C/man2/lseek.2:269
msgid ""
"B<dup>(2), B<fork>(2), B<open>(2), B<fseek>(3), B<lseek64>(3), "
"B<posix_fallocate>(3)"
#. type: TH
#: build/C/man3/lseek64.3:25
#, no-wrap
-msgid "2004-12-11"
-msgstr "2004-12-11"
+msgid "2013-08-19"
+msgstr "2013-08-19"
#. type: Plain text
#: build/C/man3/lseek64.3:28
msgstr "更に詳しい情報は、 B<llseek>(2) を参照すること。"
#. type: Plain text
-#: build/C/man3/lseek64.3:162
+#: build/C/man3/lseek64.3:164
+msgid "The B<lseek64>() function is thread-safe."
+msgstr "関数 B<lseek64>() はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/lseek64.3:167
msgid "B<llseek>(2), B<lseek>(2)"
msgstr "B<llseek>(2), B<lseek>(2)"
#. type: TH
-#: build/C/man2/open.2:52
+#: build/C/man2/open.2:51
#, no-wrap
msgid "OPEN"
msgstr "OPEN"
#. type: TH
-#: build/C/man2/open.2:52
-#, fuzzy, no-wrap
-#| msgid "2012-02-14"
-msgid "2013-02-18"
-msgstr "2012-02-14"
+#: build/C/man2/open.2:51
+#, no-wrap
+msgid "2014-04-20"
+msgstr "2014-04-20"
#. type: Plain text
-#: build/C/man2/open.2:55
-msgid "open, creat - open and possibly create a file or device"
-msgstr "open, creat - ファイルやデバイスのオープン、作成を行う"
+#: build/C/man2/open.2:54
+msgid "open, openat, creat - open and possibly create a file"
+msgstr "open, openat, creat - ファイルのオープン、作成を行う"
#. type: Plain text
-#: build/C/man2/open.2:60
+#: build/C/man2/open.2:59
#, no-wrap
msgid ""
"B<#include E<lt>sys/types.hE<gt>>\n"
"B<#include E<lt>fcntl.hE<gt>>\n"
#. type: Plain text
-#: build/C/man2/open.2:63
+#: build/C/man2/open.2:62
#, no-wrap
msgid ""
"B<int open(const char *>I<pathname>B<, int >I<flags>B<);>\n"
"B<int open(const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
#. type: Plain text
-#: build/C/man2/open.2:65
+#: build/C/man2/open.2:64
#, no-wrap
msgid "B<int creat(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
msgstr "B<int creat(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
#. type: Plain text
+#: build/C/man2/open.2:68
+#, no-wrap
+msgid ""
+"B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
+"B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
+msgstr ""
+"B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
+"B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
+
+#. type: Plain text
#: build/C/man2/open.2:76
+msgid "B<openat>():"
+msgstr "B<openat>():"
+
+#. type: Plain text
+#: build/C/man2/open.2:98
msgid ""
"Given a I<pathname> for a file, B<open>() returns a file descriptor, a "
"small, nonnegative integer for use in subsequent system calls (B<read>(2), "
"のものとなる。"
#. type: Plain text
-#: build/C/man2/open.2:88
+#: build/C/man2/open.2:110
msgid ""
"By default, the new file descriptor is set to remain open across an B<execve>"
"(2) (i.e., the B<FD_CLOEXEC> file descriptor flag described in B<fcntl>(2) "
"(file offset) はファイルの先頭に設定される (B<lseek>(2) 参照)。"
#. type: Plain text
-#: build/C/man2/open.2:107
+#: build/C/man2/open.2:129
msgid ""
"A call to B<open>() creates a new I<open file description>, an entry in the "
"system-wide table of open files. This entry records the file offset and the "
"が、 B<fork>(2) で共有が起こる場合がある。"
#. type: Plain text
-#: build/C/man2/open.2:115
+#: build/C/man2/open.2:137
msgid ""
"The argument I<flags> must include one of the following I<access modes>: "
"B<O_RDONLY>, B<O_WRONLY>, or B<O_RDWR>. These request opening the file read-"
#. TC1 (balloted in 2013), resolved this, so that those three constants
#. are also categorized" as file status flags.
#. type: Plain text
-#: build/C/man2/open.2:153
-#, fuzzy
-#| msgid ""
-#| "In addition, zero or more file creation flags and file status flags can "
-#| "be bitwise-I<or>'d in I<flags>. The I<file creation flags> are "
-#| "B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, and B<O_TRUNC>. The I<file status "
-#| "flags> are all of the remaining flags listed below. The distinction "
-#| "between these two groups of flags is that the file status flags can be "
-#| "retrieved and (in some cases) modified using B<fcntl>(2). The full list "
-#| "of file creation flags and file status flags is as follows:"
+#: build/C/man2/open.2:176
msgid ""
"In addition, zero or more file creation flags and file status flags can be "
"bitwise-I<or>'d in I<flags>. The I<file creation flags> are B<O_CLOEXEC>, "
"B<O_CREAT>, B<O_DIRECTORY>, B<O_EXCL>, B<O_NOCTTY>, B<O_NOFOLLOW>, "
-"B<O_TRUNC>, and B<O_TTY_INIT>. The I<file status flags> are all of the "
-"remaining flags listed below. The distinction between these two groups of "
-"flags is that the file status flags can be retrieved and (in some cases) "
-"modified using B<fcntl>(2). The full list of file creation flags and file "
-"status flags is as follows:"
+"B<O_TMPFILE>, B<O_TRUNC>, and B<O_TTY_INIT>. The I<file status flags> are "
+"all of the remaining flags listed below. The distinction between these two "
+"groups of flags is that the file status flags can be retrieved and (in some "
+"cases) modified; see B<fcntl>(2) for details."
msgstr ""
"さらに、 I<flags> には、ファイル作成フラグ (file creation flag) とファイル状"
"態フラグ (file status flag) を 0 個以上「ビット単位の OR (bitwise-or)」で 指"
-"定することができる。 I<ファイル作成フラグ> は B<O_CREAT>, B<O_EXCL>, "
-"B<O_NOCTTY>, B<O_TRUNC> である。 I<ファイル状態フラグ> は以下のリストのうち上"
-"記以外の残りのものである。 二種類のフラグの違いは、ファイル状態フラグの方は "
-"B<fcntl>(2) を使ってその内容を取得したり (場合によっては) 変更したりできる点"
-"にある。 ファイル作成フラグとファイル状態フラグの全リストを以下に示す:"
+"定することができる。 I<ファイル作成フラグ> は B<O_CLOEXEC>, B<O_CREAT>, "
+"B<O_DIRECTORY>, B<O_EXCL>, B<O_NOCTTY>, B<O_NOFOLLOW>, B<O_TMPFILE>, "
+"B<O_TRUNC>, B<O_TTY_INIT> である。 I<ファイル状態フラグ> は以下のリストのうち"
+"上記以外の残りのものである。 二種類のフラグの違いは、ファイル状態フラグの方は"
+"その内容を取得したり (場合によっては) 変更したりできる点にある。詳細は "
+"B<fcntl>(2) を参照。"
+
+#. type: Plain text
+#: build/C/man2/open.2:178
+msgid ""
+"The full list of file creation flags and file status flags is as follows:"
+msgstr ""
#. type: TP
-#: build/C/man2/open.2:153
+#: build/C/man2/open.2:178
#, no-wrap
msgid "B<O_APPEND>"
msgstr "B<O_APPEND>"
#. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453946
#. http://nfs.sourceforge.net/
#. type: Plain text
-#: build/C/man2/open.2:170
+#: build/C/man2/open.2:195
msgid ""
"The file is opened in append mode. Before each B<write>(2), the file offset "
"is positioned at the end of the file, as if with B<lseek>(2). B<O_APPEND> "
-"may lead to corrupted files on NFS file systems if more than one process "
+"may lead to corrupted files on NFS filesystems if more than one process "
"appends data to a file at once. This is because NFS does not support "
"appending to a file, so the client kernel has to simulate it, which can't be "
"done without a race condition."
"とはできないからである。"
#. type: TP
-#: build/C/man2/open.2:170
+#: build/C/man2/open.2:195
#, no-wrap
msgid "B<O_ASYNC>"
msgstr "B<O_ASYNC>"
#. type: Plain text
-#: build/C/man2/open.2:183
+#: build/C/man2/open.2:209
msgid ""
"Enable signal-driven I/O: generate a signal (B<SIGIO> by default, but this "
"can be changed via B<fcntl>(2)) when input or output becomes possible on "
-"this file descriptor. This feature is only available for terminals, "
+"this file descriptor. This feature is available only for terminals, "
"pseudoterminals, sockets, and (since Linux 2.6) pipes and FIFOs. See "
-"B<fcntl>(2) for further details."
+"B<fcntl>(2) for further details. See also BUGS, below."
msgstr ""
"シグナル駆動 I/O (signal-driven I/O) を有効にする: このファイルディスクリプタ"
"への 入力または出力が可能になった場合に、シグナルを生成する (デフォルトは "
"B<SIGIO> であるが、 B<fcntl>(2) によって変更可能である)。 この機能が使用可能"
"なのは端末、疑似端末、ソケットのみであり、 (Linux 2.6 以降では) パイプと "
-"FIFO に対しても使用できる。 さらに詳しい説明は B<fcntl>(2) を参照すること。"
+"FIFO に対しても使用できる。 さらに詳しい説明は B<fcntl>(2) を参照すること。 "
+"下記の「バグ」も参照。"
#. type: TP
-#: build/C/man2/open.2:183
+#: build/C/man2/open.2:209
#, no-wrap
-msgid "B<O_CLOEXEC> (Since Linux 2.6.23)"
+msgid "B<O_CLOEXEC> (since Linux 2.6.23)"
msgstr "B<O_CLOEXEC> (Linux 2.6.23 以降)"
+#. NOTE! several otehr man pages refer to this text
+#. type: Plain text
+#: build/C/man2/open.2:219
+msgid ""
+"Enable the close-on-exec flag for the new file descriptor. Specifying this "
+"flag permits a program to avoid additional B<fcntl>(2) B<F_SETFD> "
+"operations to set the B<FD_CLOEXEC> flag."
+msgstr ""
+
#. This flag fixes only one form of the race condition;
#. The race can also occur with, for example, descriptors
#. returned by accept(), pipe(), etc.
#. type: Plain text
-#: build/C/man2/open.2:208
+#: build/C/man2/open.2:248
msgid ""
-"Enable the close-on-exec flag for the new file descriptor. Specifying this "
-"flag permits a program to avoid additional B<fcntl>(2) B<F_SETFD> "
-"operations to set the B<FD_CLOEXEC> flag. Additionally, use of this flag is "
-"essential in some multithreaded programs since using a separate B<fcntl>(2) "
-"B<F_SETFD> operation to set the B<FD_CLOEXEC> flag does not suffice to avoid "
-"race conditions where one thread opens a file descriptor at the same time as "
-"another thread does a B<fork>(2) plus B<execve>(2)."
+"Note that the use of this flag is essential in some multithreaded programs, "
+"because using a separate B<fcntl>(2) B<F_SETFD> operation to set the "
+"B<FD_CLOEXEC> flag does not suffice to avoid race conditions where one "
+"thread opens a file descriptor and attempts to set its close-on-exec flag "
+"using B<fcntl>(2) at the same time as another thread does a B<fork>(2) "
+"plus B<execve>(2). Depending on the order of execution, the race may lead "
+"to the file desriptor returned by B<open>() being unintentionally leaked to "
+"the program executed by the child process created by B<fork>(2). (This kind "
+"of race is in principle possible for any system call that creates a file "
+"descriptor whose close-on-exec flag should be set, and various other Linux "
+"system calls provide an equivalent of the B<O_CLOEXEC> flag to deal with "
+"this problem.)"
msgstr ""
-"新しいファイルディスクリプタに対して close-on-exec フラグを有効にする。 この"
-"フラグを指定することで、プログラムは B<FD_CLOEXEC> フラグをセットするための "
-"B<fcntl>(2) B<F_SETFD> 操作を別途呼び出す必要がなくなる。 また、ある種のマル"
-"チスレッドのプログラムはこのフラグの使用は 不可欠である。なぜなら、個別に "
-"B<FD_CLOEXEC> フラグを設定する B<fcntl>(2) B<F_SETFD> 操作を呼び出したとして"
-"も、あるスレッドがファイルディスクリプタを オープンするのと同時に別のスレッド"
-"が B<fork>(2) と B<execve>(2) を実行するという競合条件を避けるのには十分で"
-"はないからである。"
#. type: TP
-#: build/C/man2/open.2:208
+#: build/C/man2/open.2:248
#, no-wrap
msgid "B<O_CREAT>"
msgstr "B<O_CREAT>"
#. As at 2.6.25, bsdgroups is supported by ext2, ext3, ext4, and
#. XFS (since 2.6.14).
#. type: Plain text
-#: build/C/man2/open.2:224
+#: build/C/man2/open.2:264
msgid ""
-"If the file does not exist it will be created. The owner (user ID) of the "
+"If the file does not exist, it will be created. The owner (user ID) of the "
"file is set to the effective user ID of the process. The group ownership "
"(group ID) is set either to the effective group ID of the process or to the "
-"group ID of the parent directory (depending on file system type and mount "
-"options, and the mode of the parent directory, see the mount options "
+"group ID of the parent directory (depending on filesystem type and mount "
+"options, and the mode of the parent directory; see the mount options "
"I<bsdgroups> and I<sysvgroups> described in B<mount>(8))."
msgstr ""
"ファイルが存在しなかった場合は作成 (create) する。 ファイルの所有者 (ユー"
"I<bsdgroups> と I<sysvgroups> を参照)。"
#. type: Plain text
-#: build/C/man2/open.2:247
+#: build/C/man2/open.2:291
msgid ""
"I<mode> specifies the permissions to use in case a new file is created. "
-"This argument must be supplied when B<O_CREAT> is specified in I<flags>; if "
-"B<O_CREAT> is not specified, then I<mode> is ignored. The effective "
-"permissions are modified by the process's I<umask> in the usual way: The "
-"permissions of the created file are I<(mode\\ &\\ ~umask)>. Note that this "
-"mode only applies to future accesses of the newly created file; the B<open>"
-"() call that creates a read-only file may well return a read/write file "
-"descriptor."
+"This argument must be supplied when B<O_CREAT> or B<O_TMPFILE> is specified "
+"in I<flags>; if neither B<O_CREAT> nor B<O_TMPFILE> is specified, then "
+"I<mode> is ignored. The effective permissions are modified by the process's "
+"I<umask> in the usual way: The permissions of the created file are I<(mode\\ "
+"&\\ ~umask)>. Note that this mode applies only to future accesses of the "
+"newly created file; the B<open>() call that creates a read-only file may "
+"well return a read/write file descriptor."
msgstr ""
"I<mode> は新しいファイルを作成する場合に使用するアクセス許可 (permission) を"
-"指定する。 I<flags> に B<O_CREAT> が指定されている場合、 I<mode> を指定しなけ"
-"ればならない。 B<O_CREAT> が指定されていない場合、 I<mode> は無視される。 有"
-"効なアクセス許可は、普段と同じようにプロセスの I<umask> によって修正され、作"
-"成されたファイルの許可は I<(mode\\ &\\ ~umask)> となる。 このモードは、新しく"
-"作成されたファイルに対するそれ以降のアクセス にのみ適用される点に注意するこ"
-"と。 読み取り専用のファイルを作成する B<open>() コールであっても、 読み書き"
-"可能なファイルディスクリプタを返すことがありうる。"
+"指定する。 I<flags> に B<O_CREAT> か B<O_TMPFILE> が指定されている場合、 "
+"I<mode> を指定しなければならない。 B<O_CREAT> も B<O_TMPFILE> も指定されてい"
+"ない場合、 I<mode> は無視される。 有効なアクセス許可は、普段と同じようにプロ"
+"セスの I<umask> によって修正され、作成されたファイルの許可は I<(mode\\ &\\ "
+"~umask)> となる。 このモードは、新しく作成されたファイルに対するそれ以降のア"
+"クセス にのみ適用される点に注意すること。 読み取り専用のファイルを作成する "
+"B<open>() コールであっても、 読み書き可能なファイルディスクリプタを返すこと"
+"がありうる。"
#. type: Plain text
-#: build/C/man2/open.2:250
+#: build/C/man2/open.2:294
msgid "The following symbolic constants are provided for I<mode>:"
msgstr "I<mode> のために以下のシンボル定数が提供されている :"
#. type: TP
-#: build/C/man2/open.2:250
+#: build/C/man2/open.2:294
#, no-wrap
msgid "B<S_IRWXU>"
msgstr "B<S_IRWXU>"
#. type: Plain text
-#: build/C/man2/open.2:253
+#: build/C/man2/open.2:297
msgid "00700 user (file owner) has read, write and execute permission"
msgstr ""
"00700 ユーザー (ファイルの所有者) に読み込み、書き込み、 実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:253
+#: build/C/man2/open.2:297
#, no-wrap
msgid "B<S_IRUSR>"
msgstr "B<S_IRUSR>"
#. type: Plain text
-#: build/C/man2/open.2:256
+#: build/C/man2/open.2:300
msgid "00400 user has read permission"
msgstr "00400 ユーザーに読み込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:256
+#: build/C/man2/open.2:300
#, no-wrap
msgid "B<S_IWUSR>"
msgstr "B<S_IWUSR>"
#. type: Plain text
-#: build/C/man2/open.2:259
+#: build/C/man2/open.2:303
msgid "00200 user has write permission"
msgstr "00200 ユーザーに書き込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:259
+#: build/C/man2/open.2:303
#, no-wrap
msgid "B<S_IXUSR>"
msgstr "B<S_IXUSR>"
#. type: Plain text
-#: build/C/man2/open.2:262
+#: build/C/man2/open.2:306
msgid "00100 user has execute permission"
msgstr "00100 ユーザーに実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:262
+#: build/C/man2/open.2:306
#, no-wrap
msgid "B<S_IRWXG>"
msgstr "B<S_IRWXG>"
#. type: Plain text
-#: build/C/man2/open.2:265
+#: build/C/man2/open.2:309
msgid "00070 group has read, write and execute permission"
msgstr "00070 グループに読み込み、書き込み、実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:265
+#: build/C/man2/open.2:309
#, no-wrap
msgid "B<S_IRGRP>"
msgstr "B<S_IRGRP>"
#. type: Plain text
-#: build/C/man2/open.2:268
+#: build/C/man2/open.2:312
msgid "00040 group has read permission"
msgstr "00040 グループに読み込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:268
+#: build/C/man2/open.2:312
#, no-wrap
msgid "B<S_IWGRP>"
msgstr "B<S_IWGRP>"
#. type: Plain text
-#: build/C/man2/open.2:271
+#: build/C/man2/open.2:315
msgid "00020 group has write permission"
msgstr "00020 グループに書き込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:271
+#: build/C/man2/open.2:315
#, no-wrap
msgid "B<S_IXGRP>"
msgstr "B<S_IXGRP>"
#. type: Plain text
-#: build/C/man2/open.2:274
+#: build/C/man2/open.2:318
msgid "00010 group has execute permission"
msgstr "00010 グループに実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:274
+#: build/C/man2/open.2:318
#, no-wrap
msgid "B<S_IRWXO>"
msgstr "B<S_IRWXO>"
#. type: Plain text
-#: build/C/man2/open.2:277
+#: build/C/man2/open.2:321
msgid "00007 others have read, write and execute permission"
msgstr "00007 他人 (others) に読み込み、書き込み、実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:277
+#: build/C/man2/open.2:321
#, no-wrap
msgid "B<S_IROTH>"
msgstr "B<S_IROTH>"
#. type: Plain text
-#: build/C/man2/open.2:280
+#: build/C/man2/open.2:324
msgid "00004 others have read permission"
msgstr "00004 他人に読み込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:280
+#: build/C/man2/open.2:324
#, no-wrap
msgid "B<S_IWOTH>"
msgstr "B<S_IWOTH>"
#. type: Plain text
-#: build/C/man2/open.2:283
+#: build/C/man2/open.2:327
msgid "00002 others have write permission"
msgstr "00002 他人に書き込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:283
+#: build/C/man2/open.2:327
#, no-wrap
msgid "B<S_IXOTH>"
msgstr "B<S_IXOTH>"
#. type: Plain text
-#: build/C/man2/open.2:286
+#: build/C/man2/open.2:330
msgid "00001 others have execute permission"
msgstr "00001 他人に実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:287
+#: build/C/man2/open.2:331
#, no-wrap
-msgid "B<O_DIRECT> (Since Linux 2.4.10)"
+msgid "B<O_DIRECT> (since Linux 2.4.10)"
msgstr "B<O_DIRECT> (Linux 2.4.10 以降)"
#. type: Plain text
-#: build/C/man2/open.2:304
-#, fuzzy
-#| msgid ""
-#| "Try to minimize cache effects of the I/O to and from this file. In "
-#| "general this will degrade performance, but it is useful in special "
-#| "situations, such as when applications do their own caching. File I/O is "
-#| "done directly to/from user space buffers. The B<O_DIRECT> flag on its "
-#| "own makes an effort to transfer data synchronously, but does not give the "
-#| "guarantees of the B<O_SYNC> flag that data and necessary metadata are "
-#| "transferred. To guarantee synchronous I/O, B<O_SYNC> must be used in "
-#| "addition to B<O_DIRECT>. See NOTES below for further discussion."
+#: build/C/man2/open.2:348
msgid ""
"Try to minimize cache effects of the I/O to and from this file. In general "
"this will degrade performance, but it is useful in special situations, such "
"guarantee synchronous I/O, B<O_SYNC> must be used in addition to "
"B<O_DIRECT>. See NOTES below for further discussion."
msgstr ""
-"このファイルに対する I/O のキャッシュの効果を最小化しようとする。このフラグ"
-"を\n"
-"使うと、一般的に性能が低下する。 しかしアプリケーションが独自にキャッシング"
-"を\n"
+"このファイルに対する I/O のキャッシュの効果を最小化しようとする。このフラグを"
+"使うと、一般的に性能が低下する。 しかしアプリケーションが独自にキャッシングを"
"行っているような 特別な場合には役に立つ。 ファイルの I/O はユーザー空間バッ"
-"ファ\n"
-"に対して直接行われる。 B<O_DIRECT> フラグ自身はデータを同期で転送しようとは"
-"す\n"
-"るが、 B<O_SYNC> フラグのようにデータと必要なメタデータの転送が保証されるわ"
-"け\n"
-"ではない。同期 I/O を保証するためには、 B<O_DIRECT> に加えて B<O_SYNC> を使"
-"用\n"
-"しなければならない。下記の「注意」の節の議論も参照。"
+"ファに対して直接行われる。 B<O_DIRECT> フラグ自身はデータを同期で転送しようと"
+"はするが、 B<O_SYNC> フラグのようにデータと必要なメタデータの転送が保証される"
+"わけではない。同期 I/O を保証するためには、 B<O_DIRECT> に加えて B<O_SYNC> を"
+"使用しなければならない。下記の「注意」の節の議論も参照。"
#. type: Plain text
-#: build/C/man2/open.2:308
+#: build/C/man2/open.2:352
msgid ""
"A semantically similar (but deprecated) interface for block devices is "
"described in B<raw>(8)."
"れている (但し、このインタフェースは非推奨である)。"
#. type: TP
-#: build/C/man2/open.2:308
+#: build/C/man2/open.2:352
#, no-wrap
msgid "B<O_DIRECTORY>"
msgstr "B<O_DIRECTORY>"
#. [PATCH] open: O_DIRECTORY and O_CREAT together should fail
#. O_DIRECTORY | O_CREAT causes O_DIRECTORY to be ignored.
#. type: Plain text
-#: build/C/man2/open.2:322
+#: build/C/man2/open.2:364
+msgid ""
+"If I<pathname> is not a directory, cause the open to fail. This flag was "
+"added in kernel version 2.1.126, to avoid denial-of-service problems if "
+"B<opendir>(3) is called on a FIFO or tape device."
+msgstr "I<pathname> がディレクトリでなければオープンは失敗する。 このフラグは、 B<opendir>(3) が FIFO やテープデバイスに対してコールされた場合の サービス不能 (denial-of-service) 攻撃を避けるために カーネル 2.1.126 で追加された。"
+
+#. type: TP
+#: build/C/man2/open.2:364
+#, no-wrap
+msgid "B<O_DSYNC>"
+msgstr "B<O_DSYNC>"
+
+#. type: Plain text
+#: build/C/man2/open.2:370
+msgid ""
+"Write operations on the file will complete according to the requirements of "
+"synchronized I/O I<data> integrity completion."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:382
msgid ""
-"If I<pathname> is not a directory, cause the open to fail. This flag is "
-"Linux-specific, and was added in kernel version 2.1.126, to avoid denial-of-"
-"service problems if B<opendir>(3) is called on a FIFO or tape device, but "
-"should not be used outside of the implementation of B<opendir>(3)."
+"By the time B<write>(2) (and similar) return, the output data has been "
+"transferred to the underlying hardware, along with any file metadata that "
+"would be required to retrieve that data (i.e., as though each B<write>(2) "
+"was followed by a call to B<fdatasync>(2)). I<See NOTES below>."
msgstr ""
-"I<pathname> がディレクトリでなければオープンは失敗する。 このフラグは Linux "
-"特有であり、 B<opendir>(3) が FIFO やテープデバイスに対してコールされた場合"
-"の サービス不能 (denial-of-service) 攻撃を避けるために カーネル 2.1.126 で追"
-"加された。 しかしこれは B<opendir>(3) の実装以外では使用するべきではない。"
#. type: TP
-#: build/C/man2/open.2:322
+#: build/C/man2/open.2:382
#, no-wrap
msgid "B<O_EXCL>"
msgstr "B<O_EXCL>"
#. type: Plain text
-#: build/C/man2/open.2:332
+#: build/C/man2/open.2:392
msgid ""
"Ensure that this call creates the file: if this flag is specified in "
"conjunction with B<O_CREAT>, and I<pathname> already exists, then B<open>() "
#. POSIX.1-2001 explicitly requires this behavior.
#. type: Plain text
-#: build/C/man2/open.2:340
+#: build/C/man2/open.2:400
msgid ""
"When these two flags are specified, symbolic links are not followed: if "
"I<pathname> is a symbolic link, then B<open>() fails regardless of where "
"かに関わらず B<open>() は失敗する。"
#. type: Plain text
-#: build/C/man2/open.2:356
+#: build/C/man2/open.2:416
msgid ""
"In general, the behavior of B<O_EXCL> is undefined if it is used without "
"B<O_CREAT>. There is one exception: on Linux 2.6 and later, B<O_EXCL> can "
"マウントされているなど)、 B<open>() はエラー B<EBUSY> で失敗する。"
#. type: Plain text
-#: build/C/man2/open.2:378
+#: build/C/man2/open.2:438
msgid ""
-"On NFS, B<O_EXCL> is only supported when using NFSv3 or later on kernel 2.6 "
+"On NFS, B<O_EXCL> is supported only when using NFSv3 or later on kernel 2.6 "
"or later. In NFS environments where B<O_EXCL> support is not provided, "
"programs that rely on it for performing locking tasks will contain a race "
"condition. Portable programs that want to perform atomic file locking using "
"a lockfile, and need to avoid reliance on NFS support for B<O_EXCL>, can "
-"create a unique file on the same file system (e.g., incorporating hostname "
+"create a unique file on the same filesystem (e.g., incorporating hostname "
"and PID), and use B<link>(2) to make a link to the lockfile. If B<link>"
"(2) returns 0, the lock is successful. Otherwise, use B<stat>(2) on the "
"unique file to check if its link count has increased to 2, in which case the "
"じくロックに成功しているということである。"
#. type: TP
-#: build/C/man2/open.2:378
+#: build/C/man2/open.2:438
#, no-wrap
msgid "B<O_LARGEFILE>"
msgstr "B<O_LARGEFILE>"
#. type: Plain text
-#: build/C/man2/open.2:400
+#: build/C/man2/open.2:460
msgid ""
"(LFS) Allow files whose sizes cannot be represented in an I<off_t> (but can "
"be represented in an I<off64_t>) to be opened. The B<_LARGEFILE64_SOURCE> "
"セットする方が望ましい方法である (B<feature_test_macros>(7) を参照)。"
#. type: TP
-#: build/C/man2/open.2:400
+#: build/C/man2/open.2:460
#, no-wrap
-msgid "B<O_NOATIME> (Since Linux 2.6.8)"
+msgid "B<O_NOATIME> (since Linux 2.6.8)"
msgstr "B<O_NOATIME> (Linux 2.6.8 以降)"
#. The O_NOATIME flag also affects the treatment of st_atime
#. by mmap() and readdir(2), MTK, Dec 04.
#. type: Plain text
-#: build/C/man2/open.2:413
-#, fuzzy
-#| msgid ""
-#| "Do not update the file last access time (st_atime in the inode) when the "
-#| "file is B<read>(2). This flag is intended for use by indexing or backup "
-#| "programs, where its use can significantly reduce the amount of disk "
-#| "activity. This flag may not be effective on all file systems. One "
-#| "example is NFS, where the server maintains the access time."
+#: build/C/man2/open.2:473
msgid ""
"Do not update the file last access time (I<st_atime> in the inode) when the "
"file is B<read>(2). This flag is intended for use by indexing or backup "
"programs, where its use can significantly reduce the amount of disk "
-"activity. This flag may not be effective on all file systems. One example "
+"activity. This flag may not be effective on all filesystems. One example "
"is NFS, where the server maintains the access time."
msgstr ""
"ファイルに対して B<read>(2) が実行されたときに、最終アクセス時刻 (inode の "
-"st_atime) を更新しない。 このフラグはインデックス作成やバックアッププログラム"
-"ã\81§ä½¿ã\81\86ã\81\93ã\81¨ã\82\92æ\84\8få\9b³ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\92使ã\81\86ã\81¨ã\83\87ã\82£ã\82¹ã\82¯ã\81«å¯¾ã\81\99ã\82\8bæ\93\8dä½\9cã\82\92大å¹\85ã\81«æ¸\9bã\82\89ã\81\99ã\81\93ã\81¨"
-"ができる。 このフラグは全てのファイルシステムに対して有効であるわけではな"
+"I<st_atime>) を更新しない。 このフラグはインデックス作成やバックアッププログ"
+"ã\83©ã\83 ã\81§ä½¿ã\81\86ã\81\93ã\81¨ã\82\92æ\84\8få\9b³ã\81\97ã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\82\8cã\82\92使ã\81\86ã\81¨ã\83\87ã\82£ã\82¹ã\82¯ã\81«å¯¾ã\81\99ã\82\8bæ\93\8dä½\9cã\82\92大å¹\85ã\81«æ¸\9bã\82\89ã\81\99"
+"ã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82 ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯å\85¨ã\81¦ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81«å¯¾ã\81\97ã\81¦æ\9c\89å\8a¹ã\81§ã\81\82ã\82\8bã\82\8fã\81\91ã\81§ã\81¯ã\81ª"
"い。 その一例が NFS であり、サーバがアクセス時刻を管理している。"
#. type: TP
-#: build/C/man2/open.2:413
+#: build/C/man2/open.2:473
#, no-wrap
msgid "B<O_NOCTTY>"
msgstr "B<O_NOCTTY>"
#. type: Plain text
-#: build/C/man2/open.2:421
-#, fuzzy
-#| msgid ""
-#| "If I<pathname> refers to a terminal device\\(emsee B<tty>(4)\\(em it will "
-#| "not become the process's controlling terminal even if the process does "
-#| "not have one."
+#: build/C/man2/open.2:481
msgid ""
"If I<pathname> refers to a terminal device\\(emsee B<tty>(4)\\(emit will not "
"become the process's controlling terminal even if the process does not have "
"は制御端末にはならない。"
#. type: TP
-#: build/C/man2/open.2:421
+#: build/C/man2/open.2:481
#, no-wrap
msgid "B<O_NOFOLLOW>"
msgstr "B<O_NOFOLLOW>"
#. definition of this flag; \fIkernels before 2.1.126 will ignore it if
#. used\fP.
#. type: Plain text
-#: build/C/man2/open.2:430
+#: build/C/man2/open.2:493
msgid ""
"If I<pathname> is a symbolic link, then the open fails. This is a FreeBSD "
"extension, which was added to Linux in version 2.1.126. Symbolic links in "
-"earlier components of the pathname will still be followed."
+"earlier components of the pathname will still be followed. See also "
+"B<O_PATH> below."
msgstr ""
"I<pathname> がシンボリックリンクだった場合、オープンは失敗する。 これは "
-"FreeBSD の拡張で、Linux には 2.1.126 より追加された。 pathname の前のコンポー"
-"ネント (earlier component; 訳註: 最後のディレクトリセパレータより前の部分) "
-"が シンボリックリンクである場合には、それが指す先が参照される。"
+"FreeBSD の拡張で、Linux には バージョン 2.1.126 で追加された。 このフラグが指"
+"定された場合でも I<pathname> の前の方の要素 (最後のディレクトリセパレータより"
+"前の部分) にあるシンボリックリンクについてはリンクが辿られる。 下記の "
+"B<O_PATH> も参照のこと。"
#. type: TP
-#: build/C/man2/open.2:430
+#: build/C/man2/open.2:493
#, no-wrap
msgid "B<O_NONBLOCK> or B<O_NDELAY>"
msgstr "B<O_NONBLOCK> または B<O_NDELAY>"
#. type: Plain text
-#: build/C/man2/open.2:443
+#: build/C/man2/open.2:506
msgid ""
"When possible, the file is opened in nonblocking mode. Neither the B<open>"
"() nor any subsequent operations on the file descriptor which is returned "
"議論は、 B<fcntl>(2) を参照すること。"
#. type: TP
-#: build/C/man2/open.2:443
+#: build/C/man2/open.2:506
+#, no-wrap
+msgid "B<O_PATH> (since Linux 2.6.39)"
+msgstr "B<O_PATH> (Linux 2.6.39 以降)"
+
+#
+#. commit 1abf0c718f15a56a0a435588d1b104c7a37dc9bd
+#. commit 326be7b484843988afe57566b627fb7a70beac56
+#. commit 65cfc6722361570bfe255698d9cd4dccaf47570d
+#. http://thread.gmane.org/gmane.linux.man/2790/focus=3496
+#. Subject: Re: [PATCH] open(2): document O_PATH
+#. Newsgroups: gmane.linux.man, gmane.linux.kernel
+#. type: Plain text
+#: build/C/man2/open.2:528
+msgid ""
+"Obtain a file descriptor that can be used for two purposes: to indicate a "
+"location in the filesystem tree and to perform operations that act purely at "
+"the file descriptor level. The file itself is not opened, and other file "
+"operations (e.g., B<read>(2), B<write>(2), B<fchmod>(2), B<fchown>(2), "
+"B<fgetxattr>(2), B<mmap>(2)) fail with the error B<EBADF>."
+msgstr ""
+"このフラグを指定して取得したファイルディスクリプタは、 ファイルシステムツリー"
+"内での場所を示すため、 純粋にファイルディスクリプタレベルでの作用する操作を実"
+"行するため、 の二つの目的で使用することができる。 ファイル自身はオープンされ"
+"ず、 他のファイル操作 (例えば B<read>(2), B<write>(2), B<fchmod>(2), "
+"B<fchown>(2), B<fgetxattr>(2), B<mmap>(2)) はエラー B<EBADF> で失敗する。"
+
+#. type: Plain text
+#: build/C/man2/open.2:532
+msgid ""
+"The following operations I<can> be performed on the resulting file "
+"descriptor:"
+msgstr ""
+"取得したファイルディスクリプタに対して以下の操作を行うことが「できる」。"
+
+#. commit 332a2e1244bd08b9e3ecd378028513396a004a24
+#. fstat(): commit 55815f70147dcfa3ead5738fd56d3574e2e3c1c2
+#. type: Plain text
+#: build/C/man2/open.2:541
+msgid ""
+"B<close>(2); B<fchdir>(2) (since Linux 3.5); B<fstat>(2) (since Linux 3.6)."
+msgstr ""
+"B<close>(2); B<fchdir>(2) (Linux 3.5 以降); B<fstat>(2) (Linux 3.6 以降)"
+
+#. type: Plain text
+#: build/C/man2/open.2:547
+msgid ""
+"Duplicating the file descriptor (B<dup>(2), B<fcntl>(2) B<F_DUPFD>, etc.)."
+msgstr "ファイルディスクリプタの複製 (B<dup>(2), B<fcntl>(2) B<F_DUPFD> など)"
+
+#. type: Plain text
+#: build/C/man2/open.2:553
+msgid ""
+"Getting and setting file descriptor flags (B<fcntl>(2) B<F_GETFD> and "
+"B<F_SETFD>)."
+msgstr ""
+"ファイルディスクリプタフラグの取得と設定 (B<fcntl>(2) の B<F_GETFD> と "
+"B<F_SETFD>)"
+
+#. type: Plain text
+#: build/C/man2/open.2:559
+msgid ""
+"Retrieving open file status flags using the B<fcntl>(2) B<F_GETFL> "
+"operation: the returned flags will include the bit B<O_PATH>."
+msgstr ""
+"B<fcntl>(2) の B<F_GETFL> 操作を使ったオープンされたファイルの状態フラグの取"
+"得。 返されるフラグには B<O_PATH> ビットが含まれる。"
+
+#. type: Plain text
+#: build/C/man2/open.2:566
+msgid ""
+"Passing the file descriptor as the I<dirfd> argument of B<openat>(2) and "
+"the other \"*at()\" system calls."
+msgstr ""
+"B<openat>(2) や他の \"*at()\" 系のシステムコールの I<dirfd> 引数としてその"
+"ファイルディスクリプタを渡す。"
+
+#. type: Plain text
+#: build/C/man2/open.2:572
+msgid ""
+"Passing the file descriptor to another process via a UNIX domain socket (see "
+"B<SCM_RIGHTS> in B<unix>(7))."
+msgstr ""
+"そのファイルディスクリプタを別のプロセスに UNIX ドメインソケット経由で渡す。 "
+"(B<unix>(7) の B<SCM_RIGHTS> を参照)"
+
+#. type: Plain text
+#: build/C/man2/open.2:583
+msgid ""
+"When B<O_PATH> is specified in I<flags>, flag bits other than B<O_DIRECTORY> "
+"and B<O_NOFOLLOW> are ignored."
+msgstr ""
+"I<flags> に B<O_PATH> が指定された場合、 B<O_DIRECTORY> と B<O_NOFOLLOW> 以外"
+"のフラグビットは無視される。"
+
+#. type: Plain text
+#: build/C/man2/open.2:599
+msgid ""
+"If I<pathname> is a symbolic link and the B<O_NOFOLLOW> flag is also "
+"specified, then the call returns a file descriptor referring to the symbolic "
+"link. This file descriptor can be used as the I<dirfd> argument in calls to "
+"B<fchownat>(2), B<fstatat>(2), B<linkat>(2), and B<readlinkat>(2) with an "
+"empty pathname to have the calls operate on the symbolic link."
+msgstr ""
+"I<pathname> がシンボリックリンクで B<O_NOFOLLOW> フラグも合わせて指定された場"
+"合、 この呼び出しではシンボリックリンクを参照するファイルディスクリプタを返"
+"す。 このファイルディスクリプタは、 空のパス名を指定した B<fchownat>(2), "
+"B<fstatat>(2), B<linkat>(2), B<readlinkat>(2) の呼び出しで I<dirfd> 引数とし"
+"て使うことで、 そのシンボリックリンクに対して操作を行うことができる。"
+
+#. type: TP
+#: build/C/man2/open.2:599
#, no-wrap
msgid "B<O_SYNC>"
msgstr "B<O_SYNC>"
#. type: Plain text
-#: build/C/man2/open.2:451
+#: build/C/man2/open.2:611
+msgid ""
+"Write operations on the file will complete according to the requirements of "
+"synchronized I/O I<file> integrity completion (by contrast with contrast "
+"with the synchronized I/O I<data> integrity completion provided by "
+"B<O_DSYNC>.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:622
+msgid ""
+"By the time B<write>(2) (and similar) return, the output data and "
+"associated file metadata have been transferred to the underlying hardware (i."
+"e., as though each B<write>(2) was followed by a call to B<fsync>(2)). "
+"I<See NOTES below>."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/open.2:622
+#, no-wrap
+msgid "B<O_TMPFILE> (since Linux 3.11)"
+msgstr "B<O_TMPFILE> (Linux 3.11 以降)"
+
+#. commit 60545d0d4610b02e55f65d141c95b18ccf855b6e
+#. commit f4e0c30c191f87851c4a53454abb55ee276f4a7e
+#. commit bb458c644a59dbba3a1fe59b27106c5e68e1c4bd
+#. type: Plain text
+#: build/C/man2/open.2:634
+msgid ""
+"Create an unnamed temporary file. The I<pathname> argument specifies a "
+"directory; an unnamed inode will be created in that directory's filesystem. "
+"Anything written to the resulting file will be lost when the last file "
+"descriptor is closed, unless the file is given a name."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:648
+msgid ""
+"B<O_TMPFILE> must be specified with one of B<O_RDWR> or B<O_WRONLY> and, "
+"optionally, B<O_EXCL>. If B<O_EXCL> is not specified, then B<linkat>(2) "
+"can be used to link the temporary file into the filesystem, making it "
+"permanent, using code like the following:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:654
+#, no-wrap
+msgid ""
+"char path[PATH_MAX];\n"
+"fd = open(\"/path/to/dir\", O_TMPFILE | O_RDWR,\n"
+" S_IRUSR | S_IWUSR);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:656
+#, no-wrap
+msgid "/* File I/O on 'fd'... */\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:660
+#, no-wrap
+msgid ""
+"snprintf(path, PATH_MAX, \"/proc/self/fd/%d\", fd);\n"
+"linkat(AT_FDCWD, path, AT_FDCWD, \"/path/for/file\",\n"
+" AT_SYMLINK_FOLLOW);\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:669
+msgid ""
+"In this case, the B<open>() I<mode> argument determines the file permission "
+"mode, as with B<O_CREAT>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:681
+msgid ""
+"Specifying B<O_EXCL> in conjunction with B<O_TMPFILE> prevents a temporary "
+"file from being linked into the filesystem in the above manner. (Note that "
+"the meaning of B<O_EXCL> in this case is different from the meaning of "
+"B<O_EXCL> otherwise.)"
+msgstr ""
+
+#. Inspired by http://lwn.net/Articles/559147/
+#. type: Plain text
+#: build/C/man2/open.2:686
+msgid "There are two main use cases for B<O_TMPFILE>:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:695
+msgid ""
+"Improved B<tmpfile>(3) functionality: race-free creation of temporary files "
+"that (1) are automatically deleted when closed; (2) can never be reached via "
+"any pathname; (3) are not subject to symlink attacks; and (4) do not require "
+"the caller to devise unique names."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:706
+msgid ""
+"Creating a file that is initially invisible, which is then populated with "
+"data and adjusted to have appropriate filesystem attributes (B<chown>(2), "
+"B<chmod>(2), B<fsetxattr>(2), etc.) before being atomically linked into the "
+"filesystem in a fully formed state (using B<linkat>(2) as described above)."
+msgstr ""
+
+#. commit 99b6436bc29e4f10e4388c27a3e4810191cc4788
+#. commit ab29743117f9f4c22ac44c13c1647fb24fb2bafe
+#. type: Plain text
+#: build/C/man2/open.2:717
msgid ""
-"The file is opened for synchronous I/O. Any B<write>(2)s on the resulting "
-"file descriptor will block the calling process until the data has been "
-"physically written to the underlying hardware. I<But see NOTES below>."
+"B<O_TMPFILE> requires support by the underlying filesystem; only a subset of "
+"Linux filesystems provide that support. In the initial implementation, "
+"support was provided in the ex2, ext3, ext4, UDF, Minix, and shmem "
+"filesystems. XFS support was added in Linux 3.15."
msgstr ""
-"ファイルは同期 (synchronous) I/O モードでオープンされる。 B<open>() が返した"
-"ファイルディスクリプタに対して B<write>(2) を行うと、必ず呼び出したプロセス"
-"をブロックし、 該当ハードウェアに物理的に書き込まれるまで返らない。 I<以下の"
-"「注意」の章も参照。>"
#. type: TP
-#: build/C/man2/open.2:451
+#: build/C/man2/open.2:717
#, no-wrap
msgid "B<O_TRUNC>"
msgstr "B<O_TRUNC>"
#. type: Plain text
-#: build/C/man2/open.2:465
+#: build/C/man2/open.2:731
msgid ""
-"If the file already exists and is a regular file and the open mode allows "
+"If the file already exists and is a regular file and the access mode allows "
"writing (i.e., is B<O_RDWR> or B<O_WRONLY>) it will be truncated to length "
"0. If the file is a FIFO or terminal device file, the B<O_TRUNC> flag is "
"ignored. Otherwise the effect of B<O_TRUNC> is unspecified."
msgstr ""
-"ファイルが既に存在し、通常ファイルであり、 書き込み可モードでオープンされてい"
-"ã\82\8b (ã\81¤ã\81¾ã\82\8aã\80\81 B<O_RDWR>ã\81¾ã\81\9fã\81¯B<O_WRONLY> の) 場合、長さ 0 に切り詰め "
+"ファイルが既に存在し、通常ファイルであり、 アクセスモードで書き込みが許可され"
+"ã\81¦ã\81\84ã\82\8b (ã\81¤ã\81¾ã\82\8aã\80\81 B<O_RDWR> ã\81¾ã\81\9fã\81¯ B<O_WRONLY> の) 場合、長さ 0 に切り詰め "
"(truncate) られる。 ファイルが FIFO または端末デバイスファイルの場合、 "
"B<O_TRUNC> フラグは無視される。 それ以外の場合、 B<O_TRUNC> の効果は未定義で"
"ある。"
-#. type: Plain text
-#: build/C/man2/open.2:469
-msgid ""
-"Some of these optional flags can be altered using B<fcntl>(2) after the "
-"file has been opened."
-msgstr ""
-"これらの選択フラグのいくつかはファイルをオープンした後でも B<fcntl>(2) を使"
-"用して変更することができる。"
+#. type: SS
+#: build/C/man2/open.2:731
+#, no-wrap
+msgid "creat()"
+msgstr "creat()"
#. type: Plain text
-#: build/C/man2/open.2:477
+#: build/C/man2/open.2:739
msgid ""
"B<creat>() is equivalent to B<open>() with I<flags> equal to B<O_CREAT|"
"O_WRONLY|O_TRUNC>."
"B<creat>() は I<flags> に B<O_CREAT|O_WRONLY|O_TRUNC> を指定して B<open>() "
"を行うのと等価である。"
+#. type: SS
+#: build/C/man2/open.2:739
+#, no-wrap
+msgid "openat()"
+msgstr "openat()"
+
+#. type: Plain text
+#: build/C/man2/open.2:745
+msgid ""
+"The B<openat>() system call operates in exactly the same way as B<open>(), "
+"except for the differences described here."
+msgstr ""
+"B<openat>() システムコールは B<open>() と全く同様に動作するが、以下で説明する"
+"点が異なる。"
+
+#. type: Plain text
+#: build/C/man2/open.2:755
+msgid ""
+"If the pathname given in I<pathname> is relative, then it is interpreted "
+"relative to the directory relative to by the file descriptor I<dirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<open>() for a relative pathname)."
+msgstr ""
+"I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
+"リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される (B<open>"
+"() に相対パス名を渡した場合のように、呼び出したプロセスのカレントワーキング"
+"ディレクトリに対する相対パスではない)。"
+
+#. type: Plain text
+#: build/C/man2/open.2:767
+msgid ""
+"If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
+"then I<pathname> is interpreted relative to the current working directory of "
+"the calling process (like B<open>())."
+msgstr ""
+"I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
+"の場合、 (B<open>() と同様に) I<pathname> は呼び出したプロセスのカレントワー"
+"キングディレクトリに対する相対パスと解釈される。"
+
+#. type: Plain text
+#: build/C/man2/open.2:773 build/C/man2/readlink.2:134
+msgid "If I<pathname> is absolute, then I<dirfd> is ignored."
+msgstr ""
+"I<pathname> で指定されたパス名が絶対パスの場合、 I<dirfd> は無視される。"
+
+#. type: Plain text
+#: build/C/man2/open.2:782
+msgid ""
+"B<open>(), B<openat>(), and B<creat>() return the new file descriptor, or "
+"-1 if an error occurred (in which case, I<errno> is set appropriately)."
+msgstr ""
+"B<open>(), B<openat>(), B<creat>() は新しいファイルディスクリプタを返す。 エ"
+"ラーが発生した場合は -1 を返す (その場合は I<errno> が適切に設定される)。"
+
#. type: Plain text
-#: build/C/man2/open.2:485
+#: build/C/man2/open.2:788
msgid ""
-"B<open>() and B<creat>() return the new file descriptor, or -1 if an error "
-"occurred (in which case, I<errno> is set appropriately)."
+"B<open>(), B<openat>(), and B<creat>() can fail with the following errors:"
msgstr ""
-"B<open>() と B<creat>() は新しいファイルディスクリプタを返す。 エラーが発生"
-"した場合は -1 を返す (その場合は I<errno> が適切に設定される)。"
#. type: Plain text
-#: build/C/man2/open.2:495
+#: build/C/man2/open.2:797
msgid ""
"The requested access to the file is not allowed, or search permission is "
"denied for one of the directories in the path prefix of I<pathname>, or the "
"すること。)"
#. type: Plain text
-#: build/C/man2/open.2:501
+#: build/C/man2/open.2:803
msgid ""
"Where B<O_CREAT> is specified, the file does not exist, and the user's quota "
-"of disk blocks or inodes on the file system has been exhausted."
+"of disk blocks or inodes on the filesystem has been exhausted."
msgstr ""
+"B<O_CREAT> が指定された場合で、そのファイルが存在せず、ディスクブロックか "
+"inode がそのファイルシステムのユーザクォータに達していた。"
#. type: Plain text
-#: build/C/man2/open.2:507
+#: build/C/man2/open.2:809
msgid "I<pathname> already exists and B<O_CREAT> and B<O_EXCL> were used."
msgstr "I<pathname> は既に存在し、 B<O_CREAT> と B<O_EXCL> が使用された。"
#. type: Plain text
-#: build/C/man2/open.2:511 build/C/man2/rmdir.2:67 build/C/man2/unlink.2:84
+#: build/C/man2/open.2:813 build/C/man2/rmdir.2:67 build/C/man2/unlink.2:182
msgid "I<pathname> points outside your accessible address space."
msgstr "I<pathname> がアクセス可能なアドレス空間の外を指している。"
#. type: TP
-#: build/C/man2/open.2:511 build/C/man2/write.2:145
+#: build/C/man2/open.2:813 build/C/man2/write.2:145
#, no-wrap
msgid "B<EFBIG>"
msgstr "B<EFBIG>"
#. type: Plain text
-#: build/C/man2/open.2:515
+#: build/C/man2/open.2:817
msgid "See B<EOVERFLOW>."
msgstr "B<EOVERFLOW> 参照。"
#. type: TP
-#: build/C/man2/open.2:515 build/C/man2/read.2:122 build/C/man3/scanf.3:562
-#: build/C/man3/tmpfile.3:61 build/C/man2/write.2:150
+#: build/C/man2/open.2:817 build/C/man2/read.2:122 build/C/man3/scanf.3:561
+#: build/C/man3/tmpfile.3:63 build/C/man2/write.2:150
#, no-wrap
msgid "B<EINTR>"
msgstr "B<EINTR>"
#. type: Plain text
-#: build/C/man2/open.2:522
+#: build/C/man2/open.2:824
msgid ""
"While blocked waiting to complete an open of a slow device (e.g., a FIFO; "
"see B<fifo>(7)), the call was interrupted by a signal handler; see B<signal>"
"停止している間に システムコールがシグナルハンドラにより割り込まれた。 "
"B<signal>(7) 参照。"
+#. type: Plain text
+#: build/C/man2/open.2:832
+msgid ""
+"The filesystem does not support the B<O_DIRECT> flag. See B<NOTES> for more "
+"information."
+msgstr ""
+"ファイルシステムが B<O_DIRECT> フラグをサポートしていない。 詳細はB<注意>を参"
+"照。"
+
+#. In particular, __O_TMPFILE instead of O_TMPFILE
+#. type: Plain text
+#: build/C/man2/open.2:837
+msgid "Invalid value in I<flags>."
+msgstr "I<flags> に無効な値が入っている。"
+
+#. type: Plain text
+#: build/C/man2/open.2:847
+msgid ""
+"B<O_TMPFILE> was specified in I<flags>, but neither B<O_WRONLY> nor "
+"B<O_RDWR> was specified."
+msgstr ""
+"I<flags> に B<O_TMPFILE> が指定されたが、 B<O_WRONLY> も B<O_RDWR> も指定され"
+"ていなかった。"
+
#. type: TP
-#: build/C/man2/open.2:522 build/C/man2/read.2:158 build/C/man2/rename.2:143
-#: build/C/man2/unlink.2:87
+#: build/C/man2/open.2:847 build/C/man2/open.2:856 build/C/man2/read.2:158
+#: build/C/man2/rename.2:218 build/C/man2/unlink.2:185
+#: build/C/man2/unlink.2:256
#, no-wrap
msgid "B<EISDIR>"
msgstr "B<EISDIR>"
#. type: Plain text
-#: build/C/man2/open.2:531
+#: build/C/man2/open.2:856
msgid ""
"I<pathname> refers to a directory and the access requested involved writing "
"(that is, B<O_WRONLY> or B<O_RDWR> is set)."
"B<O_WRONLY> または B<O_RDWR> が設定されている)。"
#. type: Plain text
-#: build/C/man2/open.2:538
+#: build/C/man2/open.2:870
+msgid ""
+"I<pathname> refers to an existing directory, B<O_TMPFILE> and one of "
+"B<O_WRONLY> or B<O_RDWR> were specified in I<flags>, but this kernel version "
+"does not provide the B<O_TMPFILE> functionality."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:874 build/C/man2/rmdir.2:77
+msgid "Too many symbolic links were encountered in resolving I<pathname>."
+msgstr "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
+
+#. type: Plain text
+#: build/C/man2/open.2:883
msgid ""
-"Too many symbolic links were encountered in resolving I<pathname>, or "
-"B<O_NOFOLLOW> was specified but I<pathname> was a symbolic link."
+"I<pathname> was a symbolic link, and I<flags> specified B<O_NOFOLLOW> but "
+"not B<O_PATH>."
msgstr ""
-"I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。 または "
-"B<O_NOFOLLOW> が指定されており、 I<pathname> がシンボリックリンクだった。"
#. type: TP
-#: build/C/man2/open.2:538 build/C/man2/pipe.2:107 build/C/man3/tmpfile.3:64
+#: build/C/man2/open.2:883 build/C/man2/pipe.2:144 build/C/man3/tmpfile.3:66
#, no-wrap
msgid "B<EMFILE>"
msgstr "B<EMFILE>"
#. type: Plain text
-#: build/C/man2/open.2:541
+#: build/C/man2/open.2:886
msgid "The process already has the maximum number of files open."
msgstr "プロセスがオープンしているファイル数がすでに最大数に達している。"
#. type: Plain text
-#: build/C/man2/open.2:545 build/C/man2/rmdir.2:80 build/C/man2/unlink.2:99
+#: build/C/man2/open.2:890 build/C/man2/rmdir.2:80 build/C/man2/unlink.2:197
msgid "I<pathname> was too long."
msgstr "I<pathname> が長過ぎる。"
#. type: TP
-#: build/C/man2/open.2:545 build/C/man2/pipe.2:110 build/C/man3/tmpfile.3:67
+#: build/C/man2/open.2:890 build/C/man2/pipe.2:147 build/C/man3/tmpfile.3:69
#, no-wrap
msgid "B<ENFILE>"
msgstr "B<ENFILE>"
#. type: Plain text
-#: build/C/man2/open.2:548 build/C/man2/pipe.2:113
+#: build/C/man2/open.2:893 build/C/man2/pipe.2:150
msgid "The system limit on the total number of open files has been reached."
msgstr "オープンされているファイルの総数がシステムの制限に達している。"
#. type: TP
-#: build/C/man2/open.2:548
+#: build/C/man2/open.2:893
#, no-wrap
msgid "B<ENODEV>"
msgstr "B<ENODEV>"
#. type: Plain text
-#: build/C/man2/open.2:555
+#: build/C/man2/open.2:900
msgid ""
"I<pathname> refers to a device special file and no corresponding device "
"exists. (This is a Linux kernel bug; in this situation B<ENXIO> must be "
"るべきである)"
#. type: Plain text
-#: build/C/man2/open.2:562
+#: build/C/man2/open.2:907
msgid ""
"B<O_CREAT> is not set and the named file does not exist. Or, a directory "
"component in I<pathname> does not exist or is a dangling symbolic link."
"ンクである。"
#. type: Plain text
-#: build/C/man2/open.2:571
+#: build/C/man2/open.2:921
+msgid ""
+"I<pathname> refers to a nonexistent directory, B<O_TMPFILE> and one of "
+"B<O_WRONLY> or B<O_RDWR> were specified in I<flags>, but this kernel version "
+"does not provide the B<O_TMPFILE> functionality."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:930
msgid ""
"I<pathname> was to be created but the device containing I<pathname> has no "
"room for the new file."
"ファイルのための空き容量がない。"
#. type: Plain text
-#: build/C/man2/open.2:578
+#: build/C/man2/open.2:937
msgid ""
"A component used as a directory in I<pathname> is not, in fact, a directory, "
"or B<O_DIRECTORY> was specified and I<pathname> was not a directory."
"または B<O_DIRECTORY> が指定されており、 I<pathname> がディレクトリでない。"
#. type: Plain text
-#: build/C/man2/open.2:584
+#: build/C/man2/open.2:943
msgid ""
"B<O_NONBLOCK> | B<O_WRONLY> is set, the named file is a FIFO and no process "
"has the file open for reading. Or, the file is a device special file and no "
"ファイルを読み込みのためにオープンしているプロセスが存在しない。 または、ファ"
"イルがデバイススペシャルファイルで 対応するデバイスが存在しない。"
+#. type: TP
+#: build/C/man2/open.2:943 build/C/man2/open_by_handle_at.2:301
+#, no-wrap
+msgid "B<EOPNOTSUPP>"
+msgstr "B<EOPNOTSUPP>"
+
+#. type: Plain text
+#: build/C/man2/open.2:949
+msgid "The filesystem containing I<pathname> does not support B<O_TMPFILE>."
+msgstr ""
+"I<pathname> を含んでいるファイルシステムが B<O_TMPFILE> をサポートしていな"
+"い。"
+
#. See http://bugzilla.kernel.org/show_bug.cgi?id=7253
#. "Open of a large file on 32-bit fails with EFBIG, should be EOVERFLOW"
#. Reported 2006-10-03
#. type: Plain text
-#: build/C/man2/open.2:604
+#: build/C/man2/open.2:969
msgid ""
"I<pathname> refers to a regular file that is too large to be opened. The "
"usual scenario here is that an application compiled on a 32-bit platform "
"る。 2.6.24 より前のカーネルでは、Linux はこの場合にエラー B<EFBIG> を返して"
"いた。"
-#. Strictly speaking, it's the file system UID... (MTK)
+#. Strictly speaking, it's the filesystem UID... (MTK)
#. type: Plain text
-#: build/C/man2/open.2:612
+#: build/C/man2/open.2:977
msgid ""
"The B<O_NOATIME> flag was specified, but the effective user ID of the caller "
"did not match the owner of the file and the caller was not privileged "
"所有者と一致せず、かつ呼び出し元に特権 (B<CAP_FOWNER>) がない。"
#. type: Plain text
-#: build/C/man2/open.2:617
+#: build/C/man2/open.2:982
msgid ""
-"I<pathname> refers to a file on a read-only file system and write access was "
+"I<pathname> refers to a file on a read-only filesystem and write access was "
"requested."
msgstr ""
"I<pathname> が読み込み専用のファイルシステム上のファイルを参照しており、 書き"
"込みアクセスが要求された。"
#. type: TP
-#: build/C/man2/open.2:617
+#: build/C/man2/open.2:982
#, no-wrap
msgid "B<ETXTBSY>"
msgstr "B<ETXTBSY>"
#. type: Plain text
-#: build/C/man2/open.2:622
+#: build/C/man2/open.2:987
msgid ""
"I<pathname> refers to an executable image which is currently being executed "
"and write access was requested."
"I<pathname> が現在実行中の実行イメージを参照しており、書き込みが要求された。"
#. type: TP
-#: build/C/man2/open.2:622
+#: build/C/man2/open.2:987
#, no-wrap
msgid "B<EWOULDBLOCK>"
msgstr "B<EWOULDBLOCK>"
#. type: Plain text
-#: build/C/man2/open.2:629
+#: build/C/man2/open.2:994
msgid ""
"The B<O_NONBLOCK> flag was specified, and an incompatible lease was held on "
"the file (see B<fcntl>(2))."
"ていた (B<fcntl>(2) 参照)。"
#. type: Plain text
-#: build/C/man2/open.2:642
+#: build/C/man2/open.2:997
+msgid "The following additional errors can occur for B<openat>():"
+msgstr "B<openat>() では以下のエラーも発生する。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1001 build/C/man2/readlink.2:206
+#: build/C/man2/unlink.2:252
+msgid "I<dirfd> is not a valid file descriptor."
+msgstr "I<dirfd> が有効なファイルディスクリプタではない。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1007 build/C/man2/readlink.2:212
+#: build/C/man2/unlink.2:269
msgid ""
-"SVr4, 4.3BSD, POSIX.1-2001. The B<O_DIRECTORY>, B<O_NOATIME>, and "
-"B<O_NOFOLLOW> flags are Linux-specific, and one may need to define "
-"B<_GNU_SOURCE> (before including I<any> header files) to obtain their "
-"definitions."
+"I<pathname> is relative and I<dirfd> is a file descriptor referring to a "
+"file other than a directory."
msgstr ""
-"SVr4, 4.3BSD, POSIX.1-2001. フラグ B<O_DIRECTORY>, B<O_NOATIME>, "
-"B<O_NOFOLLOW> は Linux 特有のものであり、 これらのフラグの定義を得るために"
-"は、 (「どの」ヘッダファイルをインクルードするよりも前に) B<_GNU_SOURCE> を"
-"定義する必要があるかもしれない。"
+"I<pathname> が相対パスで、 I<dirfd> がディレクトリ以外のファイルを参照してい"
+"るファイルディスクリプタである。"
#. type: Plain text
-#: build/C/man2/open.2:647
+#: build/C/man2/open.2:1011
msgid ""
-"The B<O_CLOEXEC> flag is not specified in POSIX.1-2001, but is specified in "
-"POSIX.1-2008."
+"B<openat>() was added to Linux in kernel 2.6.16; library support was added "
+"to glibc in version 2.4."
+msgstr ""
+"B<openat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポー"
+"トはバージョン 2.4 で glibc に追加された。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1015
+msgid "B<open>(), B<creat>() SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
+msgstr "B<open>(), B<creat>() SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/open.2:1018
+msgid "B<openat>(): POSIX.1-2008."
+msgstr "B<openat>(): POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/open.2:1029
+msgid ""
+"The B<O_DIRECT>, B<O_NOATIME>, B<O_PATH>, and B<O_TMPFILE> flags are Linux-"
+"specific. One must define B<_GNU_SOURCE> to obtain their definitions."
msgstr ""
-"B<O_CLOEXEC> フラグは POSIX.1-2001 では規定されていないが、 POSIX.1-2008 で規"
-"定されている。"
+"フラグ B<O_DIRECT>, B<O_NOATIME>, B<O_PATH>, B<O_TMPFILE> は Linux 特有のもの"
+"である。 これらのフラグの定義を得るためには B<_GNU_SOURCE> を定義しなければな"
+"らない。"
#. type: Plain text
-#: build/C/man2/open.2:655
+#: build/C/man2/open.2:1044
msgid ""
-"B<O_DIRECT> is not specified in POSIX; one has to define B<_GNU_SOURCE> "
-"(before including I<any> header files) to get its definition."
+"The B<O_CLOEXEC>, B<O_DIRECTORY>, and B<O_NOFOLLOW> flags are not specified "
+"in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc 2.12, one "
+"can obtain their definitions by defining either B<_POSIX_C_SOURCE> with a "
+"value greater than or equal to 200809L or B<_XOPEN_SOURCE> with a value "
+"greater than or equal to 700. In glibc 2.11 and earlier, one obtains the "
+"definitions by defining B<_GNU_SOURCE>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1055
+msgid ""
+"As noted in B<feature_test_macros>(7), feature test macros such as "
+"B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, and B<_GNU_SOURCE> must be defined "
+"before including I<any> header files."
msgstr ""
-"B<O_DIRECT> は POSIX では規定されていない。 B<O_DIRECT> の定義を得るには "
-"(「どの」ヘッダファイルをインクルードするよりも前に) B<_GNU_SOURCE> を定義し"
-"なければならない。"
#. type: Plain text
-#: build/C/man2/open.2:663
+#: build/C/man2/open.2:1063
msgid ""
"Under Linux, the B<O_NONBLOCK> flag indicates that one wants to open but "
"does not necessarily have the intention to read or write. This is typically "
"ファイルディスクリプタを取得するために、 デバイスをオープンするときによく用い"
"られる。"
-#. See for example util-linux's disk-utils/setfdprm.c
-#. For some background on access mode 3, see
-#. http://thread.gmane.org/gmane.linux.kernel/653123
-#. "[RFC] correct flags to f_mode conversion in __dentry_open"
-#. LKML, 12 Mar 2008
-#. type: Plain text
-#: build/C/man2/open.2:692
-msgid ""
-"Unlike the other values that can be specified in I<flags>, the I<access "
-"mode> values B<O_RDONLY>, B<O_WRONLY>, and B<O_RDWR>, do not specify "
-"individual bits. Rather, they define the low order two bits of I<flags>, "
-"and are defined respectively as 0, 1, and 2. In other words, the "
-"combination B<O_RDONLY | O_WRONLY> is a logical error, and certainly does "
-"not have the same meaning as B<O_RDWR>. Linux reserves the special, "
-"nonstandard access mode 3 (binary 11) in I<flags> to mean: check for read "
-"and write permission on the file and return a descriptor that can't be used "
-"for reading or writing. This nonstandard access mode is used by some Linux "
-"drivers to return a descriptor that is only to be used for device-specific "
-"B<ioctl>(2) operations."
-msgstr ""
-"「アクセスモード」の値 B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> は、 I<flags> に指"
-"定できる他の値と違い、個々のビットを指定するものではなく、 これらの値は "
-"I<flags> の下位 2 ビットを定義する。 B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> はそ"
-"れぞれ 0, 1, 2 に定義されている。 言い換えると、 B<O_RDONLY | O_WRONLY> の組"
-"み合わせは論理的に間違いであり、確かに B<O_RDWR> と同じ意味ではない。 Linux "
-"では、特別な、非標準なアクセスモードとして 3 (バイナリでは 11) が 予約されて"
-"おり I<flags> に指定できる。 このアクセスモードを指定すると、ファイルの読み出"
-"し/書き込み許可をチェックし、 読み出しにも書き込みにも使用できないディスクリ"
-"プタを返す。 この非標準のアクセスモードはいくつかの Linux ドライバで使用され"
-"ており、 デバイス固有の B<ioctl>(2) 操作にのみ使用されるディスクリプタを返す"
-"ために使われている。"
-
#. Linux 2.0, 2.5: truncate
#. Solaris 5.7, 5.8: truncate
#. Irix 6.5: truncate
#. HP-UX 11.22: truncate
#. FreeBSD 4.7: truncate
#. type: Plain text
-#: build/C/man2/open.2:703
+#: build/C/man2/open.2:1075
msgid ""
"The (undefined) effect of B<O_RDONLY | O_TRUNC> varies among "
"implementations. On many systems the file is actually truncated."
"くのシステムではファイルは実際に切り詰められる。"
#. type: Plain text
-#: build/C/man2/open.2:707
-msgid ""
-"There are many infelicities in the protocol underlying NFS, affecting "
-"amongst others B<O_SYNC> and B<O_NDELAY>."
-msgstr ""
-"NFS を実現しているプロトコルには多くの不備があり、特に B<O_SYNC> と "
-"B<O_NDELAY> に影響する。"
-
-#. type: Plain text
-#: build/C/man2/open.2:729
-#, fuzzy
-#| msgid ""
-#| "POSIX provides for three different variants of synchronized I/O, "
-#| "corresponding to the flags B<O_SYNC>, B<O_DSYNC>, and B<O_RSYNC>. "
-#| "Currently (2.6.31), Linux only implements B<O_SYNC>, but glibc maps "
-#| "B<O_DSYNC> and B<O_RSYNC> to the same numerical value as B<O_SYNC>. Most "
-#| "Linux file systems don't actually implement the POSIX B<O_SYNC> "
-#| "semantics, which require all metadata updates of a write to be on disk on "
-#| "returning to userspace, but only the B<O_DSYNC> semantics, which require "
-#| "only actual file data and metadata necessary to retrieve it to be on disk "
-#| "by the time the system call returns."
-msgid ""
-"POSIX provides for three different variants of synchronized I/O, "
-"corresponding to the flags B<O_SYNC>, B<O_DSYNC>, and B<O_RSYNC>. Currently "
-"(2.6.31), Linux only implements B<O_SYNC>, but glibc maps B<O_DSYNC> and "
-"B<O_RSYNC> to the same numerical value as B<O_SYNC>. Most Linux file "
-"systems don't actually implement the POSIX B<O_SYNC> semantics, which "
-"require all metadata updates of a write to be on disk on returning to user "
-"space, but only the B<O_DSYNC> semantics, which require only actual file "
-"data and metadata necessary to retrieve it to be on disk by the time the "
-"system call returns."
-msgstr ""
-"POSIX では、3 種類の同期 I/O が提供されており、 B<O_SYNC>, B<O_DSYNC>, "
-"B<O_RSYNC> フラグがこれに対応するものである。 今のところ (カーネル 2.6.31)、 "
-"Linux では B<O_SYNC> だけが実装されているが、 glibc は B<O_DSYNC> と "
-"B<O_RSYNC> に B<O_SYNC> と同じ数値を割り当てている。 ほとんどの Linux のファ"
-"イルシステムは、実際には POSIX の B<O_SYNC> の動作ではなく B<O_DSYNC> の動作"
-"だけを実装している。 POSIX の B<O_SYNC> では、 B<open>() がユーザ空間に返る"
-"際に、書き込みに関する全てのメタデータの 更新がディスクに書き込まれている必要"
-"がある。 一方、 B<O_DSYNC> では、 B<open>() が返るまでに、実際のファイルの"
-"データとそのデータを取得するために 必要なメタデータだけがディスクに書き込まれ"
-"ていればよい。"
-
-#. type: Plain text
-#: build/C/man2/open.2:737
+#: build/C/man2/open.2:1083
msgid ""
"Note that B<open>() can open device special files, but B<creat>() cannot "
"create them; use B<mknod>(2) instead."
"用する。"
#. type: Plain text
-#: build/C/man2/open.2:750
-msgid ""
-"On NFS file systems with UID mapping enabled, B<open>() may return a file "
-"descriptor but, for example, B<read>(2) requests are denied with "
-"B<EACCES>. This is because the client performs B<open>() by checking the "
-"permissions, but UID mapping is performed by the server upon read and write "
-"requests."
-msgstr ""
-"UID マッピングを使用している NFS ファイルシステムでは、 B<open>() がファイル"
-"ディスクリプタを返した場合でも B<read>(2) が B<EACCES> で拒否される場合があ"
-"る。 これはクライアントがアクセス許可のチェックを行って B<open>() を実行する"
-"が、読み込みや書き込みの際には サーバーで UID マッピングが行われるためであ"
-"る。"
-
-#. type: Plain text
-#: build/C/man2/open.2:769
+#: build/C/man2/open.2:1104
msgid ""
"If the file is newly created, its I<st_atime>, I<st_ctime>, I<st_mtime> "
"fields (respectively, time of last access, time of last status change, and "
"I<st_mtime> フィールドが現在時刻に設定される。"
#. type: SS
-#: build/C/man2/open.2:769
+#: build/C/man2/open.2:1104
#, no-wrap
-msgid "O_DIRECT"
-msgstr "O_DIRECT"
+msgid "Synchronized I/O"
+msgstr ""
#. type: Plain text
-#: build/C/man2/open.2:786
-#, fuzzy
-#| msgid ""
-#| "The B<O_DIRECT> flag may impose alignment restrictions on the length and "
-#| "address of userspace buffers and the file offset of I/Os. In Linux "
-#| "alignment restrictions vary by file system and kernel version and might "
-#| "be absent entirely. However there is currently no file system-"
-#| "independent interface for an application to discover these restrictions "
-#| "for a given file or file system. Some file systems provide their own "
-#| "interfaces for doing so, for example the B<XFS_IOC_DIOINFO> operation in "
-#| "B<xfsctl>(3)."
+#: build/C/man2/open.2:1119
msgid ""
-"The B<O_DIRECT> flag may impose alignment restrictions on the length and "
-"address of user-space buffers and the file offset of I/Os. In Linux "
-"alignment restrictions vary by file system and kernel version and might be "
-"absent entirely. However there is currently no file system-independent "
-"interface for an application to discover these restrictions for a given file "
-"or file system. Some file systems provide their own interfaces for doing "
-"so, for example the B<XFS_IOC_DIOINFO> operation in B<xfsctl>(3)."
+"The POSIX.1-2008 \"synchronized I/O\" option specifies different variants of "
+"synchronized I/O, and specifies the B<open>() flags B<O_SYNC>, B<O_DSYNC>, "
+"and B<O_RSYNC> for controlling the behavior. Regardless of whether an "
+"implementation supports this option, it must at least support the use of "
+"B<O_SYNC> for regular files."
msgstr ""
-"B<O_DIRECT> フラグを使用する場合、ユーザ空間バッファの長さやアドレス、 I/O の"
-"ファイルオフセットに関してアラインメントの制限が課されることがある。 Linux で"
-"は、アラインメントの制限はファイルシステムやカーネルのバージョンに よって異な"
-"り、全く制限が存在しない場合もある。 しかしながら、現在のところ、指定された"
-"ファイルやファイルシステムに対して こうした制限があるかを見つけるための、アプ"
-"リケーション向けのインタフェースで ファイルシステム非依存のものは存在しな"
-"い。 いくつかのファイルシステムでは、制限を確認するための独自のインタフェース"
-"が 提供されている。例えば、 B<xfsctl>(3) の B<XFS_IOC_DIOINFO> 命令である。"
#. type: Plain text
-#: build/C/man2/open.2:791
+#: build/C/man2/open.2:1130
msgid ""
-"Under Linux 2.4, transfer sizes, and the alignment of the user buffer and "
-"the file offset must all be multiples of the logical block size of the file "
-"system. Under Linux 2.6, alignment to 512-byte boundaries suffices."
+"Linux implements B<O_SYNC> and B<O_DSYNC>, but not B<O_RSYNC>. (Somewhat "
+"incorrectly, glibc defines B<O_RSYNC> to have the same value as B<O_SYNC>.)"
msgstr ""
-"Linux 2.4 では、転送サイズ、 ユーザーバッファのアラインメント、ファイルオフ"
-"セットは、 ファイルシステムの論理ブロックサイズの倍数でなければならない。 "
-"Linux 2.6 では、512 バイトごとの境界に配置されていれば充分である。"
#. type: Plain text
-#: build/C/man2/open.2:825
-#, fuzzy
-#| msgid ""
-#| "B<O_DIRECT> I/Os should never be run concurrently with the B<fork>(2) "
-#| "system call, if the memory buffer is a private mapping (i.e., any mapping "
-#| "created with the B<mmap(2)> B<MAP_PRIVATE> flag; this includes memory "
-#| "allocated on the heap and statically allocated buffers). Any such I/Os, "
-#| "whether submitted via an asynchronous I/O interface or from another "
-#| "thread in the process, should be completed before B<fork>(2) is called. "
-#| "Failure to do so can result in data corruption and undefined behavior in "
-#| "parent and child processes. This restriction does not apply when the "
-#| "memory buffer for the B<O_DIRECT> I/Os was created using B<shmat>(2) or "
-#| "B<mmap>(2) with the B<MAP_SHARED> flag. Nor does this restriction apply "
-#| "when the memory buffer has been advised as B<MADV_DONTFORK> with B<madvise"
-#| "(2),> ensuring that it will not be available to the child after B<fork>"
-#| "(2)."
+#: build/C/man2/open.2:1148
msgid ""
-"B<O_DIRECT> I/Os should never be run concurrently with the B<fork>(2) "
-"system call, if the memory buffer is a private mapping (i.e., any mapping "
-"created with the B<mmap>(2) B<MAP_PRIVATE> flag; this includes memory "
-"allocated on the heap and statically allocated buffers). Any such I/Os, "
-"whether submitted via an asynchronous I/O interface or from another thread "
-"in the process, should be completed before B<fork>(2) is called. Failure "
-"to do so can result in data corruption and undefined behavior in parent and "
-"child processes. This restriction does not apply when the memory buffer for "
-"the B<O_DIRECT> I/Os was created using B<shmat>(2) or B<mmap>(2) with the "
-"B<MAP_SHARED> flag. Nor does this restriction apply when the memory buffer "
-"has been advised as B<MADV_DONTFORK> with B<madvise>(2), ensuring that it "
-"will not be available to the child after B<fork>(2)."
+"B<O_SYNC> provides synchronized I/O I<file> integrity completion, meaning "
+"write operations will flush data and all associated metadata to the "
+"underlying hardware. B<O_DSYNC> provides synchronized I/O I<data> integrity "
+"completion, meaning write operations will flush data to the underlying "
+"hardware, but will only flush metadata updates that are required to allow a "
+"subsequent read operation to complete successfully. Data integrity "
+"completion can reduce the number of disk operations that are required for "
+"applications that don't need the guarantees of file integrity completion."
msgstr ""
-"メモリバッファがプライベートマッピング (B<mmap>(2) の B<MAP_PRIVATE>\n"
-"フラグで作成されたマッピング) の場合には、B<O_DIRECT> I/O は\n"
-"B<fork>(2) システムコールと同時に決して実行すべきではない \n"
-"(プライベートマッピングには、ヒープ領域に割り当てられたメモリや静的に\n"
-"割り当てたバッファも含まれる)。非同期 I/O インターフェース (AIO) 経由\n"
-"やプロセス内の他のスレッドから発行された、このような I/O は、\n"
-"B<fork>(2) が呼び出される前に完了されるべきである。\n"
-"そうしなかった場合、データ破壊や、親プロセスや子プロセスでの予期しない\n"
-"動作が起こる可能性がある。\n"
-"B<O_DIRECT> I/O 用のメモリバッファが B<shmat>(2) やB<MAP_SHARED> フラグ\n"
+
+#. type: Plain text
+#: build/C/man2/open.2:1165
+msgid ""
+"To understand the difference between the the two types of completion, "
+"consider two pieces of file metadata: the file last modification timestamp "
+"(I<st_mtime>) and the file length. All write operations will update the "
+"last file modification timestamp, but only writes that add data to the end "
+"of the file will change the file length. The last modification timestamp is "
+"not needed to ensure that a read completes successfully, but the file length "
+"is. Thus, B<O_DSYNC> would only guarantee to flush updates to the file "
+"length metadata (whereas B<O_SYNC> would also always flush the last "
+"modification timestamp metadata)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1177
+msgid ""
+"Before Linux 2.6.33, Linux implemented only the B<O_SYNC> flag for B<open>"
+"(). However, when that flag was specified, most filesystems actually "
+"provided the equivalent of synchronized I/O I<data> integrity completion (i."
+"e., B<O_SYNC> was actually implemented as the equivalent of B<O_DSYNC>)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1196
+msgid ""
+"Since Linux 2.6.33, proper B<O_SYNC> support is provided. However, to "
+"ensure backward binary compatibility, B<O_DSYNC> was defined with the same "
+"value as the historical B<O_SYNC>, and B<O_SYNC> was defined as a new (two-"
+"bit) flag value that includes the B<O_DSYNC> flag value. This ensures that "
+"applications compiled against new headers get at least B<O_DSYNC> semantics "
+"on pre-2.6.33 kernels."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/open.2:1196
+#, no-wrap
+msgid "NFS"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1200
+msgid ""
+"There are many infelicities in the protocol underlying NFS, affecting "
+"amongst others B<O_SYNC> and B<O_NDELAY>."
+msgstr ""
+"NFS を実現しているプロトコルには多くの不備があり、特に B<O_SYNC> と "
+"B<O_NDELAY> に影響する。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1215
+msgid ""
+"On NFS filesystems with UID mapping enabled, B<open>() may return a file "
+"descriptor but, for example, B<read>(2) requests are denied with "
+"B<EACCES>. This is because the client performs B<open>() by checking the "
+"permissions, but UID mapping is performed by the server upon read and write "
+"requests."
+msgstr ""
+"UID マッピングを使用している NFS ファイルシステムでは、 B<open>() がファイル"
+"ディスクリプタを返した場合でも B<read>(2) が B<EACCES> で拒否される場合があ"
+"る。 これはクライアントがアクセス許可のチェックを行って B<open>() を実行する"
+"が、読み込みや書き込みの際には サーバーで UID マッピングが行われるためであ"
+"る。"
+
+#. type: SS
+#: build/C/man2/open.2:1215
+#, no-wrap
+msgid "File access mode"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1230
+msgid ""
+"Unlike the other values that can be specified in I<flags>, the I<access "
+"mode> values B<O_RDONLY>, B<O_WRONLY>, and B<O_RDWR> do not specify "
+"individual bits. Rather, they define the low order two bits of I<flags>, "
+"and are defined respectively as 0, 1, and 2. In other words, the "
+"combination B<O_RDONLY | O_WRONLY> is a logical error, and certainly does "
+"not have the same meaning as B<O_RDWR>."
+msgstr ""
+"「アクセスモード」の値 B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> は、 I<flags> に指"
+"定できる他の値と違い、個々のビットを指定するものではなく、 これらの値は "
+"I<flags> の下位 2 ビットを定義する。 B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> はそ"
+"れぞれ 0, 1, 2 に定義されている。 言い換えると、 B<O_RDONLY | O_WRONLY> の組"
+"み合わせは論理的に間違いであり、確かに B<O_RDWR> と同じ意味ではない。"
+
+#. See for example util-linux's disk-utils/setfdprm.c
+#. For some background on access mode 3, see
+#. http://thread.gmane.org/gmane.linux.kernel/653123
+#. "[RFC] correct flags to f_mode conversion in __dentry_open"
+#. LKML, 12 Mar 2008
+#. type: Plain text
+#: build/C/man2/open.2:1247
+msgid ""
+"Linux reserves the special, nonstandard access mode 3 (binary 11) in "
+"I<flags> to mean: check for read and write permission on the file and return "
+"a descriptor that can't be used for reading or writing. This nonstandard "
+"access mode is used by some Linux drivers to return a descriptor that is to "
+"be used only for device-specific B<ioctl>(2) operations."
+msgstr ""
+"Linux では、特別な、非標準なアクセスモードとして 3 (バイナリでは 11) が 予約"
+"されており I<flags> に指定できる。 このアクセスモードを指定すると、ファイルの"
+"読み出し/書き込み許可をチェックし、 読み出しにも書き込みにも使用できないディ"
+"スクリプタを返す。 この非標準のアクセスモードはいくつかの Linux ドライバで、"
+"デバイス固有の B<ioctl>(2) 操作にのみ使用されるディスクリプタを返すために使わ"
+"れている。"
+
+#. type: SS
+#: build/C/man2/open.2:1247
+#, no-wrap
+msgid "Rationale for openat() and other directory file descriptor APIs"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1275
+msgid ""
+"B<openat>() and the other system calls and library functions that take a "
+"directory file descriptor argument (i.e., B<faccessat>(2), B<fanotify_mark>"
+"(2), B<fchmodat>(2), B<fchownat>(2), B<fstatat>(2), B<futimesat>(2), "
+"B<linkat>(2), B<mkdirat>(2), B<mknodat>(2), B<name_to_handle_at>(2), "
+"B<readlinkat>(2), B<renameat>(2), B<symlinkat>(2), B<unlinkat>(2), "
+"B<utimensat>(2) B<mkfifoat>(3), and B<scandirat>(3)) are supported for two "
+"reasons. Here, the explanation is in terms of the B<openat>() call, but "
+"the rationale is analogous for the other interfaces."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1293
+msgid ""
+"First, B<openat>() allows an application to avoid race conditions that "
+"could occur when using B<open>() to open files in directories other than "
+"the current working directory. These race conditions result from the fact "
+"that some component of the directory prefix given to B<open>() could be "
+"changed in parallel with the call to B<open>(). Such races can be avoided "
+"by opening a file descriptor for the target directory, and then specifying "
+"that file descriptor as the I<dirfd> argument of B<openat>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1304
+msgid ""
+"Second, B<openat>() allows the implementation of a per-thread \"current "
+"working directory\", via file descriptor(s) maintained by the application. "
+"(This functionality can also be obtained by tricks based on the use of I</"
+"proc/self/fd/>dirfd, but less efficiently.)"
+msgstr ""
+
+#. type: SS
+#: build/C/man2/open.2:1304
+#, no-wrap
+msgid "O_DIRECT"
+msgstr "O_DIRECT"
+
+#. type: Plain text
+#: build/C/man2/open.2:1321
+msgid ""
+"The B<O_DIRECT> flag may impose alignment restrictions on the length and "
+"address of user-space buffers and the file offset of I/Os. In Linux "
+"alignment restrictions vary by filesystem and kernel version and might be "
+"absent entirely. However there is currently no filesystem-independent "
+"interface for an application to discover these restrictions for a given file "
+"or filesystem. Some filesystems provide their own interfaces for doing so, "
+"for example the B<XFS_IOC_DIOINFO> operation in B<xfsctl>(3)."
+msgstr ""
+"B<O_DIRECT> フラグを使用する場合、ユーザ空間バッファの長さやアドレス、 I/O の"
+"ファイルオフセットに関してアラインメントの制限が課されることがある。 Linux で"
+"は、アラインメントの制限はファイルシステムやカーネルのバージョンに よって異な"
+"り、全く制限が存在しない場合もある。 しかしながら、現在のところ、指定された"
+"ファイルやファイルシステムに対して こうした制限があるかを見つけるための、アプ"
+"リケーション向けのインタフェースで ファイルシステム非依存のものは存在しな"
+"い。 いくつかのファイルシステムでは、制限を確認するための独自のインタフェース"
+"が 提供されている。例えば、 B<xfsctl>(3) の B<XFS_IOC_DIOINFO> 命令である。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1326
+msgid ""
+"Under Linux 2.4, transfer sizes, and the alignment of the user buffer and "
+"the file offset must all be multiples of the logical block size of the "
+"filesystem. Under Linux 2.6, alignment to 512-byte boundaries suffices."
+msgstr ""
+"Linux 2.4 では、転送サイズ、 ユーザーバッファのアラインメント、ファイルオフ"
+"セットは、 ファイルシステムの論理ブロックサイズの倍数でなければならない。 "
+"Linux 2.6 では、512 バイトごとの境界に配置されていれば充分である。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1360
+msgid ""
+"B<O_DIRECT> I/Os should never be run concurrently with the B<fork>(2) "
+"system call, if the memory buffer is a private mapping (i.e., any mapping "
+"created with the B<mmap>(2) B<MAP_PRIVATE> flag; this includes memory "
+"allocated on the heap and statically allocated buffers). Any such I/Os, "
+"whether submitted via an asynchronous I/O interface or from another thread "
+"in the process, should be completed before B<fork>(2) is called. Failure "
+"to do so can result in data corruption and undefined behavior in parent and "
+"child processes. This restriction does not apply when the memory buffer for "
+"the B<O_DIRECT> I/Os was created using B<shmat>(2) or B<mmap>(2) with the "
+"B<MAP_SHARED> flag. Nor does this restriction apply when the memory buffer "
+"has been advised as B<MADV_DONTFORK> with B<madvise>(2), ensuring that it "
+"will not be available to the child after B<fork>(2)."
+msgstr ""
+"メモリバッファがプライベートマッピング (B<mmap>(2) の B<MAP_PRIVATE>\n"
+"フラグで作成されたマッピング) の場合には、B<O_DIRECT> I/O は\n"
+"B<fork>(2) システムコールと同時に決して実行すべきではない \n"
+"(プライベートマッピングには、ヒープ領域に割り当てられたメモリや静的に\n"
+"割り当てたバッファも含まれる)。非同期 I/O インターフェース (AIO) 経由\n"
+"やプロセス内の他のスレッドから発行された、このような I/O は、\n"
+"B<fork>(2) が呼び出される前に完了されるべきである。\n"
+"そうしなかった場合、データ破壊や、親プロセスや子プロセスでの予期しない\n"
+"動作が起こる可能性がある。\n"
+"B<O_DIRECT> I/O 用のメモリバッファが B<shmat>(2) やB<MAP_SHARED> フラグ\n"
"付きの B<mmap>(2) で作成された場合には、この制限はあてはまらない。\n"
"B<madvise>(2) でメモリバッファにアドバイス B<MADV_DONTFORK> が設定され\n"
"ている場合にも、この制限はあてはまらない(B<MADV_DONTFORK> はそのメモリ\n"
"のである)。"
#. type: Plain text
-#: build/C/man2/open.2:835
+#: build/C/man2/open.2:1370
+msgid ""
+"The B<O_DIRECT> flag was introduced in SGI IRIX, where it has alignment "
+"restrictions similar to those of Linux 2.4. IRIX has also a B<fcntl>(2) "
+"call to query appropriate alignments, and sizes. FreeBSD 4.x introduced a "
+"flag of the same name, but without alignment restrictions."
+msgstr ""
+"B<O_DIRECT> フラグは SGI IRIX で導入された。SGI IRIX にも Linux 2.4 と同様の "
+"(ユーザーバッファの) アラインメントの制限がある。 また、IRIX には適切な配置と"
+"サイズを取得するための B<fcntl>(2) コールがある。 FreeBSD 4.x も同じ名前のフ"
+"ラグを導入したが、アラインメントの制限はない。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1379
+msgid ""
+"B<O_DIRECT> support was added under Linux in kernel version 2.4.10. Older "
+"Linux kernels simply ignore this flag. Some filesystems may not implement "
+"the flag and B<open>() will fail with B<EINVAL> if it is used."
+msgstr ""
+"B<O_DIRECT> が Linux でサポートされたのは、カーネルバージョン 2.4.10 であ"
+"る。 古い Linux カーネルは、このフラグを単に無視する。 B<O_DIRECT> フラグをサ"
+"ポートしていないファイルシステムもあり、その場合は、 B<O_DIRECT> を使用する"
+"と B<open>() は B<EINVAL> で失敗する。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1390
+msgid ""
+"Applications should avoid mixing B<O_DIRECT> and normal I/O to the same "
+"file, and especially to overlapping byte regions in the same file. Even "
+"when the filesystem correctly handles the coherency issues in this "
+"situation, overall I/O throughput is likely to be slower than using either "
+"mode alone. Likewise, applications should avoid mixing B<mmap>(2) of files "
+"with direct I/O to the same files."
+msgstr ""
+"アプリケーションは、同じファイル、 特に同じファイルの重複するバイト領域に対し"
+"て、 B<O_DIRECT> と通常の I/O を混ぜて使うのは避けるべきである。 ファイルシス"
+"テムがこのような状況において一貫性の問題を正しく 扱うことができる場合であって"
+"も、全体の I/O スループットは どちらか一方を使用するときと比べて低速になるで"
+"あろう。 同様に、アプリケーションは、同じファイルに対して B<mmap>(2) と直接 "
+"I/O (B<O_DIRECT>) を混ぜて使うのも避けるべきである。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1412
+msgid ""
+"The behaviour of B<O_DIRECT> with NFS will differ from local filesystems. "
+"Older kernels, or kernels configured in certain ways, may not support this "
+"combination. The NFS protocol does not support passing the flag to the "
+"server, so B<O_DIRECT> I/O will bypass the page cache only on the client; "
+"the server may still cache the I/O. The client asks the server to make the "
+"I/O synchronous to preserve the synchronous semantics of B<O_DIRECT>. Some "
+"servers will perform poorly under these circumstances, especially if the I/O "
+"size is small. Some servers may also be configured to lie to clients about "
+"the I/O having reached stable storage; this will avoid the performance "
+"penalty at some risk to data integrity in the event of server power "
+"failure. The Linux NFS client places no alignment restrictions on "
+"B<O_DIRECT> I/O."
+msgstr ""
+"NFS で B<O_DIRECT> を使った場合の動作はローカルのファイルシステムの場合と違"
+"う。 古いカーネルや、ある種の設定でコンパイルされたカーネルは、 B<O_DIRECT> "
+"と NFS の組み合わせをサポートしていないかもしれない。 NFS プロトコル自体は"
+"サーバにフラグを渡す機能は持っていないので、 B<O_DIRECT> I/O はクライアント上"
+"のページキャッシュをバイパスするだけになり、 サーバは I/O をキャッシュしてい"
+"るかもしれない。 クライアントは、 B<O_DIRECT> の同期機構を保持するため、サー"
+"バに対して I/O を同期して行うように依頼する。 サーバによっては、こうした状況"
+"下、特に I/O サイズが小さい場合に 性能が大きく劣化する。 また、サーバによって"
+"は、I/O が安定したストレージにまで行われたと、 クライアントに対して嘘をつくも"
+"のもある。 これは、サーバの電源故障が起こった際にデータの完全性が保たれない "
+"危険は少しあるが、性能面での不利な条件を回避するために行われている。 Linux "
+"の NFS クライアントでは B<O_DIRECT> I/O でのアラインメントの制限はない。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1419
+msgid ""
+"In summary, B<O_DIRECT> is a potentially powerful tool that should be used "
+"with caution. It is recommended that applications treat use of B<O_DIRECT> "
+"as a performance option which is disabled by default."
+msgstr ""
+"まとめると、 B<O_DIRECT> は、注意して使うべきであるが、強力なツールとなる可能"
+"性を持っている。 アプリケーションは B<O_DIRECT> をデフォルトでは無効になって"
+"いる性能向上のためのオプションと 考えておくのがよいであろう。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1424
+msgid ""
+"\"The thing that has always disturbed me about O_DIRECT is that the whole "
+"interface is just stupid, and was probably designed by a deranged monkey on "
+"some serious mind-controlling substances.\"\\(emLinus"
+msgstr ""
+"「O_DIRECT でいつも困るのは、インタフェース全部が本当にお馬鹿な点だ。 たぶん"
+"危ないマインドコントロール剤で 頭がおかしくなったサルが設計したんじゃないか"
+"な」 \\(em Linus"
+
+#. FIXME . Check bugzilla report on open(O_ASYNC)
+#. See http://bugzilla.kernel.org/show_bug.cgi?id=5993
+#. type: Plain text
+#: build/C/man2/open.2:1436
+msgid ""
+"Currently, it is not possible to enable signal-driven I/O by specifying "
+"B<O_ASYNC> when calling B<open>(); use B<fcntl>(2) to enable this flag."
+msgstr ""
+"現在のところ、 B<open>() の呼び出し時に B<O_ASYNC> を指定してシグナル駆動 I/"
+"O を有効にすることはできない。 このフラグを有効にするには B<fcntl>(2) を使用"
+"すること。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1444
+msgid ""
+"One must check for two different error codes, B<EISDIR> and B<ENOENT>, when "
+"trying to determine whether the kernel supports B<O_TMPFILE> functionality."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1466
+msgid ""
+"B<chmod>(2), B<chown>(2), B<close>(2), B<dup>(2), B<fcntl>(2), B<link>(2), "
+"B<lseek>(2), B<mknod>(2), B<mmap>(2), B<mount>(2), B<open_by_name_at>(2), "
+"B<read>(2), B<socket>(2), B<stat>(2), B<umask>(2), B<unlink>(2), B<write>"
+"(2), B<fopen>(3), B<fifo>(7), B<path_resolution>(7), B<symlink>(7)"
+msgstr ""
+"B<chmod>(2), B<chown>(2), B<close>(2), B<dup>(2), B<fcntl>(2), B<link>(2), "
+"B<lseek>(2), B<mknod>(2), B<mmap>(2), B<mount>(2), B<open_by_name_at>(2), "
+"B<read>(2), B<socket>(2), B<stat>(2), B<umask>(2), B<unlink>(2), B<write>"
+"(2), B<fopen>(3), B<fifo>(7), B<path_resolution>(7), B<symlink>(7)"
+
+#. type: TH
+#: build/C/man2/open_by_handle_at.2:25
+#, no-wrap
+msgid "OPEN_BY_HANDLE_AT"
+msgstr "OPEN_BY_HANDLE_AT"
+
+#. type: TH
+#: build/C/man2/open_by_handle_at.2:25
+#, no-wrap
+msgid "2014-03-24"
+msgstr "2014-03-24"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:29
+msgid ""
+"name_to_handle_at, open_by_handle_at - obtain handle for a pathname and open "
+"file via a handle"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:35
+#, no-wrap
+msgid ""
+"B<#define _GNU_SOURCE>\n"
+"B<#include E<lt>sys/types.hE<gt>>\n"
+"B<#include E<lt>sys/stat.hE<gt>>\n"
+"B<#include E<lt>fcntl.hE<gt>>\n"
+msgstr ""
+"B<#define _GNU_SOURCE>\n"
+"B<#include E<lt>sys/types.hE<gt>>\n"
+"B<#include E<lt>sys/stat.hE<gt>>\n"
+"B<#include E<lt>fcntl.hE<gt>>\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:39
+#, no-wrap
+msgid ""
+"B<int name_to_handle_at(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
+"B< struct file_handle *>I<handle>B<,>\n"
+"B< int *>I<mount_id>B<, int >I<flags>B<);>\n"
+msgstr ""
+"B<int name_to_handle_at(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
+"B< struct file_handle *>I<handle>B<,>\n"
+"B< int *>I<mount_id>B<, int >I<flags>B<);>\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:42
+#, no-wrap
+msgid ""
+"B<int open_by_handle_at(int >I<mount_fd>B<, struct file_handle *>I<handle>B<,>\n"
+"B< int >I<flags>B<);>\n"
+msgstr ""
+"B<int open_by_handle_at(int >I<mount_fd>B<, struct file_handle *>I<handle>B<,>\n"
+"B< int >I<flags>B<);>\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:59
+msgid ""
+"The B<name_to_handle_at>() and B<open_by_handle_at>() system calls split "
+"the functionality of B<openat>(2) into two parts: B<name_to_handle_at>() "
+"returns an opaque handle that corresponds to a specified file; "
+"B<open_by_handle_at>() opens the file corresponding to a handle returned by "
+"a previous call to B<name_to_handle_at>() and returns an open file "
+"descriptor."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/open_by_handle_at.2:59
+#, no-wrap
+msgid "name_to_handle_at()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:71
+msgid ""
+"The B<name_to_handle_at>() system call returns a file handle and a mount ID "
+"corresponding to the file specified by the I<dirfd> and I<pathname> "
+"arguments. The file handle is returned via the argument I<handle>, which is "
+"a pointer to a structure of the following form:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:80
+#, no-wrap
+msgid ""
+"struct file_handle {\n"
+" unsigned int handle_bytes; /* Size of f_handle [in, out] */\n"
+" int handle_type; /* Handle type [out] */\n"
+" unsigned char f_handle[0]; /* File identifier (sized by\n"
+" caller) [out] */\n"
+"};\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:99
+msgid ""
+"It is the caller's responsibility to allocate the structure with a size "
+"large enough to hold the handle returned in I<f_handle>. Before the call, "
+"the I<handle_bytes> field should be initialized to contain the allocated "
+"size for I<f_handle>. (The constant B<MAX_HANDLE_SZ>, defined in "
+"I<E<lt>fcntl.hE<gt>>, specifies the maximum possible size for a file "
+"handle.) Upon successful return, the I<handle_bytes> field is updated to "
+"contain the number of bytes actually written to I<f_handle>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:112
+msgid ""
+"The caller can discover the required size for the I<file_handle> structure "
+"by making a call in which I<handle-E<gt>handle_bytes> is zero; in this case, "
+"the call fails with the error B<EOVERFLOW> and I<handle-E<gt>handle_bytes> "
+"is set to indicate the required size; the caller can then use this "
+"information to allocate a structure of the correct size (see EXAMPLE below)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:123
+msgid ""
+"Other than the use of the I<handle_bytes> field, the caller should treat the "
+"I<file_handle> structure as an opaque data type: the I<handle_type> and "
+"I<f_handle> fields are needed only by a subsequent call to "
+"B<open_by_handle_at>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:131
+msgid ""
+"The I<flags> argument is a bit mask constructed by ORing together zero or "
+"more of B<AT_EMPTY_PATH> and B<AT_SYMLINK_FOLLOW>, described below."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:138
+msgid ""
+"Together, the I<pathname> and I<dirfd> arguments identify the file for which "
+"a handle is to be obtained. There are four distinct cases:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:146
+msgid ""
+"If I<pathname> is a nonempty string containing an absolute pathname, then a "
+"handle is returned for the file referred to by that pathname. In this case, "
+"I<dirfd> is ignored."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:157
+msgid ""
+"If I<pathname> is a nonempty string containing a relative pathname and "
+"I<dirfd> has the special value B<AT_FDCWD>, then I<pathname> is interpreted "
+"relative to the current working directory of the caller, and a handle is "
+"returned for the file to which it refers."
+msgstr ""
+"I<pathname> が相対パスが入った空でない文字列で、 I<dirfd> が特別な値 "
+"B<AT_FDCWD> の場合、 I<pathname> は呼び出し元のカレントワーキングディレクトリ"
+"に対する相対パスと解釈され、 そのファイルを参照するハンドルが返される。"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:170
+msgid ""
+"If I<pathname> is a nonempty string containing a relative pathname and "
+"I<dirfd> is a file descriptor referring to a directory, then I<pathname> is "
+"interpreted relative to the directory referred to by I<dirfd>, and a handle "
+"is returned for the file to which it refers. (See B<openat>(3) for an "
+"explanation of why \"directory file descriptors\" are useful.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:184
+msgid ""
+"If I<pathname> is an empty string and I<flags> specifies the value "
+"B<AT_EMPTY_PATH>, then I<dirfd> can be an open file descriptor referring to "
+"any type of file, or B<AT_FDCWD>, meaning the current working directory, and "
+"a handle is returned for the file to which it refers."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:196
+msgid ""
+"The I<mount_id> argument returns an identifier for the filesystem mount that "
+"corresponds to I<pathname>. This corresponds to the first field in one of "
+"the records in I</proc/self/mountinfo>. Opening the pathname in the fifth "
+"field of that record yields a file descriptor for the mount point; that file "
+"descriptor can be used in a subsequent call to B<open_by_handle_at>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:209
+msgid ""
+"By default, B<name_to_handle_at>() does not dereference I<pathname> if it "
+"is a symbolic link, and thus returns a handle for the link itself. If "
+"B<AT_SYMLINK_FOLLOW> is specified in I<flags>, I<pathname> is dereferenced "
+"if it is a symbolic link (so that the call returns a handle for the file "
+"referred to by the link)."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/open_by_handle_at.2:209
+#, no-wrap
+msgid "open_by_handle_at()"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:216
+msgid ""
+"The B<open_by_handle_at>() system call opens the file referred to by "
+"I<handle>, a file handle returned by a previous call to B<name_to_handle_at>"
+"()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:226
+msgid ""
+"The I<mount_fd> argument is a file descriptor for any object (file, "
+"directory, etc.) in the mounted filesystem with respect to which I<handle> "
+"should be interpreted. The special value B<AT_FDCWD> can be specified, "
+"meaning the current working directory of the caller."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:239
+msgid ""
+"The I<flags> argument is as for B<open>(2). If I<handle> refers to a "
+"symbolic link, the caller must specify the B<O_PATH> flag, and the symbolic "
+"link is not dereferenced; the B<O_NOFOLLOW> flag, if specified, is ignored."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:245
+msgid ""
+"The caller must have the B<CAP_DAC_READ_SEARCH> capability to invoke "
+"B<open_by_handle_at>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:252
+msgid ""
+"On success, B<name_to_handle_at>() returns 0, and B<open_by_handle_at>() "
+"returns a nonnegative file descriptor."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:256
+msgid ""
+"In the event of an error, both system calls return -1 and set I<errno> to "
+"indicate the cause of the error."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:263
+msgid ""
+"B<name_to_handle_at>() and B<open_by_handle_at>() can fail for the same "
+"errors as B<openat>(2). In addition, they can fail with the errors noted "
+"below."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:266
+msgid "B<name_to_handle_at>() can fail with the following errors:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:273
+msgid ""
+"I<pathname>, I<mount_id>, or I<handle> points outside your accessible "
+"address space."
+msgstr ""
+"I<pathname>, I<mount_id>, I<handle> のどれかがアクセス可能なアドレス空間の外"
+"を指している。"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:277
+msgid "I<flags> includes an invalid bit value."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:282
+msgid "I<handle-E<gt>handle_bytes> is greater than B<MAX_HANDLE_SZ>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:289
+msgid ""
+"I<pathname> is an empty string, but B<AT_EMPTY_PATH> was not specified in "
+"I<flags>."
+msgstr ""
+"I<pathname> が空文字列だが、 I<flags> に B<AT_EMPTY_PATH> がされていなかっ"
+"た。"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:301
+msgid ""
+"The file descriptor supplied in I<dirfd> does not refer to a directory, and "
+"it is not the case that both I<flags> includes B<AT_EMPTY_PATH> and "
+"I<pathname> is an empty string."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:304
+msgid ""
+"The filesystem does not support decoding of a pathname to a file handle."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:314
+msgid ""
+"The I<handle-E<gt>handle_bytes> value passed into the call was too small. "
+"When this error occurs, I<handle-E<gt>handle_bytes> is updated to indicate "
+"the required size for the handle."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:317
+msgid "B<open_by_handle_at>() can fail with the following errors:"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:321
+msgid "I<mount_fd> is not an open file descriptor."
+msgstr "I<mount_fd> がオープンされたファイルディスクリプタでない。"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:325
+msgid "I<handle> points outside your accessible address space."
+msgstr "I<handle> がアクセス可能なアドレス空間の外を指している。"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:331
+msgid ""
+"I<handle-E<gt>handle_bytes> is greater than B<MAX_HANDLE_SZ> or is equal to "
+"zero."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:338
+msgid ""
+"I<handle> refers to a symbolic link, but B<O_PATH> was not specified in "
+"I<flags>."
+msgstr ""
+"I<handle> がシンボリックリンクを参照しているが、 I<flags> に B<O_PATH> がされ"
+"ていなかった。"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:343
+msgid "The caller does not have the B<CAP_DAC_READ_SEARCH> capability."
+msgstr "呼び出し元が B<CAP_DAC_READ_SEARCH> ケーパビリティを持っていない。"
+
+#. type: TP
+#: build/C/man2/open_by_handle_at.2:343
+#, no-wrap
+msgid "B<ESTALE>"
+msgstr "B<ESTALE>"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:349
+msgid ""
+"The specified I<handle> is not valid. This error will occur if, for "
+"example, the file has been deleted."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:352
+msgid ""
+"These system calls first appeared in Linux 2.6.39. Library support is "
+"provided in glibc since version 2.14."
+msgstr ""
+"これらのシステムコールは Linux 2.6.39 で初めて登場した。ライブラリによるサ"
+"ポートはバージョン 2.14 以降の glibc で提供されている。"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:354
+msgid "These system calls are nonstandard Linux extensions."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:359
+msgid ""
+"A file handle can be generated in one process using B<name_to_handle_at>() "
+"and later used in a different process that calls B<open_by_handle_at>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:365
+msgid ""
+"Some filesystem don't support the translation of pathnames to file handles, "
+"for example, I</proc>, I</sys>, and various network filesystems."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:372
+msgid ""
+"A file handle may become invalid (\"stale\") if a file is deleted, or for "
+"other filesystem-specific reasons. Invalid handles are notified by an "
+"B<ESTALE> error from B<open_by_handle_at>()."
+msgstr ""
+
+#. https://lwn.net/Articles/375888/
+#. "Open by handle" - Jonathan Corbet, 2010-02-23
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:382
+msgid ""
+"These system calls are designed for use by user-space file servers. For "
+"example, a user-space NFS server might generate a file handle and pass it to "
+"an NFS client. Later, when the client wants to open the file, it could pass "
+"the handle back to the server. This sort of functionality allows a user-"
+"space file server to operate in a stateless fashion with respect to the "
+"files it serves."
+msgstr ""
+
+#. commit bcda76524cd1fa32af748536f27f674a13e56700
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:404
+msgid ""
+"If I<pathname> refers to a symbolic link and I<flags> does not specify "
+"B<AT_SYMLINK_FOLLOW>, then B<name_to_handle_at>() returns a handle for the "
+"link (rather than the file to which it refers). The process receiving the "
+"handle can later perform operations on the symbolic link by converting the "
+"handle to a file descriptor using B<open_by_handle_at>() with the B<O_PATH> "
+"flag, and then passing the file descriptor as the I<dirfd> argument in "
+"system calls such as B<readlinkat>(2) and B<fchownat>(2)."
+msgstr ""
+
+#. type: SS
+#: build/C/man2/open_by_handle_at.2:404
+#, no-wrap
+msgid "Obtaining a persistent filesystem ID"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:418
+msgid ""
+"The mount IDs in I</proc/self/mountinfo> can be reused as filesystems are "
+"unmounted and mounted. Therefore, the mount ID returned by "
+"B<name_to_handle_at>() (in I<*mount_id>) should not be treated as a "
+"persistent identifier for the corresponding mounted filesystem. However, an "
+"application can use the information in the I<mountinfo> record that "
+"corresponds to the mount ID to derive a persistent identifier."
+msgstr ""
+
+#. e.g., http://stackoverflow.com/questions/6748429/using-libblkid-to-find-uuid-of-a-partition
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:434
+msgid ""
+"For example, one can use the device name in the fifth field of the "
+"I<mountinfo> record to search for the corresponding device UUID via the "
+"symbolic links in I</dev/disks/by-uuid>. (A more comfortable way of "
+"obtaining the UUID is to use the B<libblkid>(3) library.) That process can "
+"then be reversed, using the UUID to look up the device name, and then "
+"obtaining the corresponding mount point, in order to produce the I<mount_fd> "
+"argument used by B<open_by_handle_at>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:446
+msgid ""
+"The two programs below demonstrate the use of B<name_to_handle_at>() and "
+"B<open_by_handle_at>(). The first program (I<t_name_to_handle_at.c>) uses "
+"B<name_to_handle_at>() to obtain the file handle and mount ID for the file "
+"specified in its command-line argument; the handle and mount ID are written "
+"to standard output."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:466
+msgid ""
+"The second program (I<t_open_by_handle_at.c>) reads a mount ID and file "
+"handle from standard input. The program then employs B<open_by_handle_at>"
+"() to open the file using that handle. If an optional command-line "
+"argument is supplied, then the I<mount_fd> argument for B<open_by_handle_at>"
+"() is obtained by opening the directory named in that argument. Otherwise, "
+"I<mount_fd> is obtained by scanning I</proc/self/mountinfo> to find a record "
+"whose mount ID matches the mount ID read from standard input, and the mount "
+"directory specified in that record is opened. (These programs do not deal "
+"with the fact that mount IDs are not persistent.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:468
+msgid "The following shell session demonstrates the use of these two programs:"
+msgstr "以下のシェルセッションは、これら 2 つのプログラムの使用例である。"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:478
+#, no-wrap
+msgid ""
+"$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
+"$ B<./t_name_to_handle_at cecilia.txt E<gt> fh>\n"
+"$ B<./t_open_by_handle_at E<lt> fh>\n"
+"open_by_handle_at: Operation not permitted\n"
+"$ B<sudo ./t_open_by_handle_at E<lt> fh> # Need CAP_SYS_ADMIN\n"
+"Read 31 bytes\n"
+"$ B<rm cecilia.txt>\n"
+msgstr ""
+"$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
+"$ B<./t_name_to_handle_at cecilia.txt E<gt> fh>\n"
+"$ B<./t_open_by_handle_at E<lt> fh>\n"
+"open_by_handle_at: Operation not permitted\n"
+"$ B<sudo ./t_open_by_handle_at E<lt> fh> # Need CAP_SYS_ADMIN\n"
+"Read 31 bytes\n"
+"$ B<rm cecilia.txt>\n"
+
+#. Christoph Hellwig: That's why the file handles contain a generation
+#. counter that gets incremented in this case.
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:489
+msgid ""
+"Now we delete and (quickly) re-create the file so that it has the same "
+"content and (by chance) the same inode. Nevertheless, B<open_by_handle_at>"
+"() recognizes that the original file referred to by the file handle no "
+"longer exists."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:500
+#, no-wrap
+msgid ""
+"$ B<stat --printf=\"%i\\en\" cecilia.txt> # Display inode number\n"
+"4072121\n"
+"$ B<rm cecilia.txt>\n"
+"$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
+"$ B<stat --printf=\"%i\\en\" cecilia.txt> # Check inode number\n"
+"4072121\n"
+"$ B<sudo ./t_open_by_handle_at E<lt> fh>\n"
+"open_by_handle_at: Stale NFS file handle\n"
+msgstr ""
+"$ B<stat --printf=\"%i\\en\" cecilia.txt> # Display inode number\n"
+"4072121\n"
+"$ B<rm cecilia.txt>\n"
+"$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
+"$ B<stat --printf=\"%i\\en\" cecilia.txt> # Check inode number\n"
+"4072121\n"
+"$ B<sudo ./t_open_by_handle_at E<lt> fh>\n"
+"open_by_handle_at: Stale NFS file handle\n"
+
+#. type: SS
+#: build/C/man2/open_by_handle_at.2:502
+#, no-wrap
+msgid "Program source: t_name_to_handle_at.c"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:514
+#, no-wrap
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>sys/stat.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+msgstr ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>sys/stat.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>errno.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:517 build/C/man2/open_by_handle_at.2:590
+#, no-wrap
+msgid ""
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+msgstr ""
+"#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
+" } while (0)\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:524
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" struct file_handle *fhp;\n"
+" int mount_id, fhsize, flags, dirfd, j;\n"
+" char *pathname;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" struct file_handle *fhp;\n"
+" int mount_id, fhsize, flags, dirfd, j;\n"
+" char *pathname;\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:529
+#, no-wrap
+msgid ""
+" if (argc != 2) {\n"
+" fprintf(stderr, \"Usage: %s pathname\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (argc != 2) {\n"
+" fprintf(stderr, \"Usage: %s pathname\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:531
+#, no-wrap
+msgid " pathname = argv[1];\n"
+msgstr " pathname = argv[1];\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:533
+#, no-wrap
+msgid " /* Allocate file_handle structure */\n"
+msgstr " /* Allocate file_handle structure */\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:538
+#, no-wrap
+msgid ""
+" fhsize = sizeof(*fhp);\n"
+" fhp = malloc(fhsize);\n"
+" if (fhp == NULL)\n"
+" errExit(\"malloc\");\n"
+msgstr ""
+" fhsize = sizeof(*fhp);\n"
+" fhp = malloc(fhsize);\n"
+" if (fhp == NULL)\n"
+" errExit(\"malloc\");\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:541
+#, no-wrap
+msgid ""
+" /* Make an initial call to name_to_handle_at() to discover\n"
+" the size required for file handle */\n"
+msgstr ""
+" /* Make an initial call to name_to_handle_at() to discover\n"
+" the size required for file handle */\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:550
+#, no-wrap
+msgid ""
+" dirfd = AT_FDCWD; /* For name_to_handle_at() calls */\n"
+" flags = 0; /* For name_to_handle_at() calls */\n"
+" fhp-E<gt>handle_bytes = 0;\n"
+" if (name_to_handle_at(dirfd, pathname, fhp,\n"
+" &mount_id, flags) != -1 || errno != EOVERFLOW) {\n"
+" fprintf(stderr, \"Unexpected result from name_to_handle_at()\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" dirfd = AT_FDCWD; /* For name_to_handle_at() calls */\n"
+" flags = 0; /* For name_to_handle_at() calls */\n"
+" fhp-E<gt>handle_bytes = 0;\n"
+" if (name_to_handle_at(dirfd, pathname, fhp,\n"
+" &mount_id, flags) != -1 || errno != EOVERFLOW) {\n"
+" fprintf(stderr, \"Unexpected result from name_to_handle_at()\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:552
+#, no-wrap
+msgid " /* Reallocate file_handle structure with correct size */\n"
+msgstr " /* Reallocate file_handle structure with correct size */\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:557
+#, no-wrap
+msgid ""
+" fhsize = sizeof(struct file_handle) + fhp-E<gt>handle_bytes;\n"
+" fhp = realloc(fhp, fhsize); /* Copies fhp-E<gt>handle_bytes */\n"
+" if (fhp == NULL)\n"
+" errExit(\"realloc\");\n"
+msgstr ""
+" fhsize = sizeof(struct file_handle) + fhp-E<gt>handle_bytes;\n"
+" fhp = realloc(fhp, fhsize); /* Copies fhp-E<gt>handle_bytes */\n"
+" if (fhp == NULL)\n"
+" errExit(\"realloc\");\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:559
+#, no-wrap
+msgid " /* Get file handle from pathname supplied on command line */\n"
+msgstr " /* Get file handle from pathname supplied on command line */\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:562
+#, no-wrap
msgid ""
-"The B<O_DIRECT> flag was introduced in SGI IRIX, where it has alignment "
-"restrictions similar to those of Linux 2.4. IRIX has also a B<fcntl>(2) "
-"call to query appropriate alignments, and sizes. FreeBSD 4.x introduced a "
-"flag of the same name, but without alignment restrictions."
+" if (name_to_handle_at(dirfd, pathname, fhp, &mount_id, flags) == -1)\n"
+" errExit(\"name_to_handle_at\");\n"
msgstr ""
-"B<O_DIRECT> フラグは SGI IRIX で導入された。SGI IRIX にも Linux 2.4 と同様の "
-"(ユーザーバッファの) アラインメントの制限がある。 また、IRIX には適切な配置と"
-"サイズを取得するための B<fcntl>(2) コールがある。 FreeBSD 4.x も同じ名前のフ"
-"ラグを導入したが、アラインメントの制限はない。"
+" if (name_to_handle_at(dirfd, pathname, fhp, &mount_id, flags) == -1)\n"
+" errExit(\"name_to_handle_at\");\n"
#. type: Plain text
-#: build/C/man2/open.2:844
+#: build/C/man2/open_by_handle_at.2:565
+#, no-wrap
msgid ""
-"B<O_DIRECT> support was added under Linux in kernel version 2.4.10. Older "
-"Linux kernels simply ignore this flag. Some file systems may not implement "
-"the flag and B<open>() will fail with B<EINVAL> if it is used."
+" /* Write mount ID, file handle size, and file handle to stdout,\n"
+" for later reuse by t_open_by_handle_at.c */\n"
msgstr ""
-"B<O_DIRECT> が Linux でサポートされたのは、カーネルバージョン 2.4.10 であ"
-"る。 古い Linux カーネルは、このフラグを単に無視する。 B<O_DIRECT> フラグをサ"
-"ポートしていないファイルシステムもあり、その場合は、 B<O_DIRECT> を使用する"
-"と B<open>() は B<EINVAL> で失敗する。"
+" /* Write mount ID, file handle size, and file handle to stdout,\n"
+" for later reuse by t_open_by_handle_at.c */\n"
#. type: Plain text
-#: build/C/man2/open.2:855
+#: build/C/man2/open_by_handle_at.2:571
+#, no-wrap
msgid ""
-"Applications should avoid mixing B<O_DIRECT> and normal I/O to the same "
-"file, and especially to overlapping byte regions in the same file. Even "
-"when the file system correctly handles the coherency issues in this "
-"situation, overall I/O throughput is likely to be slower than using either "
-"mode alone. Likewise, applications should avoid mixing B<mmap>(2) of files "
-"with direct I/O to the same files."
+" printf(\"%d\\en\", mount_id);\n"
+" printf(\"%d %d \", fhp-E<gt>handle_bytes, fhp-E<gt>handle_type);\n"
+" for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
+" printf(\" %02x\", fhp-E<gt>f_handle[j]);\n"
+" printf(\"\\en\");\n"
+msgstr ""
+" printf(\"%d\\en\", mount_id);\n"
+" printf(\"%d %d \", fhp-E<gt>handle_bytes, fhp-E<gt>handle_type);\n"
+" for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
+" printf(\" %02x\", fhp-E<gt>f_handle[j]);\n"
+" printf(\"\\en\");\n"
+
+#. type: SS
+#: build/C/man2/open_by_handle_at.2:575
+#, no-wrap
+msgid "Program source: t_open_by_handle_at.c"
msgstr ""
-"アプリケーションは、同じファイル、 特に同じファイルの重複するバイト領域に対し"
-"て、 B<O_DIRECT> と通常の I/O を混ぜて使うのは避けるべきである。 ファイルシス"
-"テムがこのような状況において一貫性の問題を正しく 扱うことができる場合であって"
-"も、全体の I/O スループットは どちらか一方を使用するときと比べて低速になるで"
-"あろう。 同様に、アプリケーションは、同じファイルに対して B<mmap>(2) と直接 "
-"I/O (B<O_DIRECT>) を混ぜて使うのも避けるべきである。"
#. type: Plain text
-#: build/C/man2/open.2:877
+#: build/C/man2/open_by_handle_at.2:587
+#, no-wrap
msgid ""
-"The behaviour of B<O_DIRECT> with NFS will differ from local file systems. "
-"Older kernels, or kernels configured in certain ways, may not support this "
-"combination. The NFS protocol does not support passing the flag to the "
-"server, so B<O_DIRECT> I/O will only bypass the page cache on the client; "
-"the server may still cache the I/O. The client asks the server to make the "
-"I/O synchronous to preserve the synchronous semantics of B<O_DIRECT>. Some "
-"servers will perform poorly under these circumstances, especially if the I/O "
-"size is small. Some servers may also be configured to lie to clients about "
-"the I/O having reached stable storage; this will avoid the performance "
-"penalty at some risk to data integrity in the event of server power "
-"failure. The Linux NFS client places no alignment restrictions on "
-"B<O_DIRECT> I/O."
+"#define _GNU_SOURCE\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>sys/stat.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
msgstr ""
-"NFS で B<O_DIRECT> を使った場合の動作はローカルのファイルシステムの場合と違"
-"う。 古いカーネルや、ある種の設定でコンパイルされたカーネルは、 B<O_DIRECT> "
-"と NFS の組み合わせをサポートしていないかもしれない。 NFS プロトコル自体は"
-"サーバにフラグを渡す機能は持っていないので、 B<O_DIRECT> I/O はクライアント上"
-"のページキャッシュをバイパスするだけになり、 サーバは I/O をキャッシュしてい"
-"るかもしれない。 クライアントは、 B<O_DIRECT> の同期機構を保持するため、サー"
-"バに対して I/O を同期して行うように依頼する。 サーバによっては、こうした状況"
-"下、特に I/O サイズが小さい場合に 性能が大きく劣化する。 また、サーバによって"
-"は、I/O が安定したストレージにまで行われたと、 クライアントに対して嘘をつくも"
-"のもある。 これは、サーバの電源故障が起こった際にデータの完全性が保たれない "
-"危険は少しあるが、性能面での不利な条件を回避するために行われている。 Linux "
-"の NFS クライアントでは B<O_DIRECT> I/O でのアラインメントの制限はない。"
+"#define _GNU_SOURCE\n"
+"#include E<lt>sys/types.hE<gt>\n"
+"#include E<lt>sys/stat.hE<gt>\n"
+"#include E<lt>fcntl.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/open.2:884
+#: build/C/man2/open_by_handle_at.2:596
+#, no-wrap
msgid ""
-"In summary, B<O_DIRECT> is a potentially powerful tool that should be used "
-"with caution. It is recommended that applications treat use of B<O_DIRECT> "
-"as a performance option which is disabled by default."
+"/* Scan /proc/self/mountinfo to find the line whose mount ID matches\n"
+" \\(aqmount_id\\(aq. (An easier way to do this is to install and use the\n"
+" \\(aqlibmount\\(aq library provided by the \\(aqutil-linux\\(aq project.)\n"
+" Open the corresponding mount path and return the resulting file\n"
+" descriptor. */\n"
msgstr ""
-"まとめると、 B<O_DIRECT> は、注意して使うべきであるが、強力なツールとなる可能"
-"性を持っている。 アプリケーションは B<O_DIRECT> をデフォルトでは無効になって"
-"いる性能向上のためのオプションと 考えておくのがよいであろう。"
+"/* Scan /proc/self/mountinfo to find the line whose mount ID matches\n"
+" \\(aqmount_id\\(aq. (An easier way to do this is to install and use the\n"
+" \\(aqlibmount\\(aq library provided by the \\(aqutil-linux\\(aq project.)\n"
+" Open the corresponding mount path and return the resulting file\n"
+" descriptor. */\n"
#. type: Plain text
-#: build/C/man2/open.2:889
+#: build/C/man2/open_by_handle_at.2:606
+#, no-wrap
msgid ""
-"\"The thing that has always disturbed me about O_DIRECT is that the whole "
-"interface is just stupid, and was probably designed by a deranged monkey on "
-"some serious mind-controlling substances.\"\\(emLinus"
+"static int\n"
+"open_mount_path_by_id(int mount_id)\n"
+"{\n"
+" char *linep;\n"
+" size_t lsize;\n"
+" char mount_path[PATH_MAX];\n"
+" int mi_mount_id, found;\n"
+" ssize_t nread;\n"
+" FILE *fp;\n"
msgstr ""
-"「O_DIRECT でいつも困るのは、インタフェース全部が本当にお馬鹿な点だ。 たぶん"
-"危ないマインドコントロール剤で 頭がおかしくなったサルが設計したんじゃないか"
-"な」 \\(em Linus"
+"static int\n"
+"open_mount_path_by_id(int mount_id)\n"
+"{\n"
+" char *linep;\n"
+" size_t lsize;\n"
+" char mount_path[PATH_MAX];\n"
+" int mi_mount_id, found;\n"
+" ssize_t nread;\n"
+" FILE *fp;\n"
-#. FIXME . Check bugzilla report on open(O_ASYNC)
-#. See http://bugzilla.kernel.org/show_bug.cgi?id=5993
#. type: Plain text
-#: build/C/man2/open.2:901
+#: build/C/man2/open_by_handle_at.2:610
+#, no-wrap
msgid ""
-"Currently, it is not possible to enable signal-driven I/O by specifying "
-"B<O_ASYNC> when calling B<open>(); use B<fcntl>(2) to enable this flag."
+" fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
+" if (fp == NULL)\n"
+" errExit(\"fopen\");\n"
msgstr ""
-"現在のところ、 B<open>() の呼び出し時に B<O_ASYNC> を指定してシグナル駆動 I/"
-"O を有効にすることはできない。 このフラグを有効にするには B<fcntl>(2) を使用"
-"すること。"
+" fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
+" if (fp == NULL)\n"
+" errExit(\"fopen\");\n"
#. type: Plain text
-#: build/C/man2/open.2:923
+#: build/C/man2/open_by_handle_at.2:617
+#, no-wrap
msgid ""
-"B<chmod>(2), B<chown>(2), B<close>(2), B<dup>(2), B<fcntl>(2), B<link>(2), "
-"B<lseek>(2), B<mknod>(2), B<mmap>(2), B<mount>(2), B<openat>(2), B<read>(2), "
-"B<socket>(2), B<stat>(2), B<umask>(2), B<unlink>(2), B<write>(2), B<fopen>"
-"(3), B<fifo>(7), B<path_resolution>(7), B<symlink>(7)"
+" found = 0;\n"
+" linep = NULL;\n"
+" while (!found) {\n"
+" nread = getline(&linep, &lsize, fp);\n"
+" if (nread == -1)\n"
+" break;\n"
+msgstr ""
+" found = 0;\n"
+" linep = NULL;\n"
+" while (!found) {\n"
+" nread = getline(&linep, &lsize, fp);\n"
+" if (nread == -1)\n"
+" break;\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:624
+#, no-wrap
+msgid ""
+" nread = sscanf(linep, \"%d %*d %*s %*s %s\",\n"
+" &mi_mount_id, mount_path);\n"
+" if (nread != 2) {\n"
+" fprintf(stderr, \"Bad sscanf()\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" nread = sscanf(linep, \"%d %*d %*s %*s %s\",\n"
+" &mi_mount_id, mount_path);\n"
+" if (nread != 2) {\n"
+" fprintf(stderr, \"Bad sscanf()\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:629
+#, no-wrap
+msgid ""
+" if (mi_mount_id == mount_id)\n"
+" found = 1;\n"
+" }\n"
+" free(linep);\n"
+msgstr ""
+" if (mi_mount_id == mount_id)\n"
+" found = 1;\n"
+" }\n"
+" free(linep);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:631
+#, no-wrap
+msgid " fclose(fp);\n"
+msgstr " fclose(fp);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:636
+#, no-wrap
+msgid ""
+" if (!found) {\n"
+" fprintf(stderr, \"Could not find mount point\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if (!found) {\n"
+" fprintf(stderr, \"Could not find mount point\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:639
+#, no-wrap
+msgid ""
+" return open(mount_path, O_RDONLY);\n"
+"}\n"
+msgstr ""
+" return open(mount_path, O_RDONLY);\n"
+"}\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:650
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" struct file_handle *fhp;\n"
+" int mount_id, fd, mount_fd, handle_bytes, j;\n"
+" ssize_t nread;\n"
+" char buf[1000];\n"
+"#define LINE_SIZE 100\n"
+" char line1[LINE_SIZE], line2[LINE_SIZE];\n"
+" char *nextp;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" struct file_handle *fhp;\n"
+" int mount_id, fd, mount_fd, handle_bytes, j;\n"
+" ssize_t nread;\n"
+" char buf[1000];\n"
+"#define LINE_SIZE 100\n"
+" char line1[LINE_SIZE], line2[LINE_SIZE];\n"
+" char *nextp;\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:655
+#, no-wrap
+msgid ""
+" if ((argc E<gt> 1 && strcmp(argv[1], \"--help\") == 0) || argc E<gt> 2) {\n"
+" fprintf(stderr, \"Usage: %s [mount-path]\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if ((argc E<gt> 1 && strcmp(argv[1], \"--help\") == 0) || argc E<gt> 2) {\n"
+" fprintf(stderr, \"Usage: %s [mount-path]\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:657
+#, no-wrap
+msgid " /* Standard input contains mount ID and file handle information:\n"
+msgstr " /* Standard input contains mount ID and file handle information:\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:661
+#, no-wrap
+msgid ""
+" Line 1: E<lt>mount_idE<gt>\n"
+" Line 2: E<lt>handle_bytesE<gt> E<lt>handle_typeE<gt> E<lt>bytes of handle in hexE<gt>\n"
+" */\n"
+msgstr ""
+" Line 1: E<lt>mount_idE<gt>\n"
+" Line 2: E<lt>handle_bytesE<gt> E<lt>handle_typeE<gt> E<lt>bytes of handle in hexE<gt>\n"
+" */\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:667
+#, no-wrap
+msgid ""
+" if ((fgets(line1, sizeof(line1), stdin) == NULL) ||\n"
+" (fgets(line2, sizeof(line2), stdin) == NULL)) {\n"
+" fprintf(stderr, \"Missing mount_id / file handle\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+msgstr ""
+" if ((fgets(line1, sizeof(line1), stdin) == NULL) ||\n"
+" (fgets(line2, sizeof(line2), stdin) == NULL)) {\n"
+" fprintf(stderr, \"Missing mount_id / file handle\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:669
+#, no-wrap
+msgid " mount_id = atoi(line1);\n"
+msgstr " mount_id = atoi(line1);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:671
+#, no-wrap
+msgid " handle_bytes = strtoul(line2, &nextp, 0);\n"
+msgstr " handle_bytes = strtoul(line2, &nextp, 0);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:673
+#, no-wrap
+msgid " /* Given handle_bytes, we can now allocate file_handle structure */\n"
+msgstr " /* Given handle_bytes, we can now allocate file_handle structure */\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:677
+#, no-wrap
+msgid ""
+" fhp = malloc(sizeof(struct file_handle) + handle_bytes);\n"
+" if (fhp == NULL)\n"
+" errExit(\"malloc\");\n"
+msgstr ""
+" fhp = malloc(sizeof(struct file_handle) + handle_bytes);\n"
+" if (fhp == NULL)\n"
+" errExit(\"malloc\");\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:679
+#, no-wrap
+msgid " fhp-E<gt>handle_bytes = handle_bytes;\n"
+msgstr " fhp-E<gt>handle_bytes = handle_bytes;\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:681
+#, no-wrap
+msgid " fhp-E<gt>handle_type = strtoul(nextp, &nextp, 0);\n"
+msgstr " fhp-E<gt>handle_type = strtoul(nextp, &nextp, 0);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:684
+#, no-wrap
+msgid ""
+" for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
+" fhp-E<gt>f_handle[j] = strtoul(nextp, &nextp, 16);\n"
+msgstr ""
+" for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
+" fhp-E<gt>f_handle[j] = strtoul(nextp, &nextp, 16);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:689
+#, no-wrap
+msgid ""
+" /* Obtain file descriptor for mount point, either by opening\n"
+" the pathname specified on the command line, or by scanning\n"
+" /proc/self/mounts to find a mount that matches the \\(aqmount_id\\(aq\n"
+" that we received from stdin. */\n"
+msgstr ""
+" /* Obtain file descriptor for mount point, either by opening\n"
+" the pathname specified on the command line, or by scanning\n"
+" /proc/self/mounts to find a mount that matches the \\(aqmount_id\\(aq\n"
+" that we received from stdin. */\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:694
+#, no-wrap
+msgid ""
+" if (argc E<gt> 1)\n"
+" mount_fd = open(argv[1], O_RDONLY);\n"
+" else\n"
+" mount_fd = open_mount_path_by_id(mount_id);\n"
+msgstr ""
+" if (argc E<gt> 1)\n"
+" mount_fd = open(argv[1], O_RDONLY);\n"
+" else\n"
+" mount_fd = open_mount_path_by_id(mount_id);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:697
+#, no-wrap
+msgid ""
+" if (mount_fd == -1)\n"
+" errExit(\"opening mount fd\");\n"
+msgstr ""
+" if (mount_fd == -1)\n"
+" errExit(\"opening mount fd\");\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:699
+#, no-wrap
+msgid " /* Open file using handle and mount point */\n"
+msgstr " /* Open file using handle and mount point */\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:703
+#, no-wrap
+msgid ""
+" fd = open_by_handle_at(mount_fd, fhp, O_RDONLY);\n"
+" if (fd == -1)\n"
+" errExit(\"open_by_handle_at\");\n"
+msgstr ""
+" fd = open_by_handle_at(mount_fd, fhp, O_RDONLY);\n"
+" if (fd == -1)\n"
+" errExit(\"open_by_handle_at\");\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:705
+#, no-wrap
+msgid " /* Try reading a few bytes from the file */\n"
+msgstr " /* Try reading a few bytes from the file */\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:709
+#, no-wrap
+msgid ""
+" nread = read(fd, buf, sizeof(buf));\n"
+" if (nread == -1)\n"
+" errExit(\"read\");\n"
+msgstr ""
+" nread = read(fd, buf, sizeof(buf));\n"
+" if (nread == -1)\n"
+" errExit(\"read\");\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:711
+#, no-wrap
+msgid " printf(\"Read %zd bytes\\en\", nread);\n"
+msgstr " printf(\"Read %zd bytes\\en\", nread);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:721
+msgid "B<open>(2), B<libblkid>(3), B<blkid>(8), B<findfs>(8), B<mount>(8)"
+msgstr "B<open>(2), B<libblkid>(3), B<blkid>(8), B<findfs>(8), B<mount>(8)"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:731
+msgid ""
+"The I<libblkid> and I<libmount> documentation in the latest I<util-linux> "
+"release at E<.UR https://www.kernel.org/pub/linux/utils/util-linux/> E<.UE>"
msgstr ""
-"B<chmod>(2), B<chown>(2), B<close>(2), B<dup>(2), B<fcntl>(2), B<link>(2), "
-"B<lseek>(2), B<mknod>(2), B<mmap>(2), B<mount>(2), B<openat>(2), B<read>(2), "
-"B<socket>(2), B<stat>(2), B<umask>(2), B<unlink>(2), B<write>(2), B<fopen>"
-"(3), B<fifo>(7), B<path_resolution>(7), B<symlink>(7)"
#. type: TH
#: build/C/man3/perror.3:31
#. type: TH
#: build/C/man2/pipe.2:36
#, no-wrap
-msgid "2012-02-14"
-msgstr "2012-02-14"
+msgid "2014-02-11"
+msgstr "2014-02-11"
#. type: Plain text
#: build/C/man2/pipe.2:39
msgid "pipe, pipe2 - create pipe"
-msgstr "pipe, pipe2 - パイプを生成する"
-
-#. type: Plain text
-#: build/C/man2/pipe.2:42 build/C/man2/read.2:41
-#, no-wrap
-msgid "B<#include E<lt>unistd.hE<gt>>\n"
-msgstr "B<#include E<lt>unistd.hE<gt>>\n"
+msgstr "pipe, pipe2 - パイプを生成する"
#. type: Plain text
#: build/C/man2/pipe.2:44
"until it is read from the read end of the pipe. For further details, see "
"B<pipe>(7)."
msgstr ""
-"B<pipe>(2) はパイプを生成する。 パイプは、プロセス間通信に使用できる単方向の"
+"B<pipe>() はパイプを生成する。 パイプは、プロセス間通信に使用できる単方向の"
"データチャネルである。 配列 I<pipefd> は、パイプの両端を参照する二つのファイ"
"ルディスクリプタを 返すのに使用される。 I<pipefd[0]> がパイプの読み出し側、 "
"I<pipefd[1]> がパイプの書き込み側である。 パイプの書き込み側に書き込まれた"
#. type: TP
#: build/C/man2/pipe.2:76
#, no-wrap
-msgid "B<O_NONBLOCK>"
-msgstr "B<O_NONBLOCK>"
+msgid "B<O_CLOEXEC>"
+msgstr "B<O_CLOEXEC>"
#. type: Plain text
#: build/C/man2/pipe.2:84
msgid ""
-"Set the B<O_NONBLOCK> file status flag on the two new open file "
-"descriptions. Using this flag saves extra calls to B<fcntl>(2) to achieve "
-"the same result."
+"Set the close-on-exec (B<FD_CLOEXEC>) flag on the two new file "
+"descriptors. See the description of the same flag in B<open>(2) for "
+"reasons why this may be useful."
msgstr ""
-"新しく生成される二つのオープンファイル記述 (open file description) の "
-"B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
-"で、 B<O_NONBLOCK> をセットするために B<fcntl>(2) を追加で呼び出す必要がなく"
-"なる。"
+"新しく生成される二つのファイルディスクリプタの close-on-exec "
+"(B<FD_CLOEXEC>) フラグをセットする。 このフラグが役に立つ理由については、 "
+"B<open>(2) の B<O_CLOEXEC> フラグの説明を参照のこと。"
#. type: TP
#: build/C/man2/pipe.2:84
#, no-wrap
-msgid "B<O_CLOEXEC>"
-msgstr "B<O_CLOEXEC>"
+msgid "B<O_DIRECT> (since Linux 3.4)"
+msgstr "B<O_DIRECT> (Linux 3.4 以降)"
+#. commit 9883035ae7edef3ec62ad215611cb8e17d6a1a5d
#. type: Plain text
-#: build/C/man2/pipe.2:92
+#: build/C/man2/pipe.2:94
msgid ""
-"Set the close-on-exec (B<FD_CLOEXEC>) flag on the two new file "
-"descriptors. See the description of the same flag in B<open>(2) for "
-"reasons why this may be useful."
+"Create a pipe that performs I/O in \"packet\" mode. Each B<write>(2) to "
+"the pipe is dealt with as a separate packet, and B<read>(2)s from the pipe "
+"will read one packet at a time. Note the following points:"
msgstr ""
-"新しく生成される二つのファイルディスクリプタの close-on-exec "
-"(B<FD_CLOEXEC>) フラグをセットする。 このフラグが役に立つ理由については、 "
-"B<open>(2) の B<O_CLOEXEC> フラグの説明を参照のこと。"
+"「パケット」モードで入出力を行うパイプを作成する。 このパイプへの B<write>"
+"(2) それぞれが別のパケットとして扱われ、 このパイプからの B<read>(2) では一度"
+"に一つパケットが読み出される。 以下の点に注意すること。"
+
+#. type: Plain text
+#: build/C/man2/pipe.2:101
+msgid ""
+"Writes of greater than B<PIPE_BUF> bytes (see B<pipe>(7)) will be split "
+"into multiple packets."
+msgstr ""
+"B<PIPE_BUF> バイト (B<pipe>(7) 参照) より大きいデータを書き込んだ場合、複数の"
+"パケットに分割される。"
+
+#. type: Plain text
+#: build/C/man2/pipe.2:111
+msgid ""
+"If a B<read>(2) specifies a buffer size that is smaller than the next "
+"packet, then the requested number of bytes are read, and the excess bytes in "
+"the packet are discarded. Specifying a buffer size of B<PIPE_BUF> will be "
+"sufficient to read the largest possible packets (see the previous point)."
+msgstr ""
+"B<read>(2) で次のパケットよりも小さなバッファサイズを指定した場合、要求された"
+"バイト数のデータが読み出され、そのパケットの超過分のバイトは破棄される。 可能"
+"性のある最大サイズのパケットを読み出すには、B<PIPE_BUF> のバッファサイズを指"
+"定すれば十分である (上の項目を参照)。"
+
+#. type: Plain text
+#: build/C/man2/pipe.2:116
+msgid ""
+"Zero-length packets are not supported. (A B<read>(2) that specifies a "
+"buffer size of zero is a no-op, and returns 0.)"
+msgstr ""
+"長さ 0 のパケットはサポートされていない。 (バッファサイズ 0 を指定した "
+"B<read>(2) は何も行わず 0 を返す)。"
+
+#. type: Plain text
+#: build/C/man2/pipe.2:121
+msgid ""
+"Older kernels that do not support this flag will indicate this via an "
+"B<EINVAL> error."
+msgstr ""
+"このフラグをサポートしていない古いカーネルでは、エラー B<EINVAL> が返る。これ"
+"によりカーネルがサポートしていないことが分かる。"
+
+#. type: TP
+#: build/C/man2/pipe.2:121
+#, no-wrap
+msgid "B<O_NONBLOCK>"
+msgstr "B<O_NONBLOCK>"
+
+#. type: Plain text
+#: build/C/man2/pipe.2:129
+msgid ""
+"Set the B<O_NONBLOCK> file status flag on the two new open file "
+"descriptions. Using this flag saves extra calls to B<fcntl>(2) to achieve "
+"the same result."
+msgstr ""
+"新しく生成される二つのオープンファイル記述 (open file description) の "
+"B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
+"で、 B<O_NONBLOCK> をセットするために B<fcntl>(2) を追加で呼び出す必要がなく"
+"なる。"
#. type: Plain text
-#: build/C/man2/pipe.2:102
+#: build/C/man2/pipe.2:139
msgid "I<pipefd> is not valid."
msgstr "I<pipefd> が無効な値である。"
#. type: Plain text
-#: build/C/man2/pipe.2:107
+#: build/C/man2/pipe.2:144
msgid "(B<pipe2>()) Invalid value in I<flags>."
msgstr "(B<pipe2>()) I<flags> に無効な値が入っている。"
#. type: Plain text
-#: build/C/man2/pipe.2:110
+#: build/C/man2/pipe.2:147
msgid "Too many file descriptors are in use by the process."
msgstr "このプロセスで使われているファイルディスクリプタが多すぎる。"
#. type: Plain text
-#: build/C/man2/pipe.2:118
+#: build/C/man2/pipe.2:155
msgid ""
"B<pipe2>() was added to Linux in version 2.6.27; glibc support is available "
"starting with version 2.9."
"はバージョン 2.9 以降で利用できる。"
#. type: Plain text
-#: build/C/man2/pipe.2:121
+#: build/C/man2/pipe.2:158
msgid "B<pipe>(): POSIX.1-2001."
msgstr "B<pipe>(): POSIX.1-2001."
#. type: Plain text
-#: build/C/man2/pipe.2:124
+#: build/C/man2/pipe.2:161
msgid "B<pipe2>() is Linux-specific."
msgstr "B<pipe2>() は Linux 固有である。"
#. fork.2 refers to this example program.
#. type: Plain text
-#: build/C/man2/pipe.2:140
+#: build/C/man2/pipe.2:177
msgid ""
"The following program creates a pipe, and then B<fork>(2)s to create a child "
"process; the child inherits a duplicate set of file descriptors that refer "
"ら 1 バイトずつ読み込んで標準出力にエコーする。"
#. type: Plain text
-#: build/C/man2/pipe.2:147
+#: build/C/man2/pipe.2:185
#, no-wrap
msgid ""
+"#include E<lt>sys/types.hE<gt>\n"
"#include E<lt>sys/wait.hE<gt>\n"
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
"#include E<lt>string.hE<gt>\n"
msgstr ""
+"#include E<lt>sys/types.hE<gt>\n"
"#include E<lt>sys/wait.hE<gt>\n"
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>string.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/pipe.2:154
+#: build/C/man2/pipe.2:192
#, no-wrap
msgid ""
"int\n"
" char buf;\n"
#. type: Plain text
-#: build/C/man2/pipe.2:159
+#: build/C/man2/pipe.2:197
#, no-wrap
msgid ""
" if (argc != 2) {\n"
-"\tfprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
-"\texit(EXIT_FAILURE);\n"
+" fprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
" }\n"
msgstr ""
" if (argc != 2) {\n"
-"\tfprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
-"\texit(EXIT_FAILURE);\n"
+" fprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
+" exit(EXIT_FAILURE);\n"
" }\n"
#. type: Plain text
-#: build/C/man2/pipe.2:164
+#: build/C/man2/pipe.2:202
#, no-wrap
msgid ""
" if (pipe(pipefd) == -1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/pipe.2:170
+#: build/C/man2/pipe.2:208
#, no-wrap
msgid ""
" cpid = fork();\n"
" }\n"
#. type: Plain text
-#: build/C/man2/pipe.2:173
+#: build/C/man2/pipe.2:211
#, no-wrap
msgid ""
" if (cpid == 0) { /* Child reads from pipe */\n"
" close(pipefd[1]); /* 使用しない write 側はクローズする */\n"
#. type: Plain text
-#: build/C/man2/pipe.2:176
+#: build/C/man2/pipe.2:214
#, no-wrap
msgid ""
" while (read(pipefd[0], &buf, 1) E<gt> 0)\n"
" write(STDOUT_FILENO, &buf, 1);\n"
#. type: Plain text
-#: build/C/man2/pipe.2:180
+#: build/C/man2/pipe.2:218
#, no-wrap
msgid ""
" write(STDOUT_FILENO, \"\\en\", 1);\n"
" _exit(EXIT_SUCCESS);\n"
#. type: Plain text
-#: build/C/man2/pipe.2:189
+#: build/C/man2/pipe.2:227
#, no-wrap
msgid ""
" } else { /* Parent writes argv[1] to pipe */\n"
"}\n"
#. type: Plain text
-#: build/C/man2/pipe.2:197
+#: build/C/man2/pipe.2:235
msgid ""
"B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), B<pipe>"
"(7)"
msgid "POPEN"
msgstr "POPEN"
-#. type: TH
-#: build/C/man3/popen.3:40
-#, no-wrap
-msgid "2010-02-03"
-msgstr "2010-02-03"
-
#. type: Plain text
#: build/C/man3/popen.3:43
msgid "popen, pclose - pipe stream to or from a process"
#. .I stream
#. already "pclose()d", or if
#. type: Plain text
-#: build/C/man3/popen.3:143
+#: build/C/man3/popen.3:146
msgid ""
"The B<pclose>() function returns -1 if B<wait4>(2) returns an error, or "
-"some other error is detected."
+"some other error is detected. In the event of an error, these functions set "
+"I<errno> to indicate the cause of the error."
msgstr ""
"B<pclose>() 関数は、 B<wait4>(2) がエラーを返したり、何か他のエラーが見つ"
-"かった場合、 -1 を返す。"
+"かった場合、 -1 を返す。 その場合、 I<errno> にエラーの原因を示す値が設定され"
+"る。"
#. type: Plain text
-#: build/C/man3/popen.3:162
+#: build/C/man3/popen.3:165
msgid ""
"The B<popen>() function does not set I<errno> if memory allocation fails. "
"If the underlying B<fork>(2) or B<pipe>(2) fails, I<errno> is set "
"検知された場合には、 I<errno> が B<EINVAL> にセットされる。"
#. type: Plain text
-#: build/C/man3/popen.3:169
+#: build/C/man3/popen.3:172
msgid ""
"If B<pclose>() cannot obtain the child status, I<errno> is set to B<ECHILD>."
msgstr ""
"B<ECHILD> にセットされる。"
#. type: Plain text
-#: build/C/man3/popen.3:175
+#: build/C/man3/popen.3:178
msgid "The \\(aqe\\(aq value for I<type> is a Linux extension."
msgstr "I<type> に指定できる \\(aqe\\(aq は Linux での拡張である。"
#. type: Plain text
-#: build/C/man3/popen.3:188
+#: build/C/man3/popen.3:191
msgid ""
"Since the standard input of a command opened for reading shares its seek "
"offset with the process that called B<popen>(), if the original process has "
#. .BR pclose ()
#. function appeared in Version 7 AT&T UNIX.
#. type: Plain text
-#: build/C/man3/popen.3:198
+#: build/C/man3/popen.3:201
msgid ""
"Failure to execute the shell is indistinguishable from the shell's failure "
"to execute command, or an immediate exit of the command. The only hint is "
"なることである。"
#. type: Plain text
-#: build/C/man3/popen.3:208
+#: build/C/man3/popen.3:211
msgid ""
"B<sh>(1), B<fork>(2), B<pipe>(2), B<wait4>(2), B<fclose>(3), B<fflush>(3), "
"B<fopen>(3), B<stdio>(3), B<system>(3)"
#. type: TH
#: build/C/man3/printf.3:34
-#, fuzzy, no-wrap
-#| msgid "2012-03-30"
-msgid "2013-03-05"
-msgstr "2012-03-30"
+#, no-wrap
+msgid "2013-12-30"
+msgstr "2013-12-30"
#. type: Plain text
#: build/C/man3/printf.3:38
#. type: Plain text
#: build/C/man3/printf.3:74 build/C/man3/scanf.3:85
msgid "or I<cc -std=c99>"
-msgstr "or I<cc -std=c99>"
+msgstr "または I<cc -std=c99>"
#. type: Plain text
#: build/C/man3/printf.3:101
msgid ""
"The functions B<snprintf>() and B<vsnprintf>() do not write more than "
"I<size> bytes (including the terminating null byte (\\(aq\\e0\\(aq)). If "
-"the output was truncated due to this limit then the return value is the "
+"the output was truncated due to this limit, then the return value is the "
"number of characters (excluding the terminating null byte) which would have "
"been written to the final string if enough space had been available. Thus, "
"a return value of I<size> or more means that the output was truncated. (See "
msgstr "精度"
#. type: Plain text
-#: build/C/man3/printf.3:440
+#: build/C/man3/printf.3:441
msgid ""
"An optional precision, in the form of a period (\\(aq.\\(aq) followed by an "
"optional decimal digit string. Instead of a decimal digit string one may "
"write \"*\" or \"*m$\" (for some decimal integer m) to specify that the "
"precision is given in the next argument, or in the m-th argument, "
"respectively, which must be of type I<int>. If the precision is given as "
-"just \\(aq.\\(aq, or the precision is negative, the precision is taken to be "
-"zero. This gives the minimum number of digits to appear for B<d>, B<i>, "
-"B<o>, B<u>, B<x>, and B<X> conversions, the number of digits to appear after "
-"the radix character for B<a>, B<A>, B<e>, B<E>, B<f>, and B<F> conversions, "
-"the maximum number of significant digits for B<g> and B<G> conversions, or "
-"the maximum number of characters to be printed from a string for B<s> and "
-"B<S> conversions."
+"just \\(aq.\\(aq, the precision is taken to be zero. A negative precision "
+"is taken as if the precision were omitted. This gives the minimum number of "
+"digits to appear for B<d>, B<i>, B<o>, B<u>, B<x>, and B<X> conversions, the "
+"number of digits to appear after the radix character for B<a>, B<A>, B<e>, "
+"B<E>, B<f>, and B<F> conversions, the maximum number of significant digits "
+"for B<g> and B<G> conversions, or the maximum number of characters to be "
+"printed from a string for B<s> and B<S> conversions."
msgstr ""
"オプションである精度は、ピリオド (\\(aq.\\(aq) とそれに続く10進数という 形式"
"で指定する (10進数はオプション) 。 10進数の文字列の代わりに \"*\" や \"*m$"
"\" (m は 10 進整数)を書くこともできる。 \"*\" と \"*m$\" はそれぞれ、次の引き"
"数と m 番目の引き数を精度として 使うことを指定する (これらの引き数は I<int> "
-"型でなければならない)。 精度として \\(aq.\\(aq だけが指定されたり、精度が負の"
-"数だった場合、 精度はゼロとみなされる。 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変"
-"換では、表示される最小の桁数を指定する。 B<a>, B<A>, B<e>, B<E>, B<f>, B<F> "
-"変換では、小数点以下に表示される数字の桁数を指定する。 B<g> と B<G> 変換で"
-"ã\81¯ã\80\81æ\9c\89å\8a¹æ\95°å\97ã\81®æ\9c\80大æ¡\81æ\95°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 B<s> ã\81¨ B<S> å¤\89æ\8f\9bã\81§ã\81¯ã\80\81æ\96\87å\97å\88\97ã\81\8bã\82\89å\87ºå\8a\9bã\81\95ã\82\8c"
-"る最大文字数を指定する。"
+"型でなければならない)。 精度として \\(aq.\\(aq だけが指定された場合、 精度は"
+"ゼロとみなされる。 精度が負の数だった場合、 精度は指定されなかったものとみな"
+"される。 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変換では、表示される最小の桁数を"
+"指定する。 B<a>, B<A>, B<e>, B<E>, B<f>, B<F> 変換では、小数点以下に表示され"
+"ã\82\8bæ\95°å\97ã\81®æ¡\81æ\95°ã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\80\82 B<g> ã\81¨ B<G> å¤\89æ\8f\9bã\81§ã\81¯ã\80\81æ\9c\89å\8a¹æ\95°å\97ã\81®æ\9c\80大æ¡\81æ\95°ã\82\92æ\8c\87å®\9aã\81\99"
+"る。 B<s> と B<S> 変換では、文字列から出力される最大文字数を指定する。"
#. type: SS
-#: build/C/man3/printf.3:440
+#: build/C/man3/printf.3:441
#, no-wrap
msgid "The length modifier"
msgstr "長さ修飾子"
#. type: Plain text
-#: build/C/man3/printf.3:450
+#: build/C/man3/printf.3:451
msgid ""
"Here, \"integer conversion\" stands for B<d>, B<i>, B<o>, B<u>, B<x>, or "
"B<X> conversion."
"「整数変換」とは、 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変換のことである。"
#. type: TP
-#: build/C/man3/printf.3:450 build/C/man3/scanf.3:294
+#: build/C/man3/printf.3:451 build/C/man3/scanf.3:294
#, no-wrap
msgid "B<hh>"
msgstr "B<hh>"
#. type: Plain text
-#: build/C/man3/printf.3:461
+#: build/C/man3/printf.3:462
msgid ""
"A following integer conversion corresponds to a I<signed char> or I<unsigned "
"char> argument, or a following B<n> conversion corresponds to a pointer to a "
"に対応する引き数が I<signed char> へのポインタであることを示す。"
#. type: TP
-#: build/C/man3/printf.3:461 build/C/man3/scanf.3:284
+#: build/C/man3/printf.3:462 build/C/man3/scanf.3:284
#, no-wrap
msgid "B<h>"
msgstr "B<h>"
#. type: Plain text
-#: build/C/man3/printf.3:472
+#: build/C/man3/printf.3:473
msgid ""
"A following integer conversion corresponds to a I<short int> or I<unsigned "
"short int> argument, or a following B<n> conversion corresponds to a pointer "
"換に対応する引き数が I<short int> へのポインタであることを示す。"
#. type: TP
-#: build/C/man3/printf.3:472 build/C/man3/scanf.3:311
+#: build/C/man3/printf.3:473 build/C/man3/scanf.3:311
#, no-wrap
msgid "B<l>"
msgstr "B<l>"
#. type: Plain text
-#: build/C/man3/printf.3:491
+#: build/C/man3/printf.3:492
msgid ""
"(ell) A following integer conversion corresponds to a I<long int> or "
"I<unsigned long int> argument, or a following B<n> conversion corresponds to "
"変換では I<wchar_t> へのポインタであることを示す。"
#. type: TP
-#: build/C/man3/printf.3:491
+#: build/C/man3/printf.3:492
#, no-wrap
msgid "B<ll>"
msgstr "B<ll> (エルエル)"
#. type: Plain text
-#: build/C/man3/printf.3:503
+#: build/C/man3/printf.3:504
msgid ""
"(ell-ell). A following integer conversion corresponds to a I<long long int> "
"or I<unsigned long long int> argument, or a following B<n> conversion "
"で、 B<n> 変換に対応する引き数が I<long int> へのポインタであることを示す。"
#. type: TP
-#: build/C/man3/printf.3:503 build/C/man3/scanf.3:338
+#: build/C/man3/printf.3:504 build/C/man3/scanf.3:338
#, no-wrap
msgid "B<L>"
msgstr "B<L>"
#. type: Plain text
-#: build/C/man3/printf.3:519
+#: build/C/man3/printf.3:520
msgid ""
"A following B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, or B<G> conversion "
"corresponds to a I<long double> argument. (C99 allows %LF, but SUSv2 does "
"認められていない。)"
#. type: TP
-#: build/C/man3/printf.3:519 build/C/man3/scanf.3:354
+#: build/C/man3/printf.3:520 build/C/man3/scanf.3:354
#, no-wrap
msgid "B<q>"
msgstr "B<q>"
#. type: Plain text
-#: build/C/man3/printf.3:525
+#: build/C/man3/printf.3:526
msgid ""
"(\"quad\". 4.4BSD and Linux libc5 only. Don't use.) This is a synonym for "
"B<ll>."
"意味である。"
#. type: TP
-#: build/C/man3/printf.3:525 build/C/man3/scanf.3:302
+#: build/C/man3/printf.3:526 build/C/man3/scanf.3:302
#, no-wrap
msgid "B<j>"
msgstr "B<j>"
#. type: Plain text
-#: build/C/man3/printf.3:532
+#: build/C/man3/printf.3:533
msgid ""
"A following integer conversion corresponds to an I<intmax_t> or I<uintmax_t> "
"argument."
"整数変換に対応する引き数が I<intmax_t> か I<uintmax_t> であることを示す。"
#. type: TP
-#: build/C/man3/printf.3:532 build/C/man3/scanf.3:366
+#: build/C/man3/printf.3:533 build/C/man3/scanf.3:366
#, no-wrap
msgid "B<z>"
msgstr "B<z>"
#. type: Plain text
-#: build/C/man3/printf.3:543
+#: build/C/man3/printf.3:544
msgid ""
"A following integer conversion corresponds to a I<size_t> or I<ssize_t> "
"argument. (Linux libc5 has B<Z> with this meaning. Don't use it.)"
"libc5 では、これを指定するのに B<Z> を用いる。使ってはならない。)"
#. type: TP
-#: build/C/man3/printf.3:543 build/C/man3/scanf.3:359
+#: build/C/man3/printf.3:544 build/C/man3/scanf.3:359
#, no-wrap
msgid "B<t>"
msgstr "B<t>"
#. type: Plain text
-#: build/C/man3/printf.3:548
+#: build/C/man3/printf.3:549
msgid "A following integer conversion corresponds to a I<ptrdiff_t> argument."
msgstr "整数変換に対応する引き数が I<ptrdiff_t> であることを示す。"
#. type: Plain text
-#: build/C/man3/printf.3:577
+#: build/C/man3/printf.3:578
msgid ""
-"The SUSv2 only knows about the length modifiers B<h> (in B<hd>, B<hi>, "
+"The SUSv2 knows about only the length modifiers B<h> (in B<hd>, B<hi>, "
"B<ho>, B<hx>, B<hX>, B<hn>) and B<l> (in B<ld>, B<li>, B<lo>, B<lx>, B<lX>, "
"B<ln>, B<lc>, B<ls>) and B<L> (in B<Le>, B<LE>, B<Lf>, B<Lg>, B<LG>)."
msgstr ""
"B<ls>), B<L> (B<Le>, B<LE>, B<Lf>, B<Lg>, B<LG>) だけである。"
#. type: SS
-#: build/C/man3/printf.3:577
+#: build/C/man3/printf.3:578
#, no-wrap
msgid "The conversion specifier"
msgstr "変換指定子"
#. type: Plain text
-#: build/C/man3/printf.3:580
+#: build/C/man3/printf.3:581
msgid ""
"A character that specifies the type of conversion to be applied. The "
"conversion specifiers and their meanings are:"
"適用される変換の型を指定する文字。 変換指定子とその意味は以下の通りである。"
#. type: TP
-#: build/C/man3/printf.3:580
+#: build/C/man3/printf.3:581
#, no-wrap
msgid "B<d>, B<i>"
msgstr "B<d>, B<i>"
#. type: Plain text
-#: build/C/man3/printf.3:590
+#: build/C/man3/printf.3:591
msgid ""
"The I<int> argument is converted to signed decimal notation. The precision, "
"if any, gives the minimum number of digits that must appear; if the "
"的に精度として 0 が指定されていると、 出力は空文字列となる。"
#. type: TP
-#: build/C/man3/printf.3:590
+#: build/C/man3/printf.3:591
#, no-wrap
msgid "B<o>, B<u>, B<x>, B<X>"
msgstr "B<o>, B<u>, B<x>, B<X>"
#. type: Plain text
-#: build/C/man3/printf.3:617
+#: build/C/man3/printf.3:618
msgid ""
"The I<unsigned int> argument is converted to unsigned octal (B<o>), unsigned "
"decimal (B<u>), or unsigned hexadecimal (B<x> and B<X>) notation. The "
"られる。"
#. type: TP
-#: build/C/man3/printf.3:617
+#: build/C/man3/printf.3:618
#, no-wrap
msgid "B<e>, B<E>"
msgstr "B<e>, B<E>"
#. type: Plain text
-#: build/C/man3/printf.3:636
+#: build/C/man3/printf.3:637
msgid ""
"The I<double> argument is rounded and converted in the style [-]dB<\\&."
">dddB<e>\\(+-dd where there is one digit before the decimal-point character "
"指数の値が 0 の場合には、00 と表示される。"
#. type: TP
-#: build/C/man3/printf.3:636
+#: build/C/man3/printf.3:637
#, no-wrap
msgid "B<f>, B<F>"
msgstr "B<f>, B<F>"
#. type: Plain text
-#: build/C/man3/printf.3:647
+#: build/C/man3/printf.3:648
msgid ""
"The I<double> argument is rounded and converted to decimal notation in the "
"style [-]dddB<\\&.>ddd, where the number of digits after the decimal-point "
"ない。 小数点を表示する際には、小数点の前に少なくとも一桁は数字が表示される。"
#. type: Plain text
-#: build/C/man3/printf.3:658
+#: build/C/man3/printf.3:659
msgid ""
"(The SUSv2 does not know about B<F> and says that character string "
"representations for infinity and NaN may be made available. The C99 "
"B<F> 変換の場合は \"[-]INF\", \"[-]INFINITY\", \"NAN*\" と表示される。)"
#. type: TP
-#: build/C/man3/printf.3:658
+#: build/C/man3/printf.3:659
#, no-wrap
msgid "B<g>, B<G>"
msgstr "B<g>, B<G>"
#. type: Plain text
-#: build/C/man3/printf.3:683
+#: build/C/man3/printf.3:684
msgid ""
"The I<double> argument is converted in style B<f> or B<e> (or B<F> or B<E> "
"for B<G> conversions). The precision specifies the number of significant "
"一つある場合にだけである。"
#. type: TP
-#: build/C/man3/printf.3:683
+#: build/C/man3/printf.3:684
#, no-wrap
msgid "B<a>, B<A>"
msgstr "B<a>, B<A>"
#. type: Plain text
-#: build/C/man3/printf.3:707
+#: build/C/man3/printf.3:708
msgid ""
"(C99; not in SUSv2) For B<a> conversion, the I<double> argument is converted "
"to hexadecimal notation (using the letters abcdef) in the style [-]B<0x>hB<"
"場合は、 0 以外の値になるが、いくつになるかは分からない。"
#. type: TP
-#: build/C/man3/printf.3:707 build/C/man3/scanf.3:459
-#: build/C/man3/wprintf.3:134
+#: build/C/man3/printf.3:708 build/C/man3/scanf.3:459
+#: build/C/man3/wprintf.3:149
#, no-wrap
msgid "B<c>"
msgstr "B<c>"
#. type: Plain text
-#: build/C/man3/printf.3:725
+#: build/C/man3/printf.3:726
msgid ""
"If no B<l> modifier is present, the I<int> argument is converted to an "
"I<unsigned char>, and the resulting character is written. If an B<l> "
"換し、 変換されたマルチバイト文字列を出力する。"
#. type: TP
-#: build/C/man3/printf.3:725 build/C/man3/scanf.3:451
-#: build/C/man3/wprintf.3:148
+#: build/C/man3/printf.3:726 build/C/man3/scanf.3:451
+#: build/C/man3/wprintf.3:163
#, no-wrap
msgid "B<s>"
msgstr "B<s>"
#. type: Plain text
-#: build/C/man3/printf.3:740
+#: build/C/man3/printf.3:741
msgid ""
-"If no B<l> modifier is present: The I<const char *> argument is expected to "
-"be a pointer to an array of character type (pointer to a string). "
+"If no B<l> modifier is present: The I<const char\\ *> argument is expected "
+"to be a pointer to an array of character type (pointer to a string). "
"Characters from the array are written up to (but not including) a "
"terminating null byte (\\(aq\\e0\\(aq); if a precision is specified, no more "
"than the number specified are written. If a precision is given, no null "
"byte need be present; if the precision is not specified, or is greater than "
"the size of the array, the array must contain a terminating null byte."
msgstr ""
-"B<l> 修飾子がない場合、 引き数は I<const char *> 型で文字型の配列へのポイン"
+"B<l> 修飾子がない場合、 引き数は I<const char\\ *> 型で文字型の配列へのポイン"
"タ (文字列へのポインタ) であることが 期待されている。配列中の文字は、終端の "
"NULL バイト (\\(aq\\e0\\(aq) が出てくるまで出力される (終端文字は出力されな"
"い)。 精度が指定されていると、指定された字数以上は出力されない。 精度が指定さ"
"なければならない。"
#. type: Plain text
-#: build/C/man3/printf.3:767
+#: build/C/man3/printf.3:768
msgid ""
-"If an B<l> modifier is present: The I<const wchar_t *> argument is expected "
-"to be a pointer to an array of wide characters. Wide characters from the "
-"array are converted to multibyte characters (each by a call to the B<wcrtomb>"
-"(3) function, with a conversion state starting in the initial state before "
-"the first wide character), up to and including a terminating null wide "
-"character. The resulting multibyte characters are written up to (but not "
-"including) the terminating null byte. If a precision is specified, no more "
-"bytes than the number specified are written, but no partial multibyte "
-"characters are written. Note that the precision determines the number of "
-"I<bytes> written, not the number of I<wide characters> or I<screen "
+"If an B<l> modifier is present: The I<const wchar_t\\ *> argument is "
+"expected to be a pointer to an array of wide characters. Wide characters "
+"from the array are converted to multibyte characters (each by a call to the "
+"B<wcrtomb>(3) function, with a conversion state starting in the initial "
+"state before the first wide character), up to and including a terminating "
+"null wide character. The resulting multibyte characters are written up to "
+"(but not including) the terminating null byte. If a precision is specified, "
+"no more bytes than the number specified are written, but no partial "
+"multibyte characters are written. Note that the precision determines the "
+"number of I<bytes> written, not the number of I<wide characters> or I<screen "
"positions>. The array must contain a terminating null wide character, "
"unless a precision is given and it is so small that the number of bytes "
"written exceeds it before the end of the array is reached."
msgstr ""
-"B<l> 修飾子が指定されている場合、 引き数は I<const wchar_t *> 型でワイド文字"
-"の配列へのポインタであることが期待されている。 配列中のワイド文字は (1文字毎"
-"に B<wcrtomb>(3) を呼び出して) マルチバイト文字に変換される (最初のワイド文"
-"字の変換の前に B<wcrtomb>() のシフト状態を初期状態に戻してから変換は行われ"
+"B<l> 修飾子が指定されている場合、 引き数は I<const wchar_t\\ *> 型でワイド文"
+"字の配列へのポインタであることが期待されている。 配列中のワイド文字は (1文字"
+"毎に B<wcrtomb>(3) を呼び出して) マルチバイト文字に変換される (最初のワイド"
+"文字の変換の前に B<wcrtomb>() のシフト状態を初期状態に戻してから変換は行われ"
"る)。 マルチバイト文字への変換は、文字列を終端する NULL ワイド文字が 出てくる"
"まで行われ、終端 NULL ワイド文字も含めて変換される。 結果のマルチバイト文字列"
"は、終端の NULL バイトが出てくるまで 出力される (終端の NULL バイトは出力され"
"い。"
#. type: TP
-#: build/C/man3/printf.3:767
+#: build/C/man3/printf.3:768
#, no-wrap
msgid "B<C>"
msgstr "B<C>"
#. type: Plain text
-#: build/C/man3/printf.3:773
+#: build/C/man3/printf.3:774
msgid "(Not in C99, but in SUSv2.) Synonym for B<lc>. Don't use."
msgstr "(C99 にはないが SUSv2 にはある) B<lc> と同じ。使ってはならない。"
#. type: TP
-#: build/C/man3/printf.3:773
+#: build/C/man3/printf.3:774
#, no-wrap
msgid "B<S>"
msgstr "B<S>"
#. type: Plain text
-#: build/C/man3/printf.3:779
+#: build/C/man3/printf.3:780
msgid "(Not in C99, but in SUSv2.) Synonym for B<ls>. Don't use."
msgstr "(C99 にはないが SUSv2 にはある) B<ls> と同じ。使ってはならない。"
#. type: TP
-#: build/C/man3/printf.3:779 build/C/man3/scanf.3:503
+#: build/C/man3/printf.3:780 build/C/man3/scanf.3:502
#, no-wrap
msgid "B<p>"
msgstr "B<p>"
#. type: Plain text
-#: build/C/man3/printf.3:787
+#: build/C/man3/printf.3:788
msgid ""
-"The I<void *> pointer argument is printed in hexadecimal (as if by B<%#x> or "
-"B<%#lx>)."
+"The I<void\\ *> pointer argument is printed in hexadecimal (as if by B<%#x> "
+"or B<%#lx>)."
msgstr ""
-"I<void *> ポインタ引き数を (B<%#x> や B<%#lx> のような) 16 進数で出力する。"
+"I<void\\ *> ポインタ引き数を (B<%#x> や B<%#lx> のような) 16 進数で出力する。"
#. type: TP
-#: build/C/man3/printf.3:787 build/C/man3/scanf.3:511
+#: build/C/man3/printf.3:788 build/C/man3/scanf.3:510
#, no-wrap
msgid "B<n>"
msgstr "B<n>"
#. type: Plain text
-#: build/C/man3/printf.3:794
+#: build/C/man3/printf.3:795
msgid ""
"The number of characters written so far is stored into the integer indicated "
-"by the I<int *> (or variant) pointer argument. No argument is converted."
+"by the I<int\\ *> (or variant) pointer argument. No argument is converted."
msgstr ""
-"これまでに出力された文字数を I<int *> (または類似の型) のポインタ引き数が指す"
-"整数に保存する。 引き数の変換は行われない。"
+"これまでに出力された文字数を I<int\\ *> (または類似の型) のポインタ引き数が指"
+"す整数に保存する。 引き数の変換は行われない。"
#. type: TP
-#: build/C/man3/printf.3:794
+#: build/C/man3/printf.3:795
#, no-wrap
msgid "B<m>"
msgstr "B<m>"
#. type: Plain text
-#: build/C/man3/printf.3:800
+#: build/C/man3/printf.3:801
msgid ""
"(Glibc extension.) Print output of I<strerror(errno)>. No argument is "
"required."
"(glibc での拡張) I<strerror(errno)> の出力を表示する。引き数は必要ない。"
#. type: TP
-#: build/C/man3/printf.3:800 build/C/man3/scanf.3:377
+#: build/C/man3/printf.3:801 build/C/man3/scanf.3:377
#, no-wrap
msgid "B<%>"
msgstr "B<%>"
#. type: Plain text
-#: build/C/man3/printf.3:806
+#: build/C/man3/printf.3:807
msgid ""
"A \\(aq%\\(aq is written. No argument is converted. The complete "
"conversion specification is \\(aq%%\\(aq."
"%\" となる。"
#. type: Plain text
-#: build/C/man3/printf.3:821
+#: build/C/man3/printf.3:822
msgid ""
"The B<fprintf>(), B<printf>(), B<sprintf>(), B<vprintf>(), B<vfprintf>(), "
"and B<vsprintf>() functions conform to C89 and C99. The B<snprintf>() and "
"B<vsnprintf>() は C99 に準拠している。"
#. type: Plain text
-#: build/C/man3/printf.3:834
+#: build/C/man3/printf.3:835
msgid ""
"Concerning the return value of B<snprintf>(), SUSv2 and C99 contradict each "
"other: when B<snprintf>() is called with I<size>=0 then SUSv2 stipulates an "
"出力されるであろう文字数を返す。"
#. type: Plain text
-#: build/C/man3/printf.3:848
+#: build/C/man3/printf.3:849
msgid ""
"Linux libc4 knows about the five C standard flags. It knows about the "
"length modifiers B<h>, B<l>, B<L>, and the conversions B<c>, B<d>, B<e>, "
"えない。"
#. type: Plain text
-#: build/C/man3/printf.3:859
+#: build/C/man3/printf.3:860
msgid ""
"Linux libc5 knows about the five C standard flags and the \\(aq flag, "
"locale, \"%m$\" and \"*m$\". It knows about the length modifiers B<h>, "
"ある。"
#. type: Plain text
-#: build/C/man3/printf.3:861
+#: build/C/man3/printf.3:862
msgid "glibc 2.0 adds conversion characters B<C> and B<S>."
msgstr "glibc 2.0 では、変換文字 B<C> と B<S> が追加された。"
#. type: Plain text
-#: build/C/man3/printf.3:864
+#: build/C/man3/printf.3:865
msgid ""
"glibc 2.1 adds length modifiers B<hh>, B<j>, B<t>, and B<z> and conversion "
"characters B<a> and B<A>."
"加された。"
#. type: Plain text
-#: build/C/man3/printf.3:867
+#: build/C/man3/printf.3:868
msgid ""
"glibc 2.2 adds the conversion character B<F> with C99 semantics, and the "
"flag character B<I>."
"追加された。"
#. type: Plain text
-#: build/C/man3/printf.3:869
+#: build/C/man3/printf.3:870
msgid "Some programs imprudently rely on code such as the following"
msgstr ""
"テキストを I<buf> に追加するのに、軽率にも次のようなコードを使っているプログ"
"ラムがある。"
#. type: Plain text
-#: build/C/man3/printf.3:871
+#: build/C/man3/printf.3:872
#, no-wrap
msgid " sprintf(buf, \"%s some further text\", buf);\n"
msgstr " sprintf(buf, \"%s some further text\", buf);\n"
#. http://sourceware.org/bugzilla/show_bug.cgi?id=7075
#. type: Plain text
-#: build/C/man3/printf.3:887
+#: build/C/man3/printf.3:888
msgid ""
"to append text to I<buf>. However, the standards explicitly note that the "
"results are undefined if source and destination buffers overlap when calling "
#. .BR vdprintf ()
#. that print to a file descriptor instead of a stream.
#. type: Plain text
-#: build/C/man3/printf.3:929
+#: build/C/man3/printf.3:930
msgid ""
"The glibc implementation of the functions B<snprintf>() and B<vsnprintf>() "
"conforms to the C99 standard, that is, behaves as described above, since "
"切り詰められた場合は -1 を返す。"
#. type: Plain text
-#: build/C/man3/printf.3:946
+#: build/C/man3/printf.3:947
msgid ""
"Because B<sprintf>() and B<vsprintf>() assume an arbitrarily long string, "
"callers must be careful not to overflow the actual space; this is often "
"B<vsnprintf>() (または B<asprintf>(3) と B<vasprintf>(3)) を使うこと。"
#. type: Plain text
-#: build/C/man3/printf.3:959
+#: build/C/man3/printf.3:960
msgid ""
"Linux libc4.[45] does not have a B<snprintf>(), but provides a libbsd that "
"contains an B<snprintf>() equivalent to B<sprintf>(), that is, one that "
#. Some floating-point conversions under early libc4
#. caused memory leaks.
#. type: Plain text
-#: build/C/man3/printf.3:973
+#: build/C/man3/printf.3:974
msgid ""
"Code such as B<printf(>I<foo>B<);> often indicates a bug, since I<foo> may "
"contain a % character. If I<foo> comes from untrusted user input, it may "
"ルを作ることになるかもしれない。"
#. type: Plain text
-#: build/C/man3/printf.3:977
+#: build/C/man3/printf.3:978
msgid "To print I<Pi> to five decimal places:"
msgstr "I<Pi> を 5 桁で出力する。"
#. type: Plain text
-#: build/C/man3/printf.3:983
+#: build/C/man3/printf.3:984
#, no-wrap
msgid ""
"#include E<lt>math.hE<gt>\n"
"fprintf(stdout, \"pi = %.5f\\en\", 4 * atan(1.0));\n"
#. type: Plain text
-#: build/C/man3/printf.3:992
+#: build/C/man3/printf.3:993
msgid ""
"To print a date and time in the form \"Sunday, July 3, 10:02\", where "
"I<weekday> and I<month> are pointers to strings:"
"I<month> は文字列へのポインタである)"
#. type: Plain text
-#: build/C/man3/printf.3:998
+#: build/C/man3/printf.3:999
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"\tweekday, month, day, hour, min);\n"
#. type: Plain text
-#: build/C/man3/printf.3:1004
+#: build/C/man3/printf.3:1005
msgid ""
"Many countries use the day-month-year order. Hence, an internationalized "
"version must be able to print the arguments in an order specified by the "
"順番で 引き数を表示できなければならない。"
#. type: Plain text
-#: build/C/man3/printf.3:1010
+#: build/C/man3/printf.3:1011
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"\tweekday, month, day, hour, min);\n"
#. type: Plain text
-#: build/C/man3/printf.3:1017
+#: build/C/man3/printf.3:1018
msgid ""
"where I<format> depends on locale, and may permute the arguments. With the "
"value:"
"I<format> が"
#. type: Plain text
-#: build/C/man3/printf.3:1021
+#: build/C/man3/printf.3:1022
#, no-wrap
msgid "\"%1$s, %3$d. %2$s, %4$d:%5$.2d\\en\"\n"
msgstr "\"%1$s, %3$d. %2$s, %4$d:%5$.2d\\en\"\n"
#. type: Plain text
-#: build/C/man3/printf.3:1025
+#: build/C/man3/printf.3:1026
msgid "one might obtain \"Sonntag, 3. Juli, 10:02\"."
msgstr "であれば、 \"Sonntag, 3. Juli, 10:02\" という結果になる。"
#. type: Plain text
-#: build/C/man3/printf.3:1028
+#: build/C/man3/printf.3:1029
msgid ""
"To allocate a sufficiently large string and print into it (code correct for "
"both glibc 2.0 and glibc 2.1):"
"と glibc 2.1 の両方で正しく動作するコード):"
#. type: Plain text
-#: build/C/man3/printf.3:1031
-msgid ""
-"If truncation occurs in glibc versions prior to 2.0.6, this is treated as an "
-"error instead of being handled gracefully."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man3/printf.3:1036
+#: build/C/man3/printf.3:1034
#, no-wrap
msgid ""
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdarg.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/printf.3:1044
-#, fuzzy, no-wrap
-#| msgid ""
-#| "char *\n"
-#| "make_message(const char *fmt, ...)\n"
-#| "{\n"
-#| " int n;\n"
-#| " int size = 100; /* Guess we need no more than 100 bytes. */\n"
-#| " char *p, *np;\n"
-#| " va_list ap;\n"
+#: build/C/man3/printf.3:1042
+#, no-wrap
msgid ""
"char *\n"
"make_message(const char *fmt, ...)\n"
"make_message(const char *fmt, ...)\n"
"{\n"
" int n;\n"
-" int size = 100; /* Guess we need no more than 100 bytes. */\n"
+" int size = 100; /* Guess we need no more than 100 bytes */\n"
" char *p, *np;\n"
" va_list ap;\n"
#. type: Plain text
-#: build/C/man3/printf.3:1047
+#: build/C/man3/printf.3:1046
#, no-wrap
msgid ""
-" if ((p = malloc(size)) == NULL)\n"
+" p = malloc(size);\n"
+" if (p == NULL)\n"
" return NULL;\n"
msgstr ""
-" if ((p = malloc(size)) == NULL)\n"
+" p = malloc(size);\n"
+" if (p == NULL)\n"
" return NULL;\n"
#. type: Plain text
-#: build/C/man3/printf.3:1049
+#: build/C/man3/printf.3:1048
#, no-wrap
msgid " while (1) {\n"
msgstr " while (1) {\n"
#. type: Plain text
-#: build/C/man3/printf.3:1051
-#, fuzzy, no-wrap
-#| msgid " /* Try to print in the allocated space. */\n"
+#: build/C/man3/printf.3:1050
+#, no-wrap
msgid " /* Try to print in the allocated space */\n"
-msgstr " /* Try to print in the allocated space. */\n"
+msgstr " /* Try to print in the allocated space */\n"
#. type: Plain text
-#: build/C/man3/printf.3:1055
+#: build/C/man3/printf.3:1054
#, no-wrap
msgid ""
" va_start(ap, fmt);\n"
" va_end(ap);\n"
#. type: Plain text
-#: build/C/man3/printf.3:1057
+#: build/C/man3/printf.3:1056
#, no-wrap
msgid " /* Check error code */\n"
-msgstr ""
+msgstr " /* Check error code */\n"
#. type: Plain text
-#: build/C/man3/printf.3:1060
-#, fuzzy, no-wrap
-#| msgid ""
-#| " if (n E<gt> -1 && n E<lt> size)\n"
-#| " return p;\n"
+#: build/C/man3/printf.3:1061
+#, no-wrap
msgid ""
-" if (n E<lt> 0)\n"
+" if (n E<lt> 0) {\n"
+" free(p);\n"
" return NULL;\n"
+" }\n"
msgstr ""
-" if (n E<gt> -1 && n E<lt> size)\n"
-" return p;\n"
+" if (n E<lt> 0) {\n"
+" free(p);\n"
+" return NULL;\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/printf.3:1062
-#, fuzzy, no-wrap
-#| msgid " /* If that worked, return the string. */\n"
+#: build/C/man3/printf.3:1063
+#, no-wrap
msgid " /* If that worked, return the string */\n"
-msgstr " /* If that worked, return the string. */\n"
+msgstr " /* If that worked, return the string */\n"
#. type: Plain text
-#: build/C/man3/printf.3:1065
-#, fuzzy, no-wrap
-#| msgid ""
-#| " if (n E<gt> -1 && n E<lt> size)\n"
-#| " return p;\n"
+#: build/C/man3/printf.3:1066
+#, no-wrap
msgid ""
" if (n E<lt> size)\n"
" return p;\n"
msgstr ""
-" if (n E<gt> -1 && n E<lt> size)\n"
+" if (n E<lt> size)\n"
" return p;\n"
#. type: Plain text
-#: build/C/man3/printf.3:1067
-#, fuzzy, no-wrap
-#| msgid " /* Else try again with more space. */\n"
+#: build/C/man3/printf.3:1068
+#, no-wrap
msgid " /* Else try again with more space */\n"
-msgstr " /* Else try again with more space. */\n"
+msgstr " /* Else try again with more space */\n"
#. type: Plain text
-#: build/C/man3/printf.3:1069
+#: build/C/man3/printf.3:1070
#, no-wrap
msgid " size = n + 1; /* Precisely what is needed */\n"
-msgstr ""
+msgstr " size = n + 1; /* Precisely what is needed */\n"
#. type: Plain text
-#: build/C/man3/printf.3:1079
+#: build/C/man3/printf.3:1081
#, no-wrap
msgid ""
-" if ((np = realloc (p, size)) == NULL) {\n"
+" np = realloc(p, size);\n"
+" if (np == NULL) {\n"
" free(p);\n"
" return NULL;\n"
" } else {\n"
" }\n"
"}\n"
msgstr ""
-" if ((np = realloc (p, size)) == NULL) {\n"
+" np = realloc(p, size);\n"
+" if (np == NULL) {\n"
" free(p);\n"
" return NULL;\n"
" } else {\n"
"}\n"
#. type: Plain text
-#: build/C/man3/printf.3:1089
+#: build/C/man3/printf.3:1085
+msgid ""
+"If truncation occurs in glibc versions prior to 2.0.6, this is treated as an "
+"error instead of being handled gracefully."
+msgstr ""
+"バージョン 2.0.6 より前の glibc で切り詰めが起こった場合、切り詰めは適切に処"
+"理されず、エラーとして扱われる。"
+
+#. type: Plain text
+#: build/C/man3/printf.3:1094
msgid ""
"B<printf>(1), B<asprintf>(3), B<dprintf>(3), B<scanf>(3), B<setlocale>(3), "
"B<wcrtomb>(3), B<wprintf>(3), B<locale>(5)"
msgstr "PUTS"
#. type: TH
-#: build/C/man3/puts.3:26
+#: build/C/man3/puts.3:26 build/C/man3/scanf.3:52
#, no-wrap
-msgid "2011-09-28"
-msgstr "2011-09-28"
+msgid "2014-01-11"
+msgstr "2014-01-11"
#. type: Plain text
#: build/C/man3/puts.3:29
#. type: Plain text
#: build/C/man3/puts.3:124
msgid ""
-"B<write>(2), B<ferror>(3), B<fopen>(3), B<fputwc>(3), B<fputws>(3), B<fseek>"
-"(3), B<fwrite>(3), B<gets>(3), B<putwchar>(3), B<scanf>(3), B<unlocked_stdio>"
-"(3)"
+"B<write>(2), B<ferror>(3), B<fgets>(3), B<fopen>(3), B<fputwc>(3), B<fputws>"
+"(3), B<fseek>(3), B<fwrite>(3), B<putwchar>(3), B<scanf>(3), "
+"B<unlocked_stdio>(3)"
msgstr ""
-"B<write>(2), B<ferror>(3), B<fopen>(3), B<fputwc>(3), B<fputws>(3), B<fseek>"
-"(3), B<fwrite>(3), B<gets>(3), B<putwchar>(3), B<scanf>(3), B<unlocked_stdio>"
-"(3)"
+"B<write>(2), B<ferror>(3), B<fgets>(3), B<fopen>(3), B<fputwc>(3), B<fputws>"
+"(3), B<fseek>(3), B<fwrite>(3), B<putwchar>(3), B<scanf>(3), "
+"B<unlocked_stdio>(3)"
#. type: TH
#: build/C/man2/read.2:35
#. type: TH
#: build/C/man2/read.2:35
-#, fuzzy, no-wrap
-#| msgid "2012-02-14"
+#, no-wrap
msgid "2013-02-12"
-msgstr "2012-02-14"
+msgstr "2013-02-12"
#. type: Plain text
#: build/C/man2/read.2:38
"read. If the current file offset is at or past the end of file, no bytes "
"are read, and B<read>() returns zero."
msgstr ""
+"seek に対応しているファイルでは、read は現在のファイルオフセットから行われ、"
+"ファイルオフセットは読み込んだバイト数分だけ進められる。現在のファイルオフ"
+"セットがファイル末尾かそれより先の場合は、読み出しは行われず、 B<read>() は "
+"0 を返す。"
#. type: Plain text
#: build/C/man2/read.2:75
"In the absence of any errors, or if B<read>() does not check for errors, a "
"B<read>() with a I<count> of 0 returns zero and has no other effects."
msgstr ""
+"I<count> が 0 の場合、 B<read>() は以下で説明するエラーを検出するI<場合がある"
+">。 どのエラーもなかった場合、もしくは B<read>() がエラーのチェックを行わない"
+"場合、 I<count> が 0 で呼び出された B<read>() は 0 を返し、何も行わない。"
#. type: Plain text
#: build/C/man2/read.2:81
-#, fuzzy
-#| msgid ""
-#| "If I<count> is zero, B<read>() returns zero and has no other results. "
-#| "If I<count> is greater than B<SSIZE_MAX>, the result is unspecified."
msgid "If I<count> is greater than B<SSIZE_MAX>, the result is unspecified."
-msgstr ""
-"I<count> が 0 ならば、 B<read>() は 0 を返し、他に何も起きない。 I<count> "
-"が B<SSIZE_MAX> より大きければ、結果は特定できない。"
+msgstr "I<count> が B<SSIZE_MAX> より大きければ、結果は規定できない。"
#. type: Plain text
#: build/C/man2/read.2:95
"(maybe because we were close to end-of-file, or because we are reading from "
"a pipe, or from a terminal), or because B<read>() was interrupted by a "
"signal. On error, -1 is returned, and I<errno> is set appropriately. In "
-"this case it is left unspecified whether the file position (if any) changes."
+"this case, it is left unspecified whether the file position (if any) changes."
msgstr ""
"成功した場合、読み込んだバイト数を返す (0 はファイルの終りを意味する)。 ファ"
"イル位置はこの数だけ進められる。 この数が要求した数より小さかったとしてもエ"
"の場合はファイル位置が変更されるかどうかは 不定である。"
#. type: TP
-#: build/C/man2/read.2:96 build/C/man3/scanf.3:549 build/C/man2/write.2:108
+#: build/C/man2/read.2:96 build/C/man3/scanf.3:548 build/C/man2/write.2:108
#, no-wrap
msgid "B<EAGAIN>"
msgstr "B<EAGAIN>"
#. type: Plain text
#: build/C/man2/read.2:158
-#, fuzzy
-#| msgid ""
-#| "I/O error. This will happen for example when the process is in a "
-#| "background process group, tries to read from its controlling tty, and "
-#| "either it is ignoring or blocking B<SIGTTIN> or its process group is "
-#| "orphaned. It may also occur when there is a low-level I/O error while "
-#| "reading from a disk or tape."
msgid ""
"I/O error. This will happen for example when the process is in a background "
"process group, tries to read from its controlling terminal, and either it is "
"also occur when there is a low-level I/O error while reading from a disk or "
"tape."
msgstr ""
-"I/O エラー。これは例えばプロセスがバックグランド・プロセスグループで、 それを"
-"制御している tty から読み込もうとし、 B<SIGTTIN> が無視 (ignore) または禁止 "
+"I/O エラー。これは例えばプロセスがバックグランド・プロセスグループで、それを"
+"制御している端末から読み込もうとし、 B<SIGTTIN> が無視 (ignore) または禁止 "
"(blocking) されている場合や、 そのプロセスグループが孤立 (orphan) している場"
"合に起こる。 またディスクやテープを読んでいる時に低レベル I/O エラー が発生し"
"た場合にも起こる。"
#. type: Plain text
#: build/C/man2/read.2:187
msgid ""
-"On NFS file systems, reading small amounts of data will only update the "
-"timestamp the first time, subsequent calls may not do so. This is caused by "
+"On NFS filesystems, reading small amounts of data will update the timestamp "
+"only the first time, subsequent calls may not do so. This is caused by "
"client side attribute caching, because most if not all NFS clients leave "
"st_atime (last file access time) updates to the server and client side "
"reads satisfied from the client's cache will not cause st_atime updates on "
"B<fread>(3)"
#. type: TH
-#: build/C/man2/readlink.2:43
+#: build/C/man2/readlink.2:44
#, no-wrap
msgid "READLINK"
msgstr "READLINK"
#. type: TH
-#: build/C/man2/readlink.2:43
+#: build/C/man2/readlink.2:44 build/C/man2/rename.2:33
+#: build/C/man2/symlink.2:33 build/C/man2/unlink.2:33
#, no-wrap
-msgid "2011-09-20"
-msgstr "2011-09-20"
+msgid "2014-02-21"
+msgstr "2014-02-21"
+
+#. type: Plain text
+#: build/C/man2/readlink.2:47
+msgid "readlink, readlinkat - read value of a symbolic link"
+msgstr "readlink, readlinkat - シンボリックリンクの値を読む"
#. type: Plain text
-#: build/C/man2/readlink.2:46
-msgid "readlink - read value of a symbolic link"
-msgstr "readlink - シンボリックリンクの値を読む"
+#: build/C/man2/readlink.2:53
+#, no-wrap
+msgid "B<ssize_t readlink(const char *>I<pathname>B<, char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
+msgstr "B<ssize_t readlink(const char *>I<pathname>B<, char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
#. type: Plain text
-#: build/C/man2/readlink.2:50
+#: build/C/man2/readlink.2:59
+#, no-wrap
msgid ""
-"B<ssize_t readlink(const char *>I<path>B<, char *>I<buf>B<, size_t "
-">I<bufsiz>B<);>"
+"B<int readlinkat(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
+"B< char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
msgstr ""
-"B<ssize_t readlink(const char *>I<path>B<, char *>I<buf>B<, size_t "
-">I<bufsiz>B<);>"
+"B<int readlinkat(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
+"B< char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
#. type: Plain text
-#: build/C/man2/readlink.2:58
+#: build/C/man2/readlink.2:68
msgid "B<readlink>():"
msgstr "B<readlink>():"
#. type: Plain text
-#: build/C/man2/readlink.2:61 build/C/man2/symlink.2:50
+#: build/C/man2/readlink.2:71 build/C/man2/symlink.2:59
msgid ""
"_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
"_XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
"_XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
#. type: Plain text
-#: build/C/man2/readlink.2:77
+#: build/C/man2/readlink.2:74
+msgid "B<readlinkat>():"
+msgstr "B<readlinkat>():"
+
+#. type: Plain text
+#: build/C/man2/readlink.2:100
msgid ""
-"B<readlink>() places the contents of the symbolic link I<path> in the "
+"B<readlink>() places the contents of the symbolic link I<pathname> in the "
"buffer I<buf>, which has size I<bufsiz>. B<readlink>() does not append a "
"null byte to I<buf>. It will truncate the contents (to a length of "
"I<bufsiz> characters), in case the buffer is too small to hold all of the "
"contents."
msgstr ""
-"B<readlink>() は I<path> で与えられたシンボリックリンクの内容を I<buf> バッ"
-"ファーへ格納する、 I<buf> のサイズは I<bufsiz> である。 B<readlink>() は "
-"NULL バイトを I<buf> に追加しない。 その内容全てを格納するのにバッファーが小"
-"さ過ぎる場合は、 (I<bufsiz> バイトの長さに) 内容を切り詰める。"
+"B<readlink>() は I<pathname> で与えられたシンボリックリンクの内容を I<buf> "
+"バッファーへ格納する、 I<buf> のサイズは I<bufsiz> である。 B<readlink>() "
+"は NULL バイトを I<buf> に追加しない。 その内容全てを格納するのにバッファーが"
+"小さ過ぎる場合は、 (I<bufsiz> バイトの長さに) 内容を切り詰める。"
+
+#. type: SS
+#: build/C/man2/readlink.2:100
+#, no-wrap
+msgid "readlinkat()"
+msgstr "readlinkat()"
+
+#. type: Plain text
+#: build/C/man2/readlink.2:106
+msgid ""
+"The B<readlinkat>() system call operates in exactly the same way as "
+"B<readlink>(), except for the differences described here."
+msgstr ""
+"B<readlinkat>() システムコールは B<readlink>() と全く同様に動作するが、以下で"
+"説明する点が異なる。"
+
+#. type: Plain text
+#: build/C/man2/readlink.2:116
+msgid ""
+"If the pathname given in I<pathname> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<dirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<readlink>() for a relative pathname)."
+msgstr ""
+"I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
+"リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
+"(B<readlink>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
+"ワーキングディレクトリに対する相対パスではない)。"
+
+#. type: Plain text
+#: build/C/man2/readlink.2:128
+msgid ""
+"If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
+"then I<pathname> is interpreted relative to the current working directory of "
+"the calling process (like B<readlink>())."
+msgstr ""
+"I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
+"の場合、 (B<readlink>() と同様に) I<pathname> は呼び出したプロセスのカレント"
+"ワーキングディレクトリに対する相対パスと解釈される。"
+
+#. commit 65cfc6722361570bfe255698d9cd4dccaf47570d
+#. type: Plain text
+#: build/C/man2/readlink.2:148
+msgid ""
+"Since Linux 2.6.39, I<pathname> can be an empty string, in which case the "
+"call operates on the file referred to by I<dirfd> (which may have been "
+"obtained using the B<open>(2) B<O_PATH> flag). In this case, I<dirfd> can "
+"refer to any type of file, not just a directory."
+msgstr ""
+"Linux 2.6.39 以降では、 I<pathname> に空文字列を指定できる。 その場合、呼び出"
+"しは I<dirfd> が参照するファイルに対して行われる (I<dirfd> は B<open>(2) の "
+"B<O_PATH> フラグを使って取得できる)。 この場合、 I<dirfd> はディレクトリだけ"
+"でなく、ファイルを参照していてもよい。"
+
+#. type: Plain text
+#: build/C/man2/readlink.2:153
+msgid "See B<openat>(2) for an explanation of the need for B<readlinkat>()."
+msgstr "B<readlinkat>() の必要性についての説明については B<openat>(2) を参照。"
#. type: Plain text
-#: build/C/man2/readlink.2:85
+#: build/C/man2/readlink.2:159
msgid ""
-"On success, B<readlink>() returns the number of bytes placed in I<buf>. On "
+"On success, these calls return the number of bytes placed in I<buf>. On "
"error, -1 is returned and I<errno> is set to indicate the error."
msgstr ""
-"成功すると、 B<readlink>() は I<buf> に格納されたバイト数を返す。 エラーの場"
-"合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
+"成功すると、これらのシステムコールは I<buf> に格納されたバイト数を返す。 エ"
+"ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
#. type: Plain text
-#: build/C/man2/readlink.2:91
+#: build/C/man2/readlink.2:165
msgid ""
"Search permission is denied for a component of the path prefix. (See also "
"B<path_resolution>(7).)"
"参照すること)。"
#. type: Plain text
-#: build/C/man2/readlink.2:95
+#: build/C/man2/readlink.2:169
msgid "I<buf> extends outside the process's allocated address space."
msgstr "I<buf> がプロセスに割り当てられたアドレス空間の外を指している。"
#. See: http://thread.gmane.org/gmane.linux.man/380
#. Subject: [patch 0/3] [RFC] kernel/glibc mismatch of "readlink" syscall?
#. type: Plain text
-#: build/C/man2/readlink.2:104
+#: build/C/man2/readlink.2:178
msgid "I<bufsiz> is not positive."
msgstr "I<bufsiz> が正でない。"
#. type: Plain text
-#: build/C/man2/readlink.2:107
+#: build/C/man2/readlink.2:181
msgid "The named file is not a symbolic link."
msgstr "指定したファイルがシンボリックリンクでない。"
#. type: Plain text
-#: build/C/man2/readlink.2:110
-msgid "An I/O error occurred while reading from the file system."
+#: build/C/man2/readlink.2:184
+msgid "An I/O error occurred while reading from the filesystem."
msgstr "ファイルシステムの読み込み中に I/O エラーが起こった。"
#. type: Plain text
-#: build/C/man2/readlink.2:113
+#: build/C/man2/readlink.2:187
msgid "Too many symbolic links were encountered in translating the pathname."
msgstr "パス名にシンボリックリンクが多すぎる。"
#. type: Plain text
-#: build/C/man2/readlink.2:116
+#: build/C/man2/readlink.2:190
msgid "A pathname, or a component of a pathname, was too long."
msgstr "パス名かパス名の一部分が長過ぎる。"
#. type: Plain text
-#: build/C/man2/readlink.2:119
+#: build/C/man2/readlink.2:193
msgid "The named file does not exist."
msgstr "その名前のファイルが存在しない。"
#. type: Plain text
-#: build/C/man2/readlink.2:125
+#: build/C/man2/readlink.2:199
msgid "A component of the path prefix is not a directory."
msgstr "パスのディレクトリ部分がディレクトリでない。"
#. type: Plain text
-#: build/C/man2/readlink.2:130
-msgid "4.4BSD (B<readlink>() first appeared in 4.2BSD), POSIX.1-2001."
-msgstr "4.4BSD (B<readlink>() は 4.2BSD で初めて登場した), POSIX.1-2001."
+#: build/C/man2/readlink.2:202
+msgid "The following additional errors can occur for B<readlinkat>():"
+msgstr "B<readlinkat>() では以下のエラーも発生する。"
+
+#. type: Plain text
+#: build/C/man2/readlink.2:216
+msgid ""
+"B<readlinkat>() was added to Linux in kernel 2.6.16; library support was "
+"added to glibc in version 2.4."
+msgstr ""
+"B<readlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
+"ポートはバージョン 2.4 で glibc に追加された。"
+
+#. type: Plain text
+#: build/C/man2/readlink.2:222
+msgid ""
+"B<readlink>(): 4.4BSD (B<readlink>() first appeared in 4.2BSD), "
+"POSIX.1-2001, POSIX.1-2008."
+msgstr ""
+"4.4BSD (B<readlink>() は 4.2BSD で初めて登場した), POSIX.1-2001, "
+"POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/readlink.2:225
+msgid "B<readlinkat>(): POSIX.1-2008."
+msgstr "B<readlinkat>(): POSIX.1-2008."
#. type: Plain text
-#: build/C/man2/readlink.2:138
+#: build/C/man2/readlink.2:233
msgid ""
"In versions of glibc up to and including glibc 2.4, the return type of "
"B<readlink>() was declared as I<int>. Nowadays, the return type is "
"る (返り値 I<ssize_t> は POSIX.1-2001 で (新たに) 必須となった)。"
#. type: Plain text
-#: build/C/man2/readlink.2:157
+#: build/C/man2/readlink.2:256
msgid ""
"Using a statically sized buffer might not provide enough room for the "
"symbolic link contents. The required size for the buffer can be obtained "
"from the I<stat.st_size> value returned by a call to B<lstat>(2) on the "
-"link. However, the number of bytes written by B<readlink>() should be "
-"checked to make sure that the size of the symbolic link did not increase "
-"between the calls. Dynamically allocating the buffer for B<readlink>() "
-"also addresses a common portability problem when using I<PATH_MAX> for the "
-"buffer size, as this constant is not guaranteed to be defined per POSIX if "
-"the system does not have such limit."
-msgstr ""
-"静的な大きさのバッファを使うと、シンボリックリンクの内容を\n"
-"格納するのに十分な領域がない場合がある。\n"
-"バッファに必要なサイズは、そのシンボリックリンクに対して B<lstat>(2)\n"
-"の呼び出しで返される I<stat.st_size> の値から取得できる。\n"
-"ただし、 B<readlink>() が書き込んだバイト数をチェックして、\n"
-"シンボリックリンクのサイズが B<lstat>(2) と B<readlink>() の呼び出し\n"
-"の間で増えていないことを確認すべきである。\n"
-"B<readlink>() 用のバッファを動的に割り当てる方法でも、\n"
-"バッファサイズとして I<PATH_MAX> を使用する場合に共通する移植性の\n"
-"問題を解決することができる。なぜなら、POSIX では、\n"
-"システムがそのような上限値を定義していない場合には、\n"
-"I<PATH_MAX> が定義されることが保証されていないからである。"
-
-#. type: Plain text
-#: build/C/man2/readlink.2:163
+"link. However, the number of bytes written by B<readlink>() and "
+"B<readlinkat>() should be checked to make sure that the size of the "
+"symbolic link did not increase between the calls. Dynamically allocating "
+"the buffer for B<readlink>() and B<readlinkat>() also addresses a common "
+"portability problem when using I<PATH_MAX> for the buffer size, as this "
+"constant is not guaranteed to be defined per POSIX if the system does not "
+"have such limit."
+msgstr ""
+"静的な大きさのバッファを使うと、 シンボリックリンクの内容を格納するのに十分な"
+"領域がない場合がある。 バッファに必要なサイズは、 そのシンボリックリンクに対"
+"して B<lstat>(2) の呼び出しで返される I<stat.st_size> の値から取得できる。 た"
+"だし、 B<readlink>() や B<readlinkat>() が書き込んだバイト数をチェックして、 "
+"シンボリックリンクのサイズが二つの呼び出しの間で増えていないことを確認すべき"
+"である。 B<readlink>() や B<readlinkat>() 用のバッファを動的に割り当てる方法"
+"でも、 バッファサイズとして I<PATH_MAX> を使用する場合に共通する移植性の問題"
+"を解決することができる。 なぜなら、POSIX では、 システムがそのような上限値を"
+"定義していない場合には、 I<PATH_MAX> が定義されることが保証されていないからで"
+"ある。"
+
+#. type: Plain text
+#: build/C/man2/readlink.2:262
msgid ""
"The following program allocates the buffer needed by B<readlink>() "
"dynamically from the information provided by B<lstat>(), making sure there's "
"また、両方の呼び出し間で競合条件がないことを保証している。"
#. type: Plain text
-#: build/C/man2/readlink.2:170
+#: build/C/man2/readlink.2:269
#, no-wrap
msgid ""
"#include E<lt>sys/types.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/readlink.2:177
+#: build/C/man2/readlink.2:276
#, no-wrap
msgid ""
"int\n"
" ssize_t r;\n"
#. type: Plain text
-#: build/C/man2/readlink.2:182
+#: build/C/man2/readlink.2:281
#, no-wrap
msgid ""
" if (argc != 2) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/readlink.2:187
+#: build/C/man2/readlink.2:286
#, no-wrap
msgid ""
" if (lstat(argv[1], &sb) == -1) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/readlink.2:193
+#: build/C/man2/readlink.2:292
#, no-wrap
msgid ""
" linkname = malloc(sb.st_size + 1);\n"
" }\n"
#. type: Plain text
-#: build/C/man2/readlink.2:195
+#: build/C/man2/readlink.2:294
#, no-wrap
msgid " r = readlink(argv[1], linkname, sb.st_size + 1);\n"
msgstr " r = readlink(argv[1], linkname, sb.st_size + 1);\n"
#. type: Plain text
-#: build/C/man2/readlink.2:200
+#: build/C/man2/readlink.2:299
#, no-wrap
msgid ""
-" if (r E<lt> 0) {\n"
-" perror(\"lstat\");\n"
+" if (r == -1) {\n"
+" perror(\"readlink\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
msgstr ""
-" if (r E<lt> 0) {\n"
-" perror(\"lstat\");\n"
+" if (r == -1) {\n"
+" perror(\"readlink\");\n"
" exit(EXIT_FAILURE);\n"
" }\n"
#. type: Plain text
-#: build/C/man2/readlink.2:206
+#: build/C/man2/readlink.2:305
#, no-wrap
msgid ""
" if (r E<gt> sb.st_size) {\n"
" }\n"
#. type: Plain text
-#: build/C/man2/readlink.2:208
+#: build/C/man2/readlink.2:307
#, no-wrap
-msgid " linkname[sb.st_size] = \\(aq\\e0\\(aq;\n"
-msgstr " linkname[sb.st_size] = \\(aq\\e0\\(aq;\n"
+msgid " linkname[r] = \\(aq\\e0\\(aq;\n"
+msgstr " linkname[r] = \\(aq\\e0\\(aq;\n"
#. type: Plain text
-#: build/C/man2/readlink.2:210
+#: build/C/man2/readlink.2:309
#, no-wrap
msgid " printf(\"\\(aq%s\\(aq points to \\(aq%s\\(aq\\en\", argv[1], linkname);\n"
msgstr " printf(\"\\(aq%s\\(aq points to \\(aq%s\\(aq\\en\", argv[1], linkname);\n"
#. type: Plain text
-#: build/C/man2/readlink.2:222
+#: build/C/man2/readlink.2:320
msgid ""
-"B<readlink>(1), B<lstat>(2), B<readlinkat>(2), B<stat>(2), B<symlink>(2), "
-"B<path_resolution>(7), B<symlink>(7)"
+"B<readlink>(1), B<lstat>(2), B<stat>(2), B<symlink>(2), B<path_resolution>"
+"(7), B<symlink>(7)"
msgstr ""
-"B<readlink>(1), B<lstat>(2), B<readlinkat>(2), B<stat>(2), B<symlink>(2),\n"
-"B<path_resolution>(7), B<symlink>(7)"
+"B<readlink>(1), B<lstat>(2), B<stat>(2), B<symlink>(2), B<path_resolution>"
+"(7), B<symlink>(7)"
#. type: TH
#: build/C/man2/readv.2:32
#. type: SS
#: build/C/man2/readv.2:227
-#, fuzzy, no-wrap
-#| msgid "Linux Notes"
+#, no-wrap
msgid "Linux notes"
msgstr "Linux での注意"
#. type: TH
#: build/C/man3/remove.3:31
#, no-wrap
-msgid "2008-12-03"
-msgstr "2008-12-03"
+msgid "2014-03-10"
+msgstr "2014-03-10"
#. type: Plain text
#: build/C/man3/remove.3:34
#. type: Plain text
#: build/C/man3/remove.3:46
msgid ""
-"B<remove>() deletes a name from the file system. It calls B<unlink>(2) "
-"for files, and B<rmdir>(2) for directories."
+"B<remove>() deletes a name from the filesystem. It calls B<unlink>(2) for "
+"files, and B<rmdir>(2) for directories."
msgstr ""
"B<remove>() はファイルシステムからファイル名を削除する。 ファイルに対しては "
"B<unlink>(2) を、ディレクトリに対しては B<rmdir>(2) を呼び出す。"
"でファイルは存在し続ける。"
#. type: Plain text
-#: build/C/man3/remove.3:57
+#: build/C/man3/remove.3:57 build/C/man2/unlink.2:78
msgid "If the name referred to a symbolic link, the link is removed."
msgstr "名前が指しているのがシンボリックリンクなら、そのリンクを削除する。"
msgstr "発生するエラーは B<unlink>(2) および B<rmdir>(2) と同じものである。"
#. type: Plain text
-#: build/C/man3/remove.3:72
+#: build/C/man3/remove.3:75
+msgid "The B<remove>() function is thread-safe."
+msgstr "関数 B<remove>() はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/remove.3:77
msgid "C89, C99, 4.3BSD, POSIX.1-2001."
msgstr "C89, C99, 4.3BSD, POSIX.1-2001."
#. type: Plain text
-#: build/C/man3/remove.3:78
+#: build/C/man3/remove.3:83
msgid ""
"Under libc4 and libc5, B<remove>() was an alias for B<unlink>(2) (and "
"hence would not remove directories)."
"(従ってディレクトリを削除できなかった)。"
#. type: Plain text
-#: build/C/man3/remove.3:81 build/C/man2/unlink.2:148
+#: build/C/man3/remove.3:86 build/C/man2/unlink.2:284
msgid ""
"Infelicities in the protocol underlying NFS can cause the unexpected "
"disappearance of files which are still being used."
"うことがありえる。"
#. type: Plain text
-#: build/C/man3/remove.3:92
+#: build/C/man3/remove.3:97
msgid ""
"B<rm>(1), B<unlink>(1), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
"B<rmdir>(2), B<unlink>(2), B<mkfifo>(3), B<symlink>(7)"
"B<rmdir>(2), B<unlink>(2), B<mkfifo>(3), B<symlink>(7)"
#. type: TH
-#: build/C/man2/rename.2:32
+#: build/C/man2/rename.2:33
#, no-wrap
msgid "RENAME"
msgstr "RENAME"
#. type: Plain text
-#: build/C/man2/rename.2:35
-msgid "rename - change the name or location of a file"
-msgstr "rename - ファイルの名前や位置を変更する"
+#: build/C/man2/rename.2:36
+msgid "rename, renameat - change the name or location of a file"
+msgstr "rename, renameat - ファイルの名前や位置を変更する"
+
+#. type: Plain text
+#: build/C/man2/rename.2:41
+#, no-wrap
+msgid "B<int rename(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
+msgstr "B<int rename(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
+
+#. type: Plain text
+#: build/C/man2/rename.2:44
+#, no-wrap
+msgid ""
+"B<#include E<lt>fcntl.hE<gt> >/* Definition of AT_* constants */\n"
+"B<#include E<lt>stdio.hE<gt>>\n"
+msgstr ""
+"B<#include E<lt>fcntl.hE<gt> >/* AT_* 定数の定義 */\n"
+"B<#include E<lt>stdio.hE<gt>>\n"
+
+#. type: Plain text
+#: build/C/man2/rename.2:47
+#, no-wrap
+msgid ""
+"B<int renameat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
+"B< int >I<newdirfd>B<, const char *>I<newpath>B<);>\n"
+msgstr ""
+"B<int renameat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
+"B< int >I<newdirfd>B<, const char *>I<newpath>B<);>\n"
#. type: Plain text
-#: build/C/man2/rename.2:39
-msgid "B<int rename(const char *>I<oldpath>B<, const char *>I<newpath>B<);>"
-msgstr "B<int rename(const char *>I<oldpath>B<, const char *>I<newpath>B<);>"
+#: build/C/man2/rename.2:55
+msgid "B<renameat>():"
+msgstr "B<renameat>():"
#. type: Plain text
-#: build/C/man2/rename.2:48
+#: build/C/man2/rename.2:76
msgid ""
"B<rename>() renames a file, moving it between directories if required. Any "
"other hard links to the file (as created using B<link>(2)) are unaffected. "
"リプタにも影響はない。"
#. type: Plain text
-#: build/C/man2/rename.2:56
+#: build/C/man2/rename.2:84
msgid ""
-"If I<newpath> already exists it will be atomically replaced (subject to a "
+"If I<newpath> already exists, it will be atomically replaced (subject to a "
"few conditions; see ERRORS below), so that there is no point at which "
"another process attempting to access I<newpath> will find it missing."
msgstr ""
"とはない (訳註: 常にアクセス可能である)。"
#. type: Plain text
-#: build/C/man2/rename.2:64
+#: build/C/man2/rename.2:92
msgid ""
"If I<oldpath> and I<newpath> are existing hard links referring to the same "
"file, then B<rename>() does nothing, and returns a success status."
"ている場合、 B<rename>() は何も行わず、ステータスとして成功を返す。"
#. type: Plain text
-#: build/C/man2/rename.2:72
+#: build/C/man2/rename.2:100
msgid ""
-"If I<newpath> exists but the operation fails for some reason B<rename>() "
+"If I<newpath> exists but the operation fails for some reason, B<rename>() "
"guarantees to leave an instance of I<newpath> in place."
msgstr ""
"I<newpath> が存在し、何らかの理由で操作が失敗した場合、 B<rename>() は "
"I<newpath> の実体を元のまま残すことを保証する。"
#. type: Plain text
-#: build/C/man2/rename.2:78
+#: build/C/man2/rename.2:106
msgid ""
"I<oldpath> can specify a directory. In this case, I<newpath> must either "
"not exist, or it must specify an empty directory."
"存在しないか、空のディレクトリでなければならない。"
#. type: Plain text
-#: build/C/man2/rename.2:85
+#: build/C/man2/rename.2:113
msgid ""
"However, when overwriting there will probably be a window in which both "
"I<oldpath> and I<newpath> refer to the file being renamed."
"I<newpath> の両方で参照できる瞬間がおそらく存在する。"
#. type: Plain text
-#: build/C/man2/rename.2:91
+#: build/C/man2/rename.2:119
msgid ""
-"If I<oldpath> refers to a symbolic link the link is renamed; if I<newpath> "
-"refers to a symbolic link the link will be overwritten."
+"If I<oldpath> refers to a symbolic link, the link is renamed; if I<newpath> "
+"refers to a symbolic link, the link will be overwritten."
msgstr ""
"I<oldpath> がシンボリックリンク (symbolic link) を参照している場合は、 リンク"
"の名前が変更される。 また、 I<newpath> がシンボリックリンクを参照している場合"
"は、リンクが上書きされる。"
+#. type: SS
+#: build/C/man2/rename.2:119
+#, no-wrap
+msgid "renameat ()"
+msgstr "renameat ()"
+
+#. type: Plain text
+#: build/C/man2/rename.2:125
+msgid ""
+"The B<renameat>() system call operates in exactly the same way as B<rename>"
+"(), except for the differences described here."
+msgstr ""
+"B<renameat>() システムコールは B<rename>() と全く同様に動作するが、以下で説明"
+"する点が異なる。"
+
+#. type: Plain text
+#: build/C/man2/rename.2:135
+msgid ""
+"If the pathname given in I<oldpath> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<olddirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<rename>() for a relative pathname)."
+msgstr ""
+"I<oldpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスクリ"
+"プター I<olddirfd> が参照するディレクトリに対する相対パスと解釈される "
+"(B<rename>(2) に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
+"ワーキングディレクトリに対する相対パスではない)。"
+
+#. type: Plain text
+#: build/C/man2/rename.2:147
+msgid ""
+"If I<oldpath> is relative and I<olddirfd> is the special value B<AT_FDCWD>, "
+"then I<oldpath> is interpreted relative to the current working directory of "
+"the calling process (like B<rename>())."
+msgstr ""
+"I<oldpath> で指定されたパス名が相対パスで、 I<olddirfd> が特別な値 "
+"B<AT_FDCWD> の場合、 (B<rename>(2) と同様に) I<oldpath> は呼び出したプロセス"
+"のカレントワーキングディレクトリに対する相対パスと解釈される。"
+
+#. type: Plain text
+#: build/C/man2/rename.2:166
+msgid "See B<openat>(2) for an explanation of the need for B<renameat>()."
+msgstr "B<renameat>() の必要性についての説明については B<openat>(2) を参照。"
+
#. type: Plain text
-#: build/C/man2/rename.2:116
+#: build/C/man2/rename.2:191
msgid ""
"Write permission is denied for the directory containing I<oldpath> or "
"I<newpath>, or, search permission is denied for one of the directories in "
"な) 書き込み許可がない (B<path_resolution>(7) も参照)。"
#. type: TP
-#: build/C/man2/rename.2:116 build/C/man2/rmdir.2:55 build/C/man2/unlink.2:71
+#: build/C/man2/rename.2:191 build/C/man2/rmdir.2:55 build/C/man2/unlink.2:169
#, no-wrap
msgid "B<EBUSY>"
msgstr "B<EBUSY>"
#. type: Plain text
-#: build/C/man2/rename.2:133
+#: build/C/man2/rename.2:208
msgid ""
"The rename fails because I<oldpath> or I<newpath> is a directory that is in "
"use by some process (perhaps as current working directory, or as root "
"B<EBUSY> を返すことが許されている。)"
#. type: Plain text
-#: build/C/man2/rename.2:143
+#: build/C/man2/rename.2:218
msgid ""
"The new pathname contained a path prefix of the old, or, more generally, an "
"attempt was made to make a directory a subdirectory of itself."
"ディレクトリに 変更しようとした場合がほとんどである。"
#. type: Plain text
-#: build/C/man2/rename.2:149
+#: build/C/man2/rename.2:224
msgid "I<newpath> is an existing directory, but I<oldpath> is not a directory."
msgstr ""
"I<newpath> は存在しているディレクトリであるが、 I<oldpath> はディレクトリでな"
"い。"
#. type: Plain text
-#: build/C/man2/rename.2:160
+#: build/C/man2/rename.2:235
msgid ""
"I<oldpath> already has the maximum number of links to it, or it was a "
"directory and the directory containing I<newpath> has the maximum number of "
"I<newpath> を含んでいるディレクトリが最大数までのリンクを持っている。"
#. type: Plain text
-#: build/C/man2/rename.2:176
+#: build/C/man2/rename.2:251
msgid ""
"The link named by I<oldpath> does not exist; or, a directory component in "
"I<newpath> does not exist; or, I<oldpath> or I<newpath> is an empty string."
"クトリが存在しない。 または、 I<oldpath> か I<newpath> が空の文字列である。"
#. type: Plain text
-#: build/C/man2/rename.2:193
+#: build/C/man2/rename.2:268
msgid ""
"A component used as a directory in I<oldpath> or I<newpath> is not, in fact, "
"a directory. Or, I<oldpath> is a directory, and I<newpath> exists but is "
"トリでない。"
#. type: TP
-#: build/C/man2/rename.2:193
+#: build/C/man2/rename.2:268
#, no-wrap
msgid "B<ENOTEMPTY> or B<EEXIST>"
msgstr "B<ENOTEMPTY または EEXIST>"
#. type: Plain text
-#: build/C/man2/rename.2:197
+#: build/C/man2/rename.2:272
msgid ""
"I<newpath> is a nonempty directory, that is, contains entries other than \"."
"\" and \"..\"."
"でいる。"
#. type: TP
-#: build/C/man2/rename.2:197 build/C/man2/unlink.2:126
+#: build/C/man2/rename.2:272 build/C/man2/unlink.2:224
#, no-wrap
msgid "B<EPERM> or B<EACCES>"
msgstr "B<EPERM> または B<EACCES>"
#. type: Plain text
-#: build/C/man2/rename.2:221
+#: build/C/man2/rename.2:296
msgid ""
"The directory containing I<oldpath> has the sticky bit (B<S_ISVTX>) set and "
"the process's effective user ID is neither the user ID of the file to be "
"sticky bit set and the process's effective user ID is neither the user ID of "
"the file to be replaced nor that of the directory containing it, and the "
"process is not privileged (Linux: does not have the B<CAP_FOWNER> "
-"capability); or the file system containing I<pathname> does not support "
+"capability); or the filesystem containing I<pathname> does not support "
"renaming of the type requested."
msgstr ""
"I<oldpath> のあるディレクトリにスティッキービット (sticky bit) "
"存在するファイルシステムが、要求された種類の名前の変更を サポートしていない。"
#. type: Plain text
-#: build/C/man2/rename.2:232
+#: build/C/man2/rename.2:307
msgid ""
-"I<oldpath> and I<newpath> are not on the same mounted file system. (Linux "
-"permits a file system to be mounted at multiple points, but B<rename>() "
-"does not work across different mount points, even if the same file system is "
+"I<oldpath> and I<newpath> are not on the same mounted filesystem. (Linux "
+"permits a filesystem to be mounted at multiple points, but B<rename>() does "
+"not work across different mount points, even if the same filesystem is "
"mounted on both.)"
msgstr ""
"I<oldpath> と I<newpath> が同じマウントされたファイルシステムに存在しない。 "
"別々のマウント位置を跨いでは動作しない。)"
#. type: Plain text
-#: build/C/man2/rename.2:234
-msgid "4.3BSD, C89, C99, POSIX.1-2001."
-msgstr "4.3BSD, C89, C99, POSIX.1-2001."
+#: build/C/man2/rename.2:310
+msgid "The following additional errors can occur for B<renameat>():"
+msgstr "B<renameat>() では以下のエラーも発生する。"
+
+#. type: Plain text
+#: build/C/man2/rename.2:330
+msgid ""
+"B<renameat>() was added to Linux in kernel 2.6.16; library support was "
+"added to glibc in version 2.4."
+msgstr ""
+"B<renameat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
+"ポートはバージョン 2.4 で glibc に追加された。"
+
+#. type: Plain text
+#: build/C/man2/rename.2:333
+msgid "B<rename>(): 4.3BSD, C89, C99, POSIX.1-2001, POSIX.1-2008."
+msgstr "B<rename>(): 4.3BSD, C89, C99, POSIX.1-2001, POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/rename.2:336
+msgid "B<renameat>(): POSIX.1-2008."
+msgstr "B<renameat>(): POSIX.1-2008."
#. type: Plain text
-#: build/C/man2/rename.2:245
+#: build/C/man2/rename.2:347
msgid ""
-"On NFS file systems, you can not assume that if the operation failed the "
+"On NFS filesystems, you can not assume that if the operation failed, the "
"file was not renamed. If the server does the rename operation and then "
"crashes, the retransmitted RPC which will be processed when the server is up "
"again causes a failure. The application is expected to deal with this. See "
"待されている。 同様の問題について B<link>(2) にも書かれている。"
#. type: Plain text
-#: build/C/man2/rename.2:254
+#: build/C/man2/rename.2:355
msgid ""
-"B<mv>(1), B<chmod>(2), B<link>(2), B<renameat>(2), B<symlink>(2), B<unlink>"
-"(2), B<path_resolution>(7), B<symlink>(7)"
+"B<mv>(1), B<chmod>(2), B<link>(2), B<symlink>(2), B<unlink>(2), "
+"B<path_resolution>(7), B<symlink>(7)"
msgstr ""
-"B<mv>(1), B<chmod>(2), B<link>(2), B<renameat>(2), B<symlink>(2), B<unlink>"
-"(2), B<path_resolution>(7), B<symlink>(7)"
+"B<mv>(1), B<chmod>(2), B<link>(2), B<symlink>(2), B<unlink>(2), "
+"B<path_resolution>(7), B<symlink>(7)"
#. type: TH
#: build/C/man2/rmdir.2:30
msgstr "I<pathname> の最後のディレクトリ部分が I<.> である。"
#. type: Plain text
-#: build/C/man2/rmdir.2:77
-msgid "Too many symbolic links were encountered in resolving I<pathname>."
-msgstr "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
-
-#. type: Plain text
#: build/C/man2/rmdir.2:85
msgid ""
"A directory component in I<pathname> does not exist or is a dangling "
#. type: Plain text
#: build/C/man2/rmdir.2:123
msgid ""
-"The file system containing I<pathname> does not support the removal of "
+"The filesystem containing I<pathname> does not support the removal of "
"directories."
msgstr ""
"I<pathname> を含んでいるファイルシステムがディレクトリの 削除をサポートしてい"
#. type: Plain text
#: build/C/man2/rmdir.2:127
-msgid "I<pathname> refers to a directory on a read-only file system."
+msgid "I<pathname> refers to a directory on a read-only filesystem."
msgstr ""
"I<pathname> が読み込み専用のファイルシステム上のディレクトリを参照している。"
msgid "SCANF"
msgstr "SCANF"
-#. type: TH
-#: build/C/man3/scanf.3:52
-#, fuzzy, no-wrap
-#| msgid "2012-01-18"
-msgid "2013-01-30"
-msgstr "2012-01-18"
-
#. type: Plain text
#: build/C/man3/scanf.3:55
msgid ""
#. type: Plain text
#: build/C/man3/scanf.3:220
-#, fuzzy
-#| msgid ""
-#| "An optional \\(aqa\\(aq character. This is used with string conversions, "
-#| "and relieves the caller of the need to allocate a corresponding buffer to "
-#| "hold the input: instead, B<scanf>() allocates a buffer of sufficient "
-#| "size, and assigns the address of this buffer to the corresponding "
-#| "I<pointer> argument, which should be a pointer to a I<char *> variable "
-#| "(this variable does not need to be initialized before the call). The "
-#| "caller should subsequently B<free>(3) this buffer when it is no longer "
-#| "required. This is a GNU extension; C99 employs the \\(aqa\\(aq character "
-#| "as a conversion specifier (and it can also be used as such in the GNU "
-#| "implementation)."
msgid ""
"An optional \\(aqm\\(aq character. This is used with string conversions (I<"
"%s>, I<%c>, I<%[>), and relieves the caller of the need to allocate a "
"corresponding buffer to hold the input: instead, B<scanf>() allocates a "
"buffer of sufficient size, and assigns the address of this buffer to the "
-"corresponding I<pointer> argument, which should be a pointer to a I<char *> "
-"variable (this variable does not need to be initialized before the call). "
-"The caller should subsequently B<free>(3) this buffer when it is no longer "
-"required."
+"corresponding I<pointer> argument, which should be a pointer to a I<char\\ "
+"*> variable (this variable does not need to be initialized before the "
+"call). The caller should subsequently B<free>(3) this buffer when it is no "
+"longer required."
msgstr ""
-"文字 \\(aqa\\(aq (省略可能)。これは文字列変換とともに使用され、これを使うと "
-"呼び出し元が入力を保持する対応するバッファを確保する必要がなくなる。 代わり"
-"に B<scanf>() が必要な大きさのバッファを確保し、このバッファのアドレスを 対"
-"応する I<pointer> 引き数に代入する。 I<pointer> 引き数は I<char *> 型の変数へ"
-"のポインタでなければならない (変数自体は呼び出し前に初期化されている必要はな"
-"い)。 呼び出し元は、不要になった時点で、このバッファを B<free>(3) すべきであ"
-"る。この機能は GNU による拡張である。 C99 は \\(aqa\\(aq 文字を変換指定として"
-"使用している (こちらも GNU の実装と同じように使用することができる)。"
+"文字 \\(aqm\\(aq (省略可能)。これは文字列変換 (I<%s>, I<%c>, I<%[>) とともに"
+"使用され、これを使うと 呼び出し元が入力を保持する対応するバッファを確保する必"
+"要がなくなる。 代わりに B<scanf>() が必要な大きさのバッファを確保し、この"
+"バッファのアドレスを 対応する I<pointer> 引き数に代入する。 I<pointer> 引き数"
+"は I<char\\ *> 型の変数へのポインタでなければならない (変数自体は呼び出し前に"
+"初期化されている必要はない)。 呼び出し元は、不要になった時点で、このバッファ"
+"を B<free>(3) すべきである。"
#. type: Plain text
#: build/C/man3/scanf.3:232
"beginning with \\(aq%\\(aq or beginning with \"B<%>I<n>B<$>\". The two "
"forms should not be mixed in the same I<format> string, except that a string "
"containing \"B<%>I<n>B<$>\" specifications can include B<%%> and B<%*>. If "
-"I<format> contains \\(aq%\\(aq specifications then these correspond in order "
-"with successive I<pointer> arguments. In the \"B<%>I<n>B<$>\" form (which "
-"is specified in POSIX.1-2001, but not C99), I<n> is a decimal integer that "
-"specifies that the converted input should be placed in the location referred "
-"to by the I<n>-th I<pointer> argument following I<format>."
+"I<format> contains \\(aq%\\(aq specifications, then these correspond in "
+"order with successive I<pointer> arguments. In the \"B<%>I<n>B<$>\" form "
+"(which is specified in POSIX.1-2001, but not C99), I<n> is a decimal integer "
+"that specifies that the converted input should be placed in the location "
+"referred to by the I<n>-th I<pointer> argument following I<format>."
msgstr ""
"I<format> 中の変換指定は、\\(aq%\\(aq で始まるか、 \"B<%>I<n>B<$>\" で始まる"
"かの、いずれかの形式である。 これら 2つの形式を同じ I<format> 文字列に混ぜる"
"I<unsigned long int> (rather than I<int>), or that the conversion will be "
"one of B<e>, B<f>, or B<g> and the next pointer is a pointer to I<double> "
"(rather than I<float>). Specifying two B<l> characters is equivalent to "
-"B<L>. If used with B<%c> or B<%s> the corresponding parameter is considered "
-"as a pointer to a wide character or wide-character string respectively."
+"B<L>. If used with B<%c> or B<%s>, the corresponding parameter is "
+"considered as a pointer to a wide character or wide-character string "
+"respectively."
msgstr ""
"変換が B<d>, B<i>, B<o>, B<u>, B<x>, B<X>, B<n> か B<n> のいずれかであり次の"
"ポインタが (I<int> ではなく) I<long int> か I<unsigned long int> へのポイン"
"フィールド幅に 達するか、のどちらかが起こると停止される。"
#. type: Plain text
-#: build/C/man3/scanf.3:470
+#: build/C/man3/scanf.3:469
msgid ""
"Matches a sequence of characters whose length is specified by the I<maximum "
"field width> (default 1); the next pointer must be a pointer to I<char>, and "
"すためには、 フォーマット文の中で明示的にスペースを使用すれば良い。"
#. type: TP
-#: build/C/man3/scanf.3:470
+#: build/C/man3/scanf.3:469
#, no-wrap
msgid "B<\\&[>"
msgstr "B<\\&[>"
#. type: Plain text
-#: build/C/man3/scanf.3:503
+#: build/C/man3/scanf.3:502
msgid ""
"Matches a nonempty sequence of characters from the specified set of accepted "
"characters; the next pointer must be a pointer to I<char>, and there must be "
"文字の 出現または確保された領域が使い切られた時に終了する。"
#. type: Plain text
-#: build/C/man3/scanf.3:511
+#: build/C/man3/scanf.3:510
msgid ""
"Matches a pointer value (as printed by B<%p> in B<printf>(3); the next "
"pointer must be a pointer to a pointer to I<void>."
"タは I<void> へのポインタへのポインタでなければならない。"
#. type: Plain text
-#: build/C/man3/scanf.3:531
+#: build/C/man3/scanf.3:530
msgid ""
"Nothing is expected; instead, the number of characters consumed thus far "
"from the input is stored through the next pointer, which must be a pointer "
"が返り値に与える影響についてはどのような仮定もしないのが 賢明であろう。"
#. type: Plain text
-#: build/C/man3/scanf.3:536
+#: build/C/man3/scanf.3:535
msgid ""
"These functions return the number of input items successfully matched and "
"assigned, which can be fewer than provided for, or even zero in the event of "
"ることもある。"
#. type: Plain text
-#: build/C/man3/scanf.3:548
+#: build/C/man3/scanf.3:547
msgid ""
"The value B<EOF> is returned if the end of input is reached before either "
"the first successful conversion or a matching failure occurs. B<EOF> is "
"(B<ferror>(3) 参照)、 I<errno> にエラーを示す値がセットされる。"
#. type: Plain text
-#: build/C/man3/scanf.3:554
+#: build/C/man3/scanf.3:553
msgid ""
"The file descriptor underlying I<stream> is marked nonblocking, and the read "
"operation would block."
"込み操作は停止 (block) することになる。"
#. type: Plain text
-#: build/C/man3/scanf.3:559
+#: build/C/man3/scanf.3:558
msgid ""
"The file descriptor underlying I<stream> is invalid, or not open for reading."
msgstr ""
"ンされていない。"
#. type: Plain text
-#: build/C/man3/scanf.3:562
+#: build/C/man3/scanf.3:561
msgid "Input byte sequence does not form a valid character."
msgstr "入力されたバイト列が有効な文字を構成していない。"
#. type: Plain text
-#: build/C/man3/scanf.3:566
+#: build/C/man3/scanf.3:565
msgid "The read operation was interrupted by a signal; see B<signal>(7)."
msgstr "読み込み操作がシグナルにより割り込まれた。 B<signal>(7) 参照。"
#. type: Plain text
-#: build/C/man3/scanf.3:571
+#: build/C/man3/scanf.3:570
msgid "Not enough arguments; or I<format> is NULL."
msgstr "引き数が十分でない。または I<format> が NULL である。"
#. type: Plain text
-#: build/C/man3/scanf.3:574
+#: build/C/man3/scanf.3:573
msgid "Out of memory."
msgstr "メモリ不足。"
#. type: TP
-#: build/C/man3/scanf.3:574
+#: build/C/man3/scanf.3:573
#, no-wrap
msgid "B<ERANGE>"
msgstr "B<ERANGE>"
#. type: Plain text
-#: build/C/man3/scanf.3:578
+#: build/C/man3/scanf.3:577
msgid ""
"The result of an integer conversion would exceed the size that can be stored "
"in the corresponding integer type."
msgstr "整数変換の結果が、対応する整数型に格納できるサイズを越えてしまう。"
#. type: Plain text
-#: build/C/man3/scanf.3:588
+#: build/C/man3/scanf.3:587
msgid ""
"The functions B<fscanf>(), B<scanf>(), and B<sscanf>() conform to C89 and "
"C99 and POSIX.1-2001. These standards do not specify the B<ERANGE> error."
"ている。 これらの標準では、エラー B<ERANGE> は規定されていない。"
#. type: Plain text
-#: build/C/man3/scanf.3:598
+#: build/C/man3/scanf.3:597
msgid ""
"The B<q> specifier is the 4.4BSD notation for I<long long>, while B<ll> or "
"the usage of B<L> in integer conversions is the GNU notation."
"B<ll> または B<L> の使用は GNU での拡張である。"
#. type: Plain text
-#: build/C/man3/scanf.3:609
+#: build/C/man3/scanf.3:608
msgid ""
"The Linux version of these functions is based on the I<GNU> I<libio> "
"library. Take a look at the I<info> documentation of I<GNU> I<libc "
"これらの関数の Linux 版は I<GNU> I<libio> ライブラリーを元にしている。 より簡"
"潔な説明には I<GNU> I<libc (glibc-1.08)> の I<info> 文書に目を通すこと。"
+#. type: SS
+#: build/C/man3/scanf.3:609
+#, no-wrap
+msgid "The 'a' assignment-allocation modifier"
+msgstr "'a' 代入割り当て (assignment-allocation) 修飾子"
+
#. type: Plain text
-#: build/C/man3/scanf.3:615
+#: build/C/man3/scanf.3:620
msgid ""
-"The GNU C library supported the dynamic allocation conversion specifier (as "
-"a nonstandard extension) via the B<a> character. This feature seems to be "
-"present at least as far back as glibc 2.0."
+"Originally, the GNU C library supported dynamic allocation for string inputs "
+"(as a nonstandard extension) via the B<a> character. (This feature is "
+"present at least as far back as glibc 2.0.) Thus, one could write the "
+"following to have B<scanf>() allocate a buffer for an input string, with a "
+"pointer to that buffer being returned in I<*buf>:"
msgstr ""
+"元々、 GNU C ライブラリ (glibc) では、 B<a> 文字による文字列入力に対する動的"
+"割り当て変換指定子 (dynamic allocation conversion specifier) を (非標準の拡張"
+"として) サポートしている。この機能は少なくとも glibc 2.0 の時点ではすでに存在"
+"している。 したがって、以下のようにして、 B<scanf>() に入力文字列に対してバッ"
+"ファを割り当てさせることができる。割り当てられたバッファは I<*buf> で返され"
+"る。"
#. type: Plain text
-#: build/C/man3/scanf.3:625
-#, fuzzy
-#| msgid ""
-#| "The B<a> modifier is not available if the program is compiled with I<gcc -"
-#| "std=c99> or I<gcc -D_ISOC99_SOURCE> (unless B<_GNU_SOURCE> is also "
-#| "specified), in which case the B<a> is interpreted as a specifier for "
-#| "floating-point numbers (see above)."
+#: build/C/man3/scanf.3:623
+#, no-wrap
msgid ""
-"It is not available if the program is compiled with I<gcc -std=c99> or I<gcc "
-"-D_ISOC99_SOURCE> (unless B<_GNU_SOURCE> is also specified), in which case "
-"the B<a> is interpreted as a specifier for floating-point numbers (see "
-"above)."
+" char *buf;\n"
+" scanf(\"%as\", &buf);\n"
msgstr ""
-"I<gcc -std=c99> や I<gcc -D_ISOC99_SOURCE> でコンパイルしたプログラムでは "
-"(B<_GNU_SOURCE> も同時に指定していない場合)、 B<a> 修飾子は利用できない。 上"
-"記の場合、 B<a> は (上述の通り) 浮動小数点数を示す変換指定子と解釈される。"
+" char *buf;\n"
+" scanf(\"%as\", &buf);\n"
#. type: Plain text
#: build/C/man3/scanf.3:634
msgid ""
-"Since version 2.7, glibc also provides the B<m> modifier for the same "
-"purpose as the B<a> modifier. The B<m> modifier has the following "
-"advantages:"
+"The use of the letter B<a> for this purpose was problematic, since B<a> is "
+"also specified by the ISO C standard as a synonym for B<f> (floating-point "
+"input). POSIX.1-2008 instead specifies the B<m> modifier for assignment "
+"allocation (as documented in DESCRIPTION, above)."
msgstr ""
-"バージョン 2.7 以降では、glibc は B<a> 修飾子と同じ目的で B<m> 修飾子も提供し"
-"ている。 B<m> 修飾子は以下の利点がある。"
+"この目的で文字 B<a> を使うのは問題をはらんでいる。 なぜなら、 B<a> は ISO C "
+"標準では (浮動小数点入力を表す) の B<f> の同義語として定義されているからであ"
+"る。 その代わり、 POSIX.1-2008 では、(上記の「説明」に書かれている通り) 代入"
+"割り当てを行う修飾子として B<m> が規定されている。"
#. type: Plain text
-#: build/C/man3/scanf.3:639
+#: build/C/man3/scanf.3:646
+msgid ""
+"Note that the B<a> modifier is not available if the program is compiled with "
+"I<gcc -std=c99> or I<gcc -D_ISOC99_SOURCE> (unless B<_GNU_SOURCE> is also "
+"specified), in which case the B<a> is interpreted as a specifier for "
+"floating-point numbers (see above)."
+msgstr ""
+"B<a> 修飾子は I<gcc -std=c99> や I<gcc -D_ISOC99_SOURCE> でコンパイルしたプロ"
+"グラムでは (B<_GNU_SOURCE> も同時に指定していない場合) 利用できない点に注意。"
+"この場合、 B<a> は (上述の通り) 浮動小数点数を示す変換指定子と解釈される。"
+
+#. type: Plain text
+#: build/C/man3/scanf.3:652
+msgid ""
+"Support for the B<m> modifier was added to glibc starting with version 2.7, "
+"and new programs should use that modifier instead of B<a>."
+msgstr ""
+"B<m> 修飾子への対応はバージョン 2.7 以降の glibc で追加されている。新しいプロ"
+"グラムでぇあ B<a> の代わりに B<m> を使用すべきである。"
+
+#. type: Plain text
+#: build/C/man3/scanf.3:658
+msgid ""
+"As well as being standardized by POSIX, the B<m> modifier has the following "
+"further advantages over the use of B<a:>"
+msgstr ""
+"POSIX で標準化されているだけでなく、 B<m> 修飾子には B<a> を利用する場合に比"
+"べて以下のような利点がある。"
+
+#. type: Plain text
+#: build/C/man3/scanf.3:663
msgid "It may also be applied to B<%c> conversion specifiers (e.g., B<%3mc>)."
msgstr "B<%c> 変換指定子にも適用できる (例えば B<%3mc>)。"
#. type: Plain text
-#: build/C/man3/scanf.3:645
+#: build/C/man3/scanf.3:669
msgid ""
"It avoids ambiguity with respect to the B<%a> floating-point conversion "
-"specifier (and is unaffected by I<gcc -std=c99> etc.)"
+"specifier (and is unaffected by I<gcc -std=c99> etc.)."
msgstr ""
"浮動小数点変換指定子としての B<%a> との紛らわしさが避けられる (また I<gcc -"
"std=c99> などの影響も避けられる)。"
#. type: Plain text
-#: build/C/man3/scanf.3:647
-#, fuzzy
-#| msgid "It is specified in the upcoming revision of the POSIX.1 standard."
-msgid "It is specified in the POSIX.1-2008 standard."
-msgstr "POSIX.1 標準の次の改訂版で規定される。"
-
-#. type: Plain text
-#: build/C/man3/scanf.3:660
+#: build/C/man3/scanf.3:682
msgid ""
"All functions are fully C89 conformant, but provide the additional "
"specifiers B<q> and B<a> as well as an additional behavior of the B<L> and "
"れない。"
#. type: Plain text
-#: build/C/man3/scanf.3:676
+#: build/C/man3/scanf.3:698
msgid ""
"Some combinations of the type modifiers and conversion specifiers defined by "
"ANSI C do not make sense (e.g., B<%Ld>). While they may have a well-defined "
"と組み合わせる場合には、 B<L> の代わりに B<q> を使用した方が良い。"
#. type: Plain text
-#: build/C/man3/scanf.3:682
+#: build/C/man3/scanf.3:704
msgid ""
"The usage of B<q> is not the same as on 4.4BSD, as it may be used in float "
"conversions equivalently to B<L>."
"動小数の変換に使用される。"
#. type: Plain text
-#: build/C/man3/scanf.3:692
-#, fuzzy
-#| msgid ""
-#| "The GNU C library supports a nonstandard extension that causes the "
-#| "library to dynamically allocate a string of sufficient size for input "
-#| "strings for the B<%s> and B<%a[>I<range>B<]> conversion specifiers. To "
-#| "make use of this feature, specify B<a> as a length modifier (thus B<%as> "
-#| "or B<%a[>I<range>B<]>). The caller must B<free>(3) the returned string, "
-#| "as in the following example:"
+#: build/C/man3/scanf.3:714
msgid ""
"To use the dynamic allocation conversion specifier, specify B<m> as a length "
"modifier (thus B<%ms> or B<%m[>I<range>B<]>). The caller must B<free>(3) "
"the returned string, as in the following example:"
msgstr ""
-"GNU C ライブラリ (glibc) では非標準のオプションをサポートしており、 このオプ"
-"ションを使うと変換指定子 B<%s> や B<%a[>I<range>B<]> への入力文字列に対して十"
-"分な大きさの文字列をライブラリが動的に確保する ようになる。 この機能を使用す"
-"るには、長さ修飾子として B<a> を指定する (したがって、全体としては B<%as> や "
-"B<%a[>I<range>B<]> となる)。 以下の例にあるように、呼び出し側は返された文字列"
-"を B<free>(3) しなければならない。"
+"動的割り当て変換指定子を使用するには、長さ修飾子として B<m> を指定する (つま"
+"り、全体としては B<%ms> や B<%m[>I<range>B<]> となる)。以下の例にあるように、"
+"呼び出し側は返された文字列を B<free>(3) しなければならない。"
#. type: Plain text
-#: build/C/man3/scanf.3:697
+#: build/C/man3/scanf.3:719
#, no-wrap
msgid ""
"char *p;\n"
"int n;\n"
#. type: Plain text
-#: build/C/man3/scanf.3:708
-#, fuzzy, no-wrap
-#| msgid ""
-#| "errno = 0;\n"
-#| "n = scanf(\"%a[a-z]\", &p);\n"
-#| "if (n == 1) {\n"
-#| " printf(\"read: %s\\en\", p);\n"
-#| " free(p);\n"
-#| "} else if (errno != 0) {\n"
-#| " perror(\"scanf\");\n"
-#| "} else {\n"
-#| " fprintf(stderr, \"No matching characters\\en\");\n"
-#| "}\n"
+#: build/C/man3/scanf.3:730
+#, no-wrap
msgid ""
"errno = 0;\n"
"n = scanf(\"%m[a-z]\", &p);\n"
"}\n"
msgstr ""
"errno = 0;\n"
-"n = scanf(\"%a[a-z]\", &p);\n"
+"n = scanf(\"%m[a-z]\", &p);\n"
"if (n == 1) {\n"
" printf(\"read: %s\\en\", p);\n"
" free(p);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/scanf.3:716
+#: build/C/man3/scanf.3:738
msgid ""
-"As shown in the above example, it is only necessary to call B<free>(3) if "
+"As shown in the above example, it is necessary to call B<free>(3) only if "
"the B<scanf>() call successfully read a string."
msgstr ""
"上記の例にあるように、 B<scanf>() が文字列の読み込みに成功した場合にだけ、 "
"B<free>(3) を呼び出す必要がある。"
#. type: Plain text
-#: build/C/man3/scanf.3:723
+#: build/C/man3/scanf.3:745
msgid ""
"B<getc>(3), B<printf>(3), B<setlocale>(3), B<strtod>(3), B<strtol>(3), "
"B<strtoul>(3)"
#. type: TH
#: build/C/man3/setbuf.3:48
-#, fuzzy, no-wrap
-#| msgid "2012-04-30"
-msgid "2012-08-03"
-msgstr "2012-04-30"
+#, no-wrap
+msgid "2014-02-18"
+msgstr "2014-02-18"
#. type: Plain text
#: build/C/man3/setbuf.3:51
"The function B<fflush>(3) may be used to force the block out early. (See "
"B<fclose>(3).) Normally all files are block buffered. When the first I/O "
"operation occurs on a file, B<malloc>(3) is called, and a buffer is "
-"obtained. If a stream refers to a terminal (as I<stdout> normally does) it "
+"obtained. If a stream refers to a terminal (as I<stdout> normally does), it "
"is line buffered. The standard error stream I<stderr> is always unbuffered "
"by default."
msgstr ""
"least I<size> bytes long; this buffer will be used instead of the current "
"buffer. If the argument I<buf> is NULL, only the mode is affected; a new "
"buffer will be allocated on the next read or write operation. The B<setvbuf>"
-"() function may only be used after opening a stream and before any other "
+"() function may be used only after opening a stream and before any other "
"operations have been performed on it."
msgstr ""
"unbuffered のファイルを除き、 I<buf> 引数は I<size> バイト以上の大きさのバッ"
#. type: Plain text
#: build/C/man3/setbuf.3:151
-#, fuzzy
-#| msgid "setvbuf(stream, (char *) NULL, _IOLBF, 0);"
msgid "setvbuf(stream, NULL, _IOLBF, 0);"
-msgstr "setvbuf(stream, (char *) NULL, _IOLBF, 0);"
+msgstr "setvbuf(stream, NULL, _IOLBF, 0);"
#. type: Plain text
#: build/C/man3/setbuf.3:162
msgstr "その他の関数は値を返さない。"
#. type: Plain text
-#: build/C/man3/setbuf.3:170
+#: build/C/man3/setbuf.3:173
+msgid ""
+"The B<setbuf>(), B<setbuffer>(), B<setlinebuf>(), and B<setvbuf>() "
+"functions are thread-safe."
+msgstr ""
+"関数 B<setbuf>(), B<setbuffer>(), B<setlinebuf>(), B<setvbuf>() はスレッド"
+"セーフである。"
+
+#. type: Plain text
+#: build/C/man3/setbuf.3:179
msgid "The B<setbuf>() and B<setvbuf>() functions conform to C89 and C99."
msgstr ""
"B<setbuf>() 関数および B<setvbuf>() 関数は C89 と C99 に準拠している。"
#. type: Plain text
-#: build/C/man3/setbuf.3:180
+#: build/C/man3/setbuf.3:189
msgid ""
"The B<setbuffer>() and B<setlinebuf>() functions are not portable to "
"versions of BSD before 4.2BSD, and are available under Linux since libc "
"ズを使用するので、これも使うべきでない。"
#. type: Plain text
-#: build/C/man3/setbuf.3:187
+#: build/C/man3/setbuf.3:196
msgid ""
"You must make sure that the space that I<buf> points to still exists by the "
"time I<stream> is closed, which also happens at program termination. For "
"な使い方は許されない:"
#. type: Plain text
-#: build/C/man3/setbuf.3:190
+#: build/C/man3/setbuf.3:199
#, no-wrap
msgid "#include E<lt>stdio.hE<gt>\n"
msgstr "#include E<lt>stdio.hE<gt>\n"
#. type: Plain text
-#: build/C/man3/setbuf.3:199
+#: build/C/man3/setbuf.3:208
#, no-wrap
msgid ""
"int\n"
"}\n"
#. type: Plain text
-#: build/C/man3/setbuf.3:208
+#: build/C/man3/setbuf.3:217
msgid ""
"B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), B<printf>"
"(3), B<puts>(3)"
"device) by I<opening> a file, which may involve creating a new file. "
"Creating an existing file causes its former contents to be discarded. If a "
"file can support positioning requests (such as a disk file, as opposed to a "
-"terminal) then a I<file position indicator> associated with the stream is "
+"terminal), then a I<file position indicator> associated with the stream is "
"positioned at the start of the file (byte zero), unless the file is opened "
"with append mode. If append mode is used, it is unspecified whether the "
"position indicator will be placed at the start or the end of the file. The "
#. type: Plain text
#: build/C/man3/stdio.3:119
-#, fuzzy
-#| msgid ""
-#| "At program startup, three text streams are predefined and need not be "
-#| "opened explicitly: I<standard input> (for reading conventional input), "
-#| "I<standard output> (for writing conventional input), and I<standard "
-#| "error> (for writing diagnostic output). These streams are abbreviated "
-#| "I<stdin>,I<stdout> and I<stderr>. When opened, the standard error stream "
-#| "is not fully buffered; the standard input and output streams are fully "
-#| "buffered if and only if the streams do not to refer to an interactive "
-#| "device."
msgid ""
"At program startup, three text streams are predefined and need not be opened "
"explicitly: I<standard input> (for reading conventional input), I<standard "
#. type: SS
#: build/C/man3/stdio.3:183
-#, fuzzy, no-wrap
-#| msgid "List of Functions"
+#, no-wrap
msgid "List of functions"
msgstr "関数のリスト"
msgid "STDIO_EXT"
msgstr "STDIO_EXT"
-#. type: TH
-#: build/C/man3/stdio_ext.3:25
-#, no-wrap
-msgid "2001-12-16"
-msgstr "2001-12-16"
-
#. type: Plain text
#: build/C/man3/stdio_ext.3:30
msgid ""
msgstr "B<__fpurge>() 関数は、ストリームのバッファの内容を廃棄する。"
#. type: Plain text
-#: build/C/man3/stdio_ext.3:135
+#: build/C/man3/stdio_ext.3:141
+msgid ""
+"The B<__fbufsize>(), B<__fpending>(), B<__fpurge>() and B<__fsetlocking>() "
+"functions do not lock the stream, so they are not thread-safe."
+msgstr ""
+"関数 B<__fbufsize>(), B<__fpending>(), B<__fpurge>(), B<__fsetlocking>() "
+"は、 ストリームのロックを行わない。 そのため、スレッドセーフではない。"
+
+#. type: Plain text
+#: build/C/man3/stdio_ext.3:151
+msgid ""
+"The B<__flbf>(), B<__freadable>(), B<__freading>(), B<__fwritable>(), "
+"B<__fwriting>() and B<_flushlbf>() functions are thread-safe."
+msgstr ""
+"関数 B<__flbf>(), B<__freadable>(), B<__freading>(), B<__fwritable>(), "
+"B<__fwriting>(), B<_flushlbf>() はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/stdio_ext.3:154
msgid "B<flockfile>(3), B<fpurge>(3)"
msgstr "B<flockfile>(3), B<fpurge>(3)"
#. type: TH
-#: build/C/man2/symlink.2:32 build/C/man7/symlink.7:36
+#: build/C/man2/symlink.2:33 build/C/man7/symlink.7:37
#, no-wrap
msgid "SYMLINK"
msgstr "SYMLINK"
#. type: Plain text
-#: build/C/man2/symlink.2:35
-msgid "symlink - make a new name for a file"
-msgstr "symlink - ファイルに新しい名前を付ける"
+#: build/C/man2/symlink.2:36
+msgid "symlink, symlinkat - make a new name for a file"
+msgstr "symlink, symlinkat - ファイルに新しい名前を付ける"
#. type: Plain text
-#: build/C/man2/symlink.2:39
-msgid "B<int symlink(const char *>I<oldpath>B<, const char *>I<newpath>B<);>"
-msgstr "B<int symlink(const char *>I<oldpath>B<, const char *>I<newpath>B<);>"
+#: build/C/man2/symlink.2:41
+#, no-wrap
+msgid "B<int symlink(const char *>I<target>B<, const char *>I<linkpath>B<);>\n"
+msgstr "B<int symlink(const char *>I<target>B<, const char *>I<linkpath>B<);>\n"
#. type: Plain text
#: build/C/man2/symlink.2:47
+#, no-wrap
+msgid "B<int symlinkat(const char *>I<target>B<, int >I<newdirfd>B<, const char *>I<linkpath>B<);>\n"
+msgstr "B<int symlinkat(const char *>I<target>B<, int >I<newdirfd>B<, const char *>I<linkpath>B<);>\n"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:56
msgid "B<symlink>():"
msgstr "B<symlink>():"
#. type: Plain text
-#: build/C/man2/symlink.2:58
+#: build/C/man2/symlink.2:62
+msgid "B<symlinkat>():"
+msgstr "B<symlinkat>():"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:80
msgid ""
-"B<symlink>() creates a symbolic link named I<newpath> which contains the "
-"string I<oldpath>."
+"B<symlink>() creates a symbolic link named I<linkpath> which contains the "
+"string I<target>."
msgstr ""
-"B<symlink>() は I<oldpath> という文字列をファイルの内容として持つ "
-"I<newpath> というシンボリックリンク (symbolic link) を作成する。"
+"B<symlink>() は I<target> という文字列をファイルの内容として持つ "
+"I<linkpath> というシンボリックリンク (symbolic link) を作成する。"
#. type: Plain text
-#: build/C/man2/symlink.2:62
+#: build/C/man2/symlink.2:84
msgid ""
"Symbolic links are interpreted at run time as if the contents of the link "
"had been substituted into the path being followed to find a file or "
"スを辿ることで、 ファイルやディレクトリに到達する。"
#. type: Plain text
-#: build/C/man2/symlink.2:67
+#: build/C/man2/symlink.2:89
msgid ""
"Symbolic links may contain I<..> path components, which (if used at the "
"start of the link) refer to the parent directories of that in which the link "
"される。"
#. type: Plain text
-#: build/C/man2/symlink.2:71
+#: build/C/man2/symlink.2:93
msgid ""
"A symbolic link (also known as a soft link) may point to an existing file or "
"to a nonexistent one; the latter case is known as a dangling link."
"の場合は壊れたリンク (dangling link) とも呼ばれる。"
#. type: Plain text
-#: build/C/man2/symlink.2:78
+#: build/C/man2/symlink.2:100
msgid ""
"The permissions of a symbolic link are irrelevant; the ownership is ignored "
"when following the link, but is checked when removal or renaming of the link "
"(B<S_ISVTX>) が設定されている場合には、所有権のチェックが行われる。"
#. type: Plain text
-#: build/C/man2/symlink.2:99
+#: build/C/man2/symlink.2:106
+msgid "If I<linkpath> exists, it will I<not> be overwritten."
+msgstr "I<linkpath> が存在する場合には上書きはI<されない>。"
+
+#. type: SS
+#: build/C/man2/symlink.2:106
+#, no-wrap
+msgid "symlinkat()"
+msgstr "symlinkat()"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:112
+msgid ""
+"The B<symlinkat>() system call operates in exactly the same way as "
+"B<symlink>(), except for the differences described here."
+msgstr ""
+"B<symlinkat>() システムコールは B<symlink>() と全く同様に動作するが、以下で説"
+"明する点が異なる。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:122
+msgid ""
+"If the pathname given in I<linkpath> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<newdirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<symlink>() for a relative pathname)."
+msgstr ""
+"I<linkpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
+"リプター I<newdirfd> が参照するディレクトリに対する相対パスと解釈される "
+"(B<symlink>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
+"ワーキングディレクトリに対する相対パスではない)。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:134
+msgid ""
+"If I<linkpath> is relative and I<newdirfd> is the special value B<AT_FDCWD>, "
+"then I<linkpath> is interpreted relative to the current working directory of "
+"the calling process (like B<symlink>())."
+msgstr ""
+"I<linkpath> で指定されたパス名が相対パスで、 I<newdirfd> が特別な値 "
+"B<AT_FDCWD> の場合、 (B<symlink>() と同様に) I<linkpath> は呼び出したプロセス"
+"のカレントワーキングディレクトリに対する相対パスと解釈される。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:140
+msgid "If I<linkpath> is absolute, then I<newdirfd> is ignored."
+msgstr ""
+"I<linkpath> で指定されたパス名が絶対パスの場合、 I<newdirfd> は無視される。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:155
msgid ""
-"Write access to the directory containing I<newpath> is denied, or one of the "
-"directories in the path prefix of I<newpath> did not allow search "
+"Write access to the directory containing I<linkpath> is denied, or one of "
+"the directories in the path prefix of I<linkpath> did not allow search "
"permission. (See also B<path_resolution>(7).)"
msgstr ""
-"I<newpath> を含んでいるディレクトリへの書き込みが拒否されたか、 I<newpath> に"
-"含まれているディレクトリのどれかに検索許可が与えられていない "
+"I<linkpath> を含んでいるディレクトリへの書き込みが拒否されたか、 I<linkpath> "
+"に含まれているディレクトリのどれかに検索許可が与えられていない "
"(B<path_resolution>(7) も参照すること)。"
#. type: Plain text
-#: build/C/man2/symlink.2:104
+#: build/C/man2/symlink.2:160
msgid ""
-"The user's quota of resources on the file system has been exhausted. The "
-"resources could be inodes or disk blocks, depending on the file system "
+"The user's quota of resources on the filesystem has been exhausted. The "
+"resources could be inodes or disk blocks, depending on the filesystem "
"implementation."
msgstr ""
+"そのファイルシステムのリソース使用量がユーザクォータに達している。対象となる"
+"リソースは inode かディスクブロックで、どちらになるかはファイルシステムの実装"
+"依存である。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:164
+msgid "I<linkpath> already exists."
+msgstr "I<linkpath> が既に存在する。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:167
+msgid "I<target> or I<linkpath> points outside your accessible address space."
+msgstr ""
+"I<target> や I<linkpath> がアクセス可能なアドレス空間の外を指している。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:174
+msgid "Too many symbolic links were encountered in resolving I<linkpath>."
+msgstr "I<linkpath> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
#. type: Plain text
-#: build/C/man2/symlink.2:118
-msgid "Too many symbolic links were encountered in resolving I<newpath>."
-msgstr "I<newpath> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
+#: build/C/man2/symlink.2:177
+msgid "I<target> or I<linkpath> was too long."
+msgstr "I<target> または I<linkpath> が長過ぎる。"
#. type: Plain text
-#: build/C/man2/symlink.2:128
+#: build/C/man2/symlink.2:184
msgid ""
-"A directory component in I<newpath> does not exist or is a dangling symbolic "
-"link, or I<oldpath> is the empty string."
+"A directory component in I<linkpath> does not exist or is a dangling "
+"symbolic link, or I<target> is the empty string."
msgstr ""
-"I<newpath> に含まれるディレクトリ部分が存在しないか、壊れたリンクであるか、 "
-"I<oldpath> が空文字列である。"
+"I<linkpath> に含まれるディレクトリ部分が存在しないか、壊れたリンクであるか、 "
+"I<target> が空文字列である。"
#. type: Plain text
-#: build/C/man2/symlink.2:140
+#: build/C/man2/symlink.2:196
msgid ""
-"A component used as a directory in I<newpath> is not, in fact, a directory."
+"A component used as a directory in I<linkpath> is not, in fact, a directory."
msgstr ""
-"I<newpath> に含まれるディレクトリ部分が、実際には、ディレクトリではない。"
+"I<linkpath> に含まれるディレクトリ部分が、実際には、ディレクトリではない。"
#. type: Plain text
-#: build/C/man2/symlink.2:145
+#: build/C/man2/symlink.2:201
msgid ""
-"The file system containing I<newpath> does not support the creation of "
+"The filesystem containing I<linkpath> does not support the creation of "
"symbolic links."
msgstr ""
-"I<newpath> を含んでいるファイルシステム (file system) が シンボリックリンクの"
-"作成をサポートしていない。"
+"I<linkpath> を含んでいるファイルシステム (file system) が シンボリックリンク"
+"の作成をサポートしていない。"
#. type: Plain text
-#: build/C/man2/symlink.2:149
-msgid "I<newpath> is on a read-only file system."
-msgstr "I<newpath> が読み込み専用のファイルシステムに存在している。"
+#: build/C/man2/symlink.2:205
+msgid "I<linkpath> is on a read-only filesystem."
+msgstr "I<linkpath> が読み込み専用のファイルシステムに存在している。"
#. type: Plain text
-#: build/C/man2/symlink.2:159
-msgid "No checking of I<oldpath> is done."
-msgstr "I<oldpath> についてのチェックは行なわれない。"
+#: build/C/man2/symlink.2:208
+msgid "The following additional errors can occur for B<symlinkat>():"
+msgstr "B<symlinkat>() では以下のエラーも発生する。"
#. type: Plain text
-#: build/C/man2/symlink.2:164
+#: build/C/man2/symlink.2:212
+msgid "I<newdirfd> is not a valid file descriptor."
+msgstr "I<newdirfd> が有効なファイルディスクリプタでない。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:218
msgid ""
-"Deleting the name referred to by a symlink will actually delete the file "
-"(unless it also has other hard links). If this behavior is not desired, use "
-"B<link>(2)."
+"I<linkpath> is relative and I<newdirfd> is a file descriptor referring to a "
+"file other than a directory."
msgstr ""
-"symlink によって参照される名前を削除すると (それが他にハードリンク (hard "
-"link) を持たなければ) 実際にファイルが削除される。 この動作が望んだものでない"
-"場合は、 B<link>(2) を使用すること。"
+"I<linkpath> が相対パスで、 I<newdirfd> がディレクトリ以外のファイルを参照して"
+"いるファイルディスクリプタである。"
#. type: Plain text
-#: build/C/man2/symlink.2:176
+#: build/C/man2/symlink.2:222
msgid ""
-"B<ln>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<open>(2), B<readlink>(2), "
-"B<rename>(2), B<symlinkat>(2), B<unlink>(2), B<path_resolution>(7), "
-"B<symlink>(7)"
+"B<symlinkat>() was added to Linux in kernel 2.6.16; library support was "
+"added to glibc in version 2.4."
msgstr ""
-"B<ln>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<open>(2), B<readlink>(2), "
-"B<rename>(2), B<symlinkat>(2), B<unlink>(2), B<path_resolution>(7), "
-"B<symlink>(7)"
+"B<symlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
+"ポートはバージョン 2.4 で glibc に追加された。"
-#. type: TH
-#: build/C/man7/symlink.7:36
-#, no-wrap
-msgid "2008-06-18"
-msgstr "2008-06-18"
+#. SVr4 documents additional error codes EDQUOT and ENOSYS.
+#. See
+#. .BR open (2)
+#. re multiple files with the same name, and NFS.
+#. type: Plain text
+#: build/C/man2/symlink.2:229
+msgid "B<symlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
+msgstr "B<symlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
#. type: Plain text
-#: build/C/man7/symlink.7:39
-msgid "symlink - symbolic link handling"
+#: build/C/man2/symlink.2:232
+msgid "B<symlinkat>(): POSIX.1-2008."
+msgstr "B<symlinkat>(): POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/symlink.2:236
+msgid "No checking of I<target> is done."
+msgstr "I<target> についてのチェックは行なわれない。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:241
+msgid ""
+"Deleting the name referred to by a symbolic link will actually delete the "
+"file (unless it also has other hard links). If this behavior is not "
+"desired, use B<link>(2)."
msgstr ""
+"シンボリックリンクによって参照される名前を削除すると (それが他にハードリンク "
+"(hard link) を持たなければ) 実際にファイルが削除される。 この動作が望んだもの"
+"でない場合は、 B<link>(2) を使用すること。"
-#. type: SH
-#: build/C/man7/symlink.7:39
-#, no-wrap
-msgid "SYMBOLIC LINK HANDLING"
+#. type: Plain text
+#: build/C/man2/symlink.2:252
+msgid ""
+"B<ln>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<open>(2), B<readlink>(2), "
+"B<rename>(2), B<unlink>(2), B<path_resolution>(7), B<symlink>(7)"
msgstr ""
+"B<ln>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<open>(2), B<readlink>(2), "
+"B<rename>(2), B<unlink>(2), B<path_resolution>(7), B<symlink>(7)"
+
+#. type: Plain text
+#: build/C/man7/symlink.7:40
+msgid "symlink - symbolic link handling"
+msgstr "symlink - シンボリックリンクの取り扱い"
#. type: Plain text
-#: build/C/man7/symlink.7:43
+#: build/C/man7/symlink.7:44
msgid ""
"Symbolic links are files that act as pointers to other files. To understand "
"their behavior, you must first understand how hard links work."
msgstr ""
+"シンボリックリンクは他のファイルへのポインタとして振る舞うファイルである。 そ"
+"の挙動を理解するには、まずハードリンクがどのように機能するかを理解しておかな"
+"ければならない。"
#. type: Plain text
-#: build/C/man7/symlink.7:59
+#: build/C/man7/symlink.7:60
msgid ""
"A hard link to a file is indistinguishable from the original file because it "
"is a reference to the object underlying the original filename. (To be "
"precise: each of the hard links to a file is a reference to the same I<i-"
"node number>, where an i-node number is an index into the i-node table, "
-"which contains metadata about all files on a file system. See B<stat>(2).) "
+"which contains metadata about all files on a filesystem. See B<stat>(2).) "
"Changes to a file are independent of the name used to reference the file. "
"Hard links may not refer to directories (to prevent the possibility of loops "
-"within the file system tree, which would confuse many programs) and may not "
-"refer to files on different file systems (because i-node numbers are not "
-"unique across file systems)."
+"within the filesystem tree, which would confuse many programs) and may not "
+"refer to files on different filesystems (because i-node numbers are not "
+"unique across filesystems)."
msgstr ""
+"あるファイルへのハードリンクは、 元々のファイルと区別することができない。 な"
+"ぜなら、 ハードリンクは元々のファイル名の裏にあるオブジェクトへの参照だからで"
+"ある。 (より正確には、 あるファイルへのハードリンクはそれぞれ同じ I<i-node 番"
+"号> への参照である。 i-node 番号は i-node テーブルへのインデックスで、 i-"
+"node テーブルはファイルシステム上のすべてのファイルについてのメタデータを保持"
+"している。 B<stat>(2) 参照。) ファイルへの変更は、ファイルの参照に使用された"
+"名前とは独立に行われる。 ハードリンクはディレクトリを参照することはできない "
+"(これはファイルシステムツリー内でループが発生する可能性を防止するためであ"
+"り、 ループが発生すると、 多くのプログラムが混乱してしまうことだろう)。 ま"
+"た、 ハードリンクは異なるファイルシステム上のファイルを参照することもできな"
+"い (i-node 番号はファイルシステムをまたがると一意ではないからである)。"
#. type: Plain text
-#: build/C/man7/symlink.7:66
+#: build/C/man7/symlink.7:69
msgid ""
"A symbolic link is a special type of file whose contents are a string that "
-"is the pathname another file, the file to which the link refers. In other "
+"is the pathname of another file, the file to which the link refers. (The "
+"contents of a symbolic link can be read using B<readlink>(2).) In other "
"words, a symbolic link is a pointer to another name, and not to an "
"underlying object. For this reason, symbolic links may refer to directories "
-"and may cross file system boundaries."
+"and may cross filesystem boundaries."
msgstr ""
+"シンボリックリンクは特別な種類のファイルで、 ファイルの内容はそのリンクの参照"
+"先の別のファイルのパス名を示す文字列である (シンボリックリンクの内容は "
+"B<readlink>(2) を使って読むことができる)。 言い換えると、 シンボリックリンク"
+"は別の名前へのポインタであり、 ファイルの裏にあるオブジェクトへのポインタでは"
+"ない。 この理由から、 シンボリックリンクではディレクトリへの参照やファイルシ"
+"ステム境界を越える参照を行うことができる。"
#. type: Plain text
-#: build/C/man7/symlink.7:72
+#: build/C/man7/symlink.7:75
msgid ""
"There is no requirement that the pathname referred to by a symbolic link "
"should exist. A symbolic link that refers to a pathname that does not exist "
"is said to be a I<dangling link>."
msgstr ""
+"シンボリックリンクが参照する先のパス名が存在しないといけないという要件はな"
+"い。 存在しないパス名を参照するシンボリックリンクは「壊れた (dangling) リン"
+"ク」と呼ばれる。"
#. type: Plain text
-#: build/C/man7/symlink.7:84
+#: build/C/man7/symlink.7:87
msgid ""
-"Because a symbolic link and its referenced object coexist in the file system "
+"Because a symbolic link and its referenced object coexist in the filesystem "
"name space, confusion can arise in distinguishing between the link itself "
"and the referenced object. On historical systems, commands and system calls "
"adopted their own link-following conventions in a somewhat ad-hoc fashion. "
"applications also conform to these rules, so that the user interface can be "
"as consistent as possible."
msgstr ""
+"シンボリックリンクとその参照先のオブジェクトは一つのファイルシステムの名前空"
+"間内に共存するので、 リンクそのものと参照先のオブジェクトの間で混乱が生じる可"
+"能性がある。 かなり昔からあるシステムでは、 コマンドやシステムコールはいくら"
+"かアドホックな方法の独自のリンクの辿り方の決まり事を採用している。 ここで"
+"は、 Linux や他のシステムで実装されている、 もっと広く使われている方法のルー"
+"ルについて概要を説明する。 サイト固有のアプリケーションもこれらのルールに準拠"
+"し、 可能な限りユーザインターフェースが一貫したものになるようにすることが重要"
+"である。"
#. type: SS
-#: build/C/man7/symlink.7:84
+#: build/C/man7/symlink.7:87
#, no-wrap
msgid "Symbolic link ownership, permissions, and timestamps"
-msgstr ""
+msgstr "シンボリックリンクの所有権、アクセス許可、タイムスタンプ"
#. type: Plain text
-#: build/C/man7/symlink.7:92
+#: build/C/man7/symlink.7:95
msgid ""
"The owner and group of an existing symbolic link can be changed using "
"B<lchown>(2). The only time that the ownership of a symbolic link matters "
"is when the link is being removed or renamed in a directory that has the "
"sticky bit set (see B<stat>(2))."
msgstr ""
+"既存のシンボリックリンクの所有者とグループは B<lchown>(2) を使って変更するこ"
+"とができる。 シンボリックリンクの所有権が問題となる場面は、 スティッキービッ"
+"ト (B<stat>(2) 参照) がセットされたディレクトリで、 そのリンクの削除や名前の"
+"変更を行おうとしている場合だけである。"
#. type: Plain text
-#: build/C/man7/symlink.7:98
+#: build/C/man7/symlink.7:101
msgid ""
"The last access and last modification timestamps of a symbolic link can be "
"changed using B<utimensat>(2) or B<lutimes>(3)."
msgstr ""
+"シンボリックリンクの最終アクセス時刻と最終修正時刻は B<utimensat>(2) や "
+"B<lutimes>(3) で変更できる。"
#. Linux does not currently implement an lchmod(2).
#. The
#. .BR chown (2)
#. became apparent.
#. type: Plain text
-#: build/C/man7/symlink.7:117
+#: build/C/man7/symlink.7:120
msgid ""
"On Linux, the permissions of a symbolic link are not used in any operations; "
"the permissions are always 0777 (read, write, and execute for all user "
"categories), and can't be changed."
msgstr ""
+"Linux では、シンボリックリンクのアクセス許可 (permission) はどの操作でも使用"
+"されない。 アクセス許可は常に 0777 (すべてのユーザカテゴリにおいて読み出し、"
+"書き込み、実行が可能) で、変更できない。"
#. type: SS
-#: build/C/man7/symlink.7:117
+#: build/C/man7/symlink.7:120
#, no-wrap
-msgid "Handling of symbolic links by system calls and commands"
+msgid "Obtaining a file descriptor that refers to a symbolic link"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/symlink.7:138
+msgid ""
+"Using the combination of the B<O_PATH> and B<O_NOFOLLOW> flags to B<open>"
+"(2) yields a file descriptor that can be passed as the I<dirfd> argument in "
+"system calls such as B<fstatat>(2), B<fchownat>(2), B<fchmodat>(2), B<linkat>"
+"(2), and B<readlinkat>(2), in order to operate on the symbolic link itself "
+"(rather than the file to which it refers)."
+msgstr ""
+"B<open>(2) に B<O_PATH> と B<O_NOFOLLOW> の両方のフラグを指定すると、ファイル"
+"ディスクリプターが得られる。このファイルディスクリプターは B<fstatat>(2), "
+"B<fchownat>(2), B<fchmodat>(2), B<linkat> (2), B<readlinkat>(2) などのシステ"
+"ムコールの I<dirfd> 引き数として渡して、 (シンボリックリンクが参照するファイ"
+"ルではなく) シンボリックリンク自身に対する操作を行うことができる。"
+
+#. type: Plain text
+#: build/C/man7/symlink.7:154
+msgid ""
+"By default (i.e., if the B<AT_SYMLINK_FOLLOW> flag is not specified), if "
+"B<name_to_handle_at>(2) is applied to a symbolic link, it yields a handle "
+"for the symbolic link (rather than the file to which it refers). One can "
+"then obtain a file descriptor for the symbolic link (rather than the file to "
+"which it refers) by specifying the B<O_PATH> flag in a subsequent call to "
+"B<open_by_handle_at>(2). Again, that file descriptor can be used in the "
+"aforementioned system calls to operate on the symbolic link itself."
msgstr ""
+#. type: SS
+#: build/C/man7/symlink.7:154
+#, no-wrap
+msgid "Handling of symbolic links by system calls and commands"
+msgstr "システムコールやコマンドによるシンボリックリンクの取り扱い"
+
#. type: Plain text
-#: build/C/man7/symlink.7:132
+#: build/C/man7/symlink.7:169
msgid ""
"Symbolic links are handled either by operating on the link itself, or by "
"operating on the object referred to by the link. In the latter case, an "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:135
+#: build/C/man7/symlink.7:172
msgid ""
"There are three separate areas that need to be discussed. They are as "
"follows:"
-msgstr ""
+msgstr "3 つの領域に分けて議論する必要がある。以下の 3 つである。"
#. type: IP
-#: build/C/man7/symlink.7:135
+#: build/C/man7/symlink.7:172
#, no-wrap
msgid "1."
msgstr "1."
#. type: Plain text
-#: build/C/man7/symlink.7:137
+#: build/C/man7/symlink.7:174
msgid "Symbolic links used as filename arguments for system calls."
msgstr ""
+"システムコールのファイル名引き数としてシンボリックリンクが使用される場合。"
#. type: IP
-#: build/C/man7/symlink.7:137
+#: build/C/man7/symlink.7:174
#, no-wrap
msgid "2."
msgstr "2."
#. type: Plain text
-#: build/C/man7/symlink.7:140
+#: build/C/man7/symlink.7:177
msgid ""
"Symbolic links specified as command-line arguments to utilities that are not "
"traversing a file tree."
msgstr ""
+"ファイルツリーを辿っていないユーティリティのコマンドライン引き数としてシンボ"
+"リックリンクが指定される場合。"
#. type: IP
-#: build/C/man7/symlink.7:140
+#: build/C/man7/symlink.7:177
#, no-wrap
msgid "3."
msgstr "3."
#. type: Plain text
-#: build/C/man7/symlink.7:144
+#: build/C/man7/symlink.7:181
msgid ""
"Symbolic links encountered by utilities that are traversing a file tree "
"(either specified on the command line or encountered as part of the file "
"hierarchy walk)."
msgstr ""
+"ファイルツリーを辿っているユーティリティがシンボリックリンクを見つけた場合 "
+"(コマンドラインで指定される場合もあれば、 ファイル階層を辿っている途中で遭遇"
+"する場合もある)。"
#. type: SS
-#: build/C/man7/symlink.7:144
+#: build/C/man7/symlink.7:181
#, no-wrap
msgid "System calls"
-msgstr ""
+msgstr "システムコール"
#. type: Plain text
-#: build/C/man7/symlink.7:147
+#: build/C/man7/symlink.7:184
msgid ""
"The first area is symbolic links used as filename arguments for system calls."
msgstr ""
+"最初の領域は、システムコールのファイル名引き数としてシンボリックリンクが使用"
+"される場合である。"
#. type: Plain text
-#: build/C/man7/symlink.7:157
+#: build/C/man7/symlink.7:194
msgid ""
"Except as noted below, all system calls follow symbolic links. For example, "
"if there were a symbolic link I<slink> which pointed to a file named "
"I<afile>, the system call I<open(\"slink\" ...\\&)> would return a file "
"descriptor referring to the file I<afile>."
msgstr ""
+"以下に述べる場合を除くと、 すべてのシステムコールはシンボリックリンクを辿"
+"る。 例えば、 I<afile> という名前のファイルを指しているシンボリックリンク "
+"I<slink> があったとすると、 システムコール I<open(\"slink\" ...\\&)> はファイ"
+"ル I<afile> を参照するファイルディスクリプタを返す。"
-#. Maybe one day: .BR fchownat (2)
#. type: Plain text
-#: build/C/man7/symlink.7:207
+#: build/C/man7/symlink.7:209
msgid ""
"Various system calls do not follow links, and operate on the symbolic link "
"itself. They are: B<lchown>(2), B<lgetxattr>(2), B<llistxattr>(2), "
"B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), B<readlink>(2), B<rename>"
-"(2), B<rmdir>(2), and B<unlink>(2). Certain other system calls optionally "
-"follow symbolic links. They are: B<faccessat>(2), B<fchownat>(2), B<fstatat>"
-"(2), B<linkat>(2), B<open>(2), B<openat>(2), and B<utimensat>(2); see their "
-"manual pages for details. Because B<remove>(3) is an alias for B<unlink>"
-"(2), that library function also does not follow symbolic links. When "
-"B<rmdir>(2) is applied to a symbolic link, it fails with the error "
-"B<ENOTDIR>. The B<link>(2) warrants special discussion. POSIX.1-2001 "
-"specifies that B<link>(2) should dereference I<oldpath> if it is a symbolic "
-"link. However, Linux does not do this. (By default Solaris is the same, "
-"but the POSIX.1-2001 specified behavior can be obtained with suitable "
-"compiler options.) The upcoming POSIX.1 revision changes the specification "
-"to allow either behavior in an implementation."
+"(2), B<rmdir>(2), and B<unlink>(2)."
+msgstr ""
+
+#. Maybe one day: .BR fchownat (2)
+#. type: Plain text
+#: build/C/man7/symlink.7:233
+msgid ""
+"Certain other system calls optionally follow symbolic links. They are: "
+"B<faccessat>(2), B<fchownat>(2), B<fstatat>(2), B<linkat>(2), "
+"B<name_to_handle_at>(2), B<open>(2), B<openat>(2), B<open_by_handle_at>(2), "
+"and B<utimensat>(2); see their manual pages for details. Because B<remove>"
+"(3) is an alias for B<unlink>(2), that library function also does not "
+"follow symbolic links. When B<rmdir>(2) is applied to a symbolic link, it "
+"fails with the error B<ENOTDIR>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man7/symlink.7:248
+msgid ""
+"The B<link>(2) warrants special discussion. POSIX.1-2001 specifies that "
+"B<link>(2) should dereference I<oldpath> if it is a symbolic link. "
+"However, Linux does not do this. (By default Solaris is the same, but the "
+"POSIX.1-2001 specified behavior can be obtained with suitable compiler "
+"options.) The upcoming POSIX.1 revision changes the specification to allow "
+"either behavior in an implementation."
msgstr ""
#. type: SS
-#: build/C/man7/symlink.7:207
+#: build/C/man7/symlink.7:248
#, no-wrap
msgid "Commands not traversing a file tree"
-msgstr ""
+msgstr "ファイルツリーを辿らないコマンド"
#. type: Plain text
-#: build/C/man7/symlink.7:210
+#: build/C/man7/symlink.7:251
msgid ""
"The second area is symbolic links, specified as command-line filename "
"arguments, to commands which are not traversing a file tree."
msgstr ""
+"二つ目の領域は、ファイルツリーを辿らないコマンドの、コマンドライン引き数の"
+"ファイル名としてシンボリックリンクが指定される場合である。"
#. type: Plain text
-#: build/C/man7/symlink.7:221
+#: build/C/man7/symlink.7:262
msgid ""
"Except as noted below, commands follow symbolic links named as command-line "
"arguments. For example, if there were a symbolic link I<slink> which "
"pointed to a file named I<afile>, the command I<cat slink> would display the "
"contents of the file I<afile>."
msgstr ""
+"以下に述べる場合を除くと、 コマンドはコマンドライン引き数で指定された名前のシ"
+"ンボリックリンクを辿る。 例えば、 I<afile> という名前のファイルを指しているシ"
+"ンボリックリンク I<slink> があったとすると、 コマンド I<cat slink> は "
+"I<afile> の内容を表示することになる。"
#. type: Plain text
-#: build/C/man7/symlink.7:229
+#: build/C/man7/symlink.7:270
msgid ""
"It is important to realize that this rule includes commands which may "
-"optionally traverse file trees, e.g., the command I<chown file> is included "
-"in this rule, while the command I<chown\\ -R file>, which performs a tree "
-"traversal, is not. (The latter is described in the third area, below.)"
+"optionally traverse file trees; for example, the command I<chown file> is "
+"included in this rule, while the command I<chown\\ -R file>, which performs "
+"a tree traversal, is not. (The latter is described in the third area, "
+"below.)"
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:247
+#: build/C/man7/symlink.7:288
msgid ""
"If it is explicitly intended that the command operate on the symbolic link "
-"instead of following the symbolic link, e.g., it is desired that I<chown "
-"slink> change the ownership of the file that I<slink> is, whether it is a "
-"symbolic link or not, the I<-h> option should be used. In the above "
+"instead of following the symbolic link\\(emfor example, it is desired that "
+"I<chown slink> change the ownership of the file that I<slink> is, whether it "
+"is a symbolic link or not\\(emthe I<-h> option should be used. In the above "
"example, I<chown root slink> would change the ownership of the file referred "
"to by I<slink>, while I<chown\\ -h root slink> would change the ownership of "
"I<slink> itself."
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:249
+#: build/C/man7/symlink.7:290
msgid "There are some exceptions to this rule:"
-msgstr ""
+msgstr "このルールにはいくつかの例外がある。"
#. type: Plain text
-#: build/C/man7/symlink.7:259
+#: build/C/man7/symlink.7:300
msgid ""
"The B<mv>(1) and B<rm>(1) commands do not follow symbolic links named as "
"arguments, but respectively attempt to rename and delete them. (Note, if "
"another directory may very well cause it to stop working, since the path may "
"no longer be correct.)"
msgstr ""
+"コマンド B<mv>(1) と B<rm>(1) は引き数で指定された名前のシンボリックリンクを"
+"辿らないが、 それぞれシンボリックリンク自身の名前変更と削除を行おうとする。 "
+"(シンボリックリンクが相対パスでファイルを参照している場合、 そのシンボリック"
+"リンクを別のディレクトリに移動すると、動かなくなることが非常によくある。 移動"
+"の結果、 パスが正しくないものになってしまうからである。)"
#. type: Plain text
-#: build/C/man7/symlink.7:289
+#: build/C/man7/symlink.7:330
msgid ""
"The B<ls>(1) command is also an exception to this rule. For compatibility "
-"with historic systems (when B<ls>(1) is not doing a tree walk, i.e., the I<-"
-"R> option is not specified), the B<ls>(1) command follows symbolic links "
+"with historic systems (when B<ls>(1) is not doing a tree walk\\(emthat is, "
+"I<-R> option is not specified), the B<ls>(1) command follows symbolic links "
"named as arguments if the I<-H> or I<-L> option is specified, or if the I<-"
"F>, I<-d>, or I<-l> options are not specified. (The B<ls>(1) command is "
"the only command where the I<-H> and I<-L> options affect its behavior even "
#. .BR chgrp (1)
#. commands follow symbolic links specified on the command line.
#. type: Plain text
-#: build/C/man7/symlink.7:307
+#: build/C/man7/symlink.7:348
msgid ""
"The B<file>(1) command is also an exception to this rule. The B<file>(1) "
"command does not follow symbolic links named as argument by default. The "
msgstr ""
#. type: SS
-#: build/C/man7/symlink.7:307
+#: build/C/man7/symlink.7:348
#, no-wrap
msgid "Commands traversing a file tree"
-msgstr ""
+msgstr "ファイルツリーを辿るコマンド"
#. type: Plain text
-#: build/C/man7/symlink.7:320
+#: build/C/man7/symlink.7:361
msgid ""
"The following commands either optionally or always traverse file trees: "
"B<chgrp>(1), B<chmod>(1), B<chown>(1), B<cp>(1), B<du>(1), B<find>(1), B<ls>"
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:324
+#: build/C/man7/symlink.7:365
msgid ""
"It is important to realize that the following rules apply equally to "
"symbolic links encountered during the file tree traversal and symbolic links "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:329
+#: build/C/man7/symlink.7:370
msgid ""
"The I<first rule> applies to symbolic links that reference files other than "
"directories. Operations that apply to symbolic links are performed on the "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:341
+#: build/C/man7/symlink.7:382
msgid ""
"The command I<rm\\ -r slink directory> will remove I<slink>, as well as any "
"symbolic links encountered in the tree traversal of I<directory>, because "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:346
+#: build/C/man7/symlink.7:387
msgid ""
"The I<second rule> applies to symbolic links that refer to directories. "
"Symbolic links that refer to directories are never followed by default. "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:349
+#: build/C/man7/symlink.7:390
msgid ""
"Certain conventions are (should be) followed as consistently as possible by "
"commands that perform file tree walks:"
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:362
+#: build/C/man7/symlink.7:403
msgid ""
"A command can be made to follow any symbolic links named on the command "
"line, regardless of the type of file they reference, by specifying the I<-H> "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:378
+#: build/C/man7/symlink.7:419
msgid ""
"For example, the command I<chown\\ -HR user slink> will traverse the file "
"hierarchy rooted in the file pointed to by I<slink>. Note, the I<-H> is not "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:392
+#: build/C/man7/symlink.7:433
msgid ""
"A command can be made to follow any symbolic links named on the command "
"line, as well as any symbolic links encountered during the traversal, "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:407
+#: build/C/man7/symlink.7:448
msgid ""
"For example, the command I<chown\\ -LR user slink> will change the owner of "
"the file referred to by I<slink>. If I<slink> refers to a directory, "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:414
+#: build/C/man7/symlink.7:455
msgid ""
"A command can be made to provide the default behavior by specifying the I<-"
"P> (for \"physical\") flag. This flag is intended to make the entire name "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:432
+#: build/C/man7/symlink.7:473
msgid ""
"For commands that do not by default do file tree traversals, the I<-H>, I<-"
"L>, and I<-P> flags are ignored if the I<-R> flag is not also specified. In "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:438
+#: build/C/man7/symlink.7:479
msgid "The B<ls>(1) and B<rm>(1) commands have exceptions to these rules:"
msgstr ""
+"コマンド B<ls>(1) と B<rm>(1) には、 これらのルールに対する例外がある。"
#. type: Plain text
-#: build/C/man7/symlink.7:451
+#: build/C/man7/symlink.7:492
msgid ""
"The B<rm>(1) command operates on the symbolic link, and not the file it "
"references, and therefore never follows a symbolic link. The B<rm>(1) "
"command does not support the I<-H>, I<-L>, or I<-P> options."
msgstr ""
+"B<rm>(1) コマンドは、 参照先のファイルではなく、シンボリックリンクに対して操"
+"作を行う。 したがって、 シンボリックリンクを辿ることはない。 B<rm>(1) コマン"
+"ドはオプション I<-H>, I<-L>, I<-P> をサポートしていない。"
#. type: Plain text
-#: build/C/man7/symlink.7:471
+#: build/C/man7/symlink.7:512
msgid ""
"To maintain compatibility with historic systems, the B<ls>(1) command acts "
"a little differently. If you do not specify the I<-F>, I<-d> or I<-l> "
msgstr ""
#. type: Plain text
-#: build/C/man7/symlink.7:489
+#: build/C/man7/symlink.7:530
msgid ""
"B<chgrp>(1), B<chmod>(1), B<find>(1), B<ln>(1), B<ls>(1), B<mv>(1), B<rm>"
"(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<readlink>(2), B<rename>(2), "
msgstr "TEMPNAM"
#. type: TH
-#: build/C/man3/tempnam.3:25
+#: build/C/man3/tempnam.3:25 build/C/man3/tmpnam.3:27
#, no-wrap
-msgid "2008-08-06"
-msgstr "2008-08-06"
+msgid "2014-02-27"
+msgstr "2014-02-27"
#. type: Plain text
#: build/C/man3/tempnam.3:28
msgstr "B<tempnam>(): _BSD_SOURCE || _SVID_SOURCE"
#. type: Plain text
-#: build/C/man3/tempnam.3:56
+#: build/C/man3/tempnam.3:49
+msgid ""
+"I<Never use this function.> Use B<mkstemp>(3) or B<tmpfile>(3) instead."
+msgstr ""
+"I<決してこの関数を使用しないこと。> 代わりに B<mkstemp>(3) か B<tmpfile>(3) "
+"を使うこと。"
+
+#. type: Plain text
+#: build/C/man3/tempnam.3:63
msgid ""
"The B<tempnam>() function returns a pointer to a string that is a valid "
"filename, and such that a file with this name did not exist when B<tempnam>"
"ためにはまず少なくとも 書き込み可能でなければならない)。"
#. type: Plain text
-#: build/C/man3/tempnam.3:59
+#: build/C/man3/tempnam.3:66
msgid ""
"Attempts to find an appropriate directory go through the following steps:"
msgstr "適切なディレクトリの探索は、以下の手順にしたがって行われる。"
#. type: TP
-#: build/C/man3/tempnam.3:59
+#: build/C/man3/tempnam.3:66
#, no-wrap
msgid "a)"
msgstr "a)"
#. type: Plain text
-#: build/C/man3/tempnam.3:65
+#: build/C/man3/tempnam.3:72
msgid ""
"In case the environment variable B<TMPDIR> exists and contains the name of "
"an appropriate directory, that is used."
"ら、それを用いる。"
#. type: TP
-#: build/C/man3/tempnam.3:65
+#: build/C/man3/tempnam.3:72
#, no-wrap
msgid "b)"
msgstr "b)"
#. type: Plain text
-#: build/C/man3/tempnam.3:70
+#: build/C/man3/tempnam.3:77
msgid ""
"Otherwise, if the I<dir> argument is non-NULL and appropriate, it is used."
msgstr ""
"る。"
#. type: TP
-#: build/C/man3/tempnam.3:70
+#: build/C/man3/tempnam.3:77
#, no-wrap
msgid "c)"
msgstr "c)"
#. type: Plain text
-#: build/C/man3/tempnam.3:77
+#: build/C/man3/tempnam.3:84
msgid ""
"Otherwise, I<P_tmpdir> (as defined in I<E<lt>stdio.hE<gt>>) is used when "
"appropriate."
"なら、それを用いる。"
#. type: TP
-#: build/C/man3/tempnam.3:77
+#: build/C/man3/tempnam.3:84
#, no-wrap
msgid "d)"
msgstr "d)"
#. type: Plain text
-#: build/C/man3/tempnam.3:80
+#: build/C/man3/tempnam.3:87
msgid "Finally an implementation-defined directory may be used."
msgstr "最後に実装で定義されたディレクトリが用いられることになる。"
#. type: Plain text
-#: build/C/man3/tempnam.3:87
+#: build/C/man3/tempnam.3:94
msgid ""
"The string returned by B<tempnam>() is allocated using B<malloc>(3) and "
"hence should be freed by B<free>(3)."
"B<free>(3) で解放すべきである。"
#. type: Plain text
-#: build/C/man3/tempnam.3:92
+#: build/C/man3/tempnam.3:101
msgid ""
-"The B<tempnam>() function returns a pointer to a unique temporary filename, "
-"or NULL if a unique name cannot be generated."
+"On success, the B<tempnam>() function returns a pointer to a unique "
+"temporary filename. It returns NULL if a unique name cannot be generated, "
+"with I<errno> set to indicate the cause of the error."
msgstr ""
-"B<tempnam>() 関数は他と重ならないテンポラリファイル名へのポインタを返す。 他"
-"と重ならない名前が生成できなければ NULL を返す。"
+"成功すると B<tempnam>() 関数は、一意なテンポラリファイル名へのポインタを返"
+"す。 一意な名前が生成できなければ NULL を返し、 I<errno> にエラーの原因を示す"
+"値を設定する。"
#. type: Plain text
-#: build/C/man3/tempnam.3:96
+#: build/C/man3/tempnam.3:105
msgid "Allocation of storage failed."
msgstr "保存領域の割り当てに失敗した。"
#. type: Plain text
-#: build/C/man3/tempnam.3:101
+#: build/C/man3/tempnam.3:110
msgid ""
"SVr4, 4.3BSD, POSIX.1-2001. POSIX.1-2008 marks B<tempnam>() as obsolete."
msgstr ""
"る。"
#. type: Plain text
-#: build/C/man3/tempnam.3:120
+#: build/C/man3/tempnam.3:129
msgid ""
"Although B<tempnam>() generates names that are difficult to guess, it is "
"nevertheless possible that between the time that B<tempnam>() returns a "
"B<tmpfile>(3) を使うことである。"
#. type: Plain text
-#: build/C/man3/tempnam.3:128
+#: build/C/man3/tempnam.3:137
msgid ""
"SUSv2 does not mention the use of B<TMPDIR>; glibc will use it only when the "
"program is not set-user-ID. On SVr4, the directory used under B<d)> is I</"
"ディレクトリを I</tmp> と定めている (glibc もこの通りである)。"
#. type: Plain text
-#: build/C/man3/tempnam.3:133
+#: build/C/man3/tempnam.3:142
msgid ""
"Because it dynamically allocates memory used to return the pathname, "
"B<tempnam>() is reentrant, and thus thread safe, unlike B<tmpnam>(3)."
"B<tempnam>() はリエントラントであり、スレッドセーフである。"
#. type: Plain text
-#: build/C/man3/tempnam.3:146
+#: build/C/man3/tempnam.3:155
msgid ""
"The B<tempnam>() function generates a different string each time it is "
"called, up to B<TMP_MAX> (defined in I<E<lt>stdio.hE<gt>>) times. If it is "
"B<TMP_MAX> 回以上呼び出された場合、動作は実装依存である。"
#. type: Plain text
-#: build/C/man3/tempnam.3:150
+#: build/C/man3/tempnam.3:159
msgid "B<tempnam>() uses at most the first five bytes from I<pfx>."
msgstr "B<tempnam>() は最大で I<pfx> の先頭 5 バイトを使用する。"
#. type: Plain text
-#: build/C/man3/tempnam.3:156
+#: build/C/man3/tempnam.3:165
msgid ""
"The glibc implementation of B<tempnam>() will fail with the error B<EEXIST> "
"upon failure to find a unique name."
"ラー B<EEXIST> で失敗する。"
#. type: Plain text
-#: build/C/man3/tempnam.3:159
+#: build/C/man3/tempnam.3:168
msgid ""
"The precise meaning of \"appropriate\" is undefined; it is unspecified how "
"accessibility of a directory is determined."
"度のアクセス権限が必要なのかは指定されていない。"
#. type: Plain text
-#: build/C/man3/tempnam.3:166 build/C/man3/tmpnam.3:153
-msgid "Never use this function. Use B<mkstemp>(3) or B<tmpfile>(3) instead."
-msgstr ""
-"決してこの関数を使ってはならない。代わりに B<mkstemp>(3) か B<tmpfile>(3) "
-"を使うこと。"
-
-#. type: Plain text
-#: build/C/man3/tempnam.3:171
+#: build/C/man3/tempnam.3:173
msgid "B<mkstemp>(3), B<mktemp>(3), B<tmpfile>(3), B<tmpnam>(3)"
msgstr "B<mkstemp>(3), B<mktemp>(3), B<tmpfile>(3), B<tmpnam>(3)"
"自動的に削除される。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:54
+#: build/C/man3/tmpfile.3:56
msgid ""
"The B<tmpfile>() function returns a stream descriptor, or NULL if a unique "
"filename cannot be generated or the unique file cannot be opened. In the "
"I<errno> を設定する。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:58
+#: build/C/man3/tmpfile.3:60
msgid "Search permission denied for directory in file's path prefix."
msgstr ""
"ファイルのあるディレクトリにサーチのアクセス権 (search permission) がない。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:61
+#: build/C/man3/tmpfile.3:63
msgid "Unable to generate a unique filename."
msgstr "ユニークなファイル名が作成できなかった。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:64
+#: build/C/man3/tmpfile.3:66
msgid "The call was interrupted by a signal."
msgstr "呼び出しがシグナルによって中断された。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:67
+#: build/C/man3/tmpfile.3:69
msgid "Too many file descriptors in use by the process."
msgstr "1 つのプロセスで使用可能なファイルディスクリプタ数を超過した。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:70
+#: build/C/man3/tmpfile.3:72
msgid "Too many files open in the system."
msgstr "システム全体でオープン可能なファイル数を超過した。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:73
+#: build/C/man3/tmpfile.3:75
msgid "There was no room in the directory to add the new filename."
msgstr "ディレクトリに新しいファイルを追加するための空き領域がない。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:76
-msgid "Read-only file system."
+#: build/C/man3/tmpfile.3:78
+msgid "Read-only filesystem."
msgstr "読みだし専用ファイルシステムである。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:78
+#: build/C/man3/tmpfile.3:80
msgid "SVr4, 4.3BSD, C89, C99, SUSv2, POSIX.1-2001."
msgstr "SVr4, 4.3BSD, C89, C99, SUSv2, POSIX.1-2001."
#. type: Plain text
-#: build/C/man3/tmpfile.3:82
+#: build/C/man3/tmpfile.3:86
msgid ""
"POSIX.1-2001 specifies: an error message may be written to I<stdout> if the "
"stream cannot be opened."
"メッセージが書き出される、と規定されている。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:88
+#: build/C/man3/tmpfile.3:97
msgid ""
"The standard does not specify the directory that B<tmpfile>() will use. "
"Glibc will try the path prefix I<P_tmpdir> defined in I<E<lt>stdio.hE<gt>>, "
"る。 これが失敗した場合は、ディレクトリ I</tmp> を使う。"
#. type: Plain text
-#: build/C/man3/tmpfile.3:94
+#: build/C/man3/tmpfile.3:103
msgid "B<exit>(3), B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpnam>(3)"
msgstr "B<exit>(3), B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpnam>(3)"
msgid "TMPNAM"
msgstr "TMPNAM"
-#. type: TH
-#: build/C/man3/tmpnam.3:27
-#, no-wrap
-msgid "2010-09-10"
-msgstr "2010-09-10"
-
#. type: Plain text
#: build/C/man3/tmpnam.3:30
msgid "tmpnam, tmpnam_r - create a name for a temporary file"
msgstr "B<char *tmpnam(char *>I<s>B<);>\n"
#. type: Plain text
-#: build/C/man3/tmpnam.3:58
+#: build/C/man3/tmpnam.3:45
+msgid ""
+"B<Note:> Avoid use of B<tmpnam>(); use B<mkstemp>(3) or B<tmpfile>(3) "
+"instead."
+msgstr ""
+"B<注意:> B<tmpnam>() の使用は避けること。代わりに B<mkstemp>(3) か B<tmpfile>"
+"(3) を使うこと。"
+
+#. type: Plain text
+#: build/C/man3/tmpnam.3:67
msgid ""
"The B<tmpnam>() function returns a pointer to a string that is a valid "
"filename, and such that a file with this name did not exist at some point in "
"time, so that naive programmers may think it a suitable name for a temporary "
-"file. If the argument I<s> is NULL this name is generated in an internal "
+"file. If the argument I<s> is NULL, this name is generated in an internal "
"static buffer and may be overwritten by the next call to B<tmpnam>(). If "
"I<s> is not NULL, the name is copied to the character array (of length at "
"least I<L_tmpnam>) pointed to by I<s> and the value I<s> is returned in "
"ピーされ、 成功した場合は I<s> が返される。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:70
+#: build/C/man3/tmpnam.3:79
msgid ""
"The pathname that is created, has a directory prefix I<P_tmpdir>. (Both "
"I<L_tmpnam> and I<P_tmpdir> are defined in I<E<lt>stdio.hE<gt>>, just like "
"hE<gt>> で定義されている。)"
#. type: Plain text
-#: build/C/man3/tmpnam.3:75
+#: build/C/man3/tmpnam.3:84
msgid ""
"The B<tmpnam>() function returns a pointer to a unique temporary filename, "
"or NULL if a unique name cannot be generated."
"が作成できなかった場合は NULL を返す。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:77
+#: build/C/man3/tmpnam.3:86
msgid "No errors are defined."
msgstr "エラーは定義されていない。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:82
+#: build/C/man3/tmpnam.3:92
+msgid ""
+"The B<tmpnam>() function is thread-safe with exceptions. It is not thread-"
+"safe if called with a NULL parameter."
+msgstr ""
+"B<tmpnam>() 関数は例外付きでスレッドセーフである。 NULL パラメータで呼び出さ"
+"れた場合はスレッドセーフではない。"
+
+#. type: Plain text
+#: build/C/man3/tmpnam.3:96
+msgid "The B<tmpnam_r>() function is thread-safe."
+msgstr "B<tmpnam_r>() 関数はスレッドセーフである。"
+
+#. type: Plain text
+#: build/C/man3/tmpnam.3:101
msgid ""
"SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008 marks B<tmpnam>() as "
"obsolete."
"定としている。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:93
+#: build/C/man3/tmpnam.3:112
msgid ""
"The B<tmpnam>() function generates a different string each time it is "
"called, up to B<TMP_MAX> times. If it is called more than B<TMP_MAX> times, "
"する。 B<TMP_MAX> 回以上呼び出された場合、その動作は実装依存である。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:112
+#: build/C/man3/tmpnam.3:131
msgid ""
"Although B<tmpnam>() generates names that are difficult to guess, it is "
"nevertheless possible that between the time that B<tmpnam>() returns a "
"B<tmpfile>(3) を使うことである。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:120
+#: build/C/man3/tmpnam.3:139
msgid ""
"Portable applications that use threads cannot call B<tmpnam>() with a NULL "
"argument if either B<_POSIX_THREADS> or B<_POSIX_THREAD_SAFE_FUNCTIONS> is "
"NULL 引き数で呼び出してはならない。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:124
+#: build/C/man3/tmpnam.3:143
msgid "A POSIX draft proposed to use a function B<tmpnam_r>() defined by"
msgstr ""
"POSIX 草案では、関数 B<tmpnam_r>() を使うことを提案している。 この関数は、以"
"扱いしている。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:132
+#: build/C/man3/tmpnam.3:151
#, no-wrap
msgid ""
"char *\n"
"}\n"
#. type: Plain text
-#: build/C/man3/tmpnam.3:146
+#: build/C/man3/tmpnam.3:165
msgid ""
"apparently as a warning not to use NULL. A few systems implement it. To "
"get a glibc prototype for this function from I<E<lt>stdio.hE<gt>>, define "
"がある。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:158
+#: build/C/man3/tmpnam.3:172
+msgid "Never use this function. Use B<mkstemp>(3) or B<tmpfile>(3) instead."
+msgstr ""
+"決してこの関数を使ってはならない。代わりに B<mkstemp>(3) か B<tmpfile>(3) "
+"を使うこと。"
+
+#. type: Plain text
+#: build/C/man3/tmpnam.3:177
msgid "B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3)"
msgstr "B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3)"
#. type: TH
-#: build/C/man2/unlink.2:32
+#: build/C/man2/unlink.2:33
#, no-wrap
msgid "UNLINK"
msgstr "UNLINK"
-#. type: TH
-#: build/C/man2/unlink.2:32
+#. type: Plain text
+#: build/C/man2/unlink.2:36
+msgid "unlink, unlinkat - delete a name and possibly the file it refers to"
+msgstr ""
+"unlink, unlinkat - 名前を削除し、場合によってはそれが参照しているファイルも削"
+"除する"
+
+#. type: Plain text
+#: build/C/man2/unlink.2:41
#, no-wrap
-msgid "2011-09-15"
-msgstr "2011-09-15"
+msgid "B<int unlink(const char *>I<pathname>B<);>\n"
+msgstr "B<int unlink(const char *>I<pathname>B<);>\n"
#. type: Plain text
-#: build/C/man2/unlink.2:35
-msgid "unlink - delete a name and possibly the file it refers to"
-msgstr ""
-"unlink - 名前を削除し、場合によってはそれが参照しているファイルも削除する"
+#: build/C/man2/unlink.2:46
+#, no-wrap
+msgid "B<int unlinkat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
+msgstr "B<int unlinkat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
#. type: Plain text
-#: build/C/man2/unlink.2:39
-msgid "B<int unlink(const char *>I<pathname>B<);>"
-msgstr "B<int unlink(const char *>I<pathname>B<);>"
+#: build/C/man2/unlink.2:54
+msgid "B<unlinkat>():"
+msgstr "B<unlinkat>():"
#. type: Plain text
-#: build/C/man2/unlink.2:45
+#: build/C/man2/unlink.2:72
msgid ""
-"B<unlink>() deletes a name from the file system. If that name was the last "
-"link to a file and no processes have the file open the file is deleted and "
+"B<unlink>() deletes a name from the filesystem. If that name was the last "
+"link to a file and no processes have the file open, the file is deleted and "
"the space it was using is made available for reuse."
msgstr ""
"B<unlink>() はファイルシステム上の名前を削除する。 もしその名前がファイルへ"
"は再利用が可能になる。"
#. type: Plain text
-#: build/C/man2/unlink.2:49
+#: build/C/man2/unlink.2:76
msgid ""
"If the name was the last link to a file but any processes still have the "
-"file open the file will remain in existence until the last file descriptor "
+"file open, the file will remain in existence until the last file descriptor "
"referring to it is closed."
msgstr ""
-"もし削除する名前がファイルへの最後のリンクだが、どれかのプロセスが そのファイ"
-"ルをまだオープンしている場合は、 そのファイルを参照している最後のファイルディ"
-"スクリプタ (file descriptor) がクローズ (close) されるまでファイルは存在し続"
-"ける。"
+"名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開"
+"いているなら、ファイルの最後のファイル記述子 (file descriptor) が閉じられるま"
+"でファイルは存在し続ける。"
+
+#. type: Plain text
+#: build/C/man2/unlink.2:82
+msgid ""
+"If the name referred to a socket, FIFO, or device, the name for it is "
+"removed but processes which have the object open may continue to use it."
+msgstr ""
+"名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、 その"
+"ソケットなどを開いているプロセスはそのまま使い続けることができる。"
+
+#. type: SS
+#: build/C/man2/unlink.2:82
+#, no-wrap
+msgid "unlinkat()"
+msgstr "unlinkat()"
+
+#. type: Plain text
+#: build/C/man2/unlink.2:95
+msgid ""
+"The B<unlinkat>() system call operates in exactly the same way as either "
+"B<unlink>() or B<rmdir>(2) (depending on whether or not I<flags> includes "
+"the B<AT_REMOVEDIR> flag) except for the differences described here."
+msgstr ""
+"B<unlinkat>() システムコールは、B<unlink>() と B<rmdir>(2) のいずれかと全く同"
+"じ動作をする (どちらと同じになるかは I<flags> に B<AT_REMOVEDIR> フラグが指定"
+"されたかにより決まる) が、以下で説明する点が異なる。"
+
+#. type: Plain text
+#: build/C/man2/unlink.2:107
+msgid ""
+"If the pathname given in I<pathname> is relative, then it is interpreted "
+"relative to the directory referred to by the file descriptor I<dirfd> "
+"(rather than relative to the current working directory of the calling "
+"process, as is done by B<unlink>() and B<rmdir>(2) for a relative "
+"pathname)."
+msgstr ""
+"I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
+"リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
+"(B<unlink>() や B<rmdir>(2) に相対パス名を渡した場合のように、呼び出したプロ"
+"セスのカレントワーキングディレクトリに対する相対パスではない)。"
#. type: Plain text
-#: build/C/man2/unlink.2:51
-msgid "If the name referred to a symbolic link the link is removed."
+#: build/C/man2/unlink.2:121
+msgid ""
+"If the pathname given in I<pathname> is relative and I<dirfd> is the special "
+"value B<AT_FDCWD>, then I<pathname> is interpreted relative to the current "
+"working directory of the calling process (like B<unlink>() and B<rmdir>(2))."
+msgstr ""
+"I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
+"の場合、 (B<unlink>() や B<rmdir>(2) と同様に) I<pathname> は呼び出したプロセ"
+"スのカレントワーキングディレクトリに対する相対パスと解釈される。"
+
+#. type: Plain text
+#: build/C/man2/unlink.2:127
+msgid ""
+"If the pathname given in I<pathname> is absolute, then I<dirfd> is ignored."
+msgstr ""
+"I<pathname> で指定されたパス名が絶対パスの場合、 I<dirfd> は無視される。"
+
+#. type: Plain text
+#: build/C/man2/unlink.2:133
+msgid ""
+"I<flags> is a bit mask that can either be specified as 0, or by ORing "
+"together flag values that control the operation of B<unlinkat>(). Currently "
+"only one such flag is defined:"
msgstr ""
-"もしその名前がシンボリックリンク (symbolic link) を参照していれば、 リンクは"
-"削除される。"
+"I<flags> はビットマスクで、0 もしくは B<unlinkat>() の動作を制御するフラグ値"
+"を論理和の形で指定することができる。現在のところ、定義されているフラグはひと"
+"つだけである。"
+
+#. type: TP
+#: build/C/man2/unlink.2:133
+#, no-wrap
+msgid "B<AT_REMOVEDIR>"
+msgstr "B<AT_REMOVEDIR>"
#. type: Plain text
-#: build/C/man2/unlink.2:55
+#: build/C/man2/unlink.2:148
msgid ""
-"If the name referred to a socket, fifo or device the name for it is removed "
-"but processes which have the object open may continue to use it."
+"By default, B<unlinkat>() performs the equivalent of B<unlink>() on "
+"I<pathname>. If the B<AT_REMOVEDIR> flag is specified, then performs the "
+"equivalent of B<rmdir>(2) on I<pathname>."
msgstr ""
-"ã\82\82ã\81\97å\90\8då\89\8dã\81\8cã\82½ã\82±ã\83\83ã\83\88 (socket) ã\82\84 fifo ã\82\84ã\83\87ã\83\90ã\82¤ã\82¹ (device) ã\82\92å\8f\82ç\85§ã\81\97ã\81¦ã\81\84ã\82\8cã\81° å\90\8då\89\8d"
-"は削除されるがそのオブジェクトをオープンしていたプロセスは それを使い続けるこ"
-"とができる。"
+"ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ã\80\81 B<unlinkat>() ã\81¯ I<pathname> ã\81«å¯¾ã\81\97ã\81¦ B<unlink>() ã\81¨ç\89価ã\81ªå\8b\95"
+"作をする。 B<AT_REMOVEDIR> フラグが指定された場合、 I<pathname> に対して "
+"B<rmdir>(2) と等価な動作をする。"
#. type: Plain text
-#: build/C/man2/unlink.2:71
+#: build/C/man2/unlink.2:153
+msgid "See B<openat>(2) for an explanation of the need for B<unlinkat>()."
+msgstr "B<unlinkat>() の必要性についての説明については B<openat>(2) を参照。"
+
+#. type: Plain text
+#: build/C/man2/unlink.2:169
msgid ""
"Write access to the directory containing I<pathname> is not allowed for the "
"process's effective UID, or one of the directories in I<pathname> did not "
"と)。"
#. type: Plain text
-#: build/C/man2/unlink.2:80
+#: build/C/man2/unlink.2:178
msgid ""
"The file I<pathname> cannot be unlinked because it is being used by the "
"system or another process; for example, it is a mount point or the NFS "
"場合 (\"NFS silly renamed\") などがある。"
#. type: Plain text
-#: build/C/man2/unlink.2:92
+#: build/C/man2/unlink.2:190
msgid ""
"I<pathname> refers to a directory. (This is the non-POSIX value returned by "
"Linux since 2.1.132.)"
"で、Linux 2.1.132 以降で返される。)"
#. type: Plain text
-#: build/C/man2/unlink.2:96
+#: build/C/man2/unlink.2:194
msgid "Too many symbolic links were encountered in translating I<pathname>."
msgstr "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
#. type: Plain text
-#: build/C/man2/unlink.2:106
+#: build/C/man2/unlink.2:204
msgid ""
"A component in I<pathname> does not exist or is a dangling symbolic link, or "
"I<pathname> is empty."
"I<pathname> が空である。"
#. type: Plain text
-#: build/C/man2/unlink.2:114
+#: build/C/man2/unlink.2:212
msgid ""
"A component used as a directory in I<pathname> is not, in fact, a directory."
msgstr "I<pathname> のディレクトリ部分が、実際には、ディレクトリでない。"
#. type: Plain text
-#: build/C/man2/unlink.2:123
+#: build/C/man2/unlink.2:221
msgid ""
"The system does not allow unlinking of directories, or unlinking of "
"directories requires privileges that the calling process doesn't have. "
"合には Linux は B<EISDIR> を返す。)"
#. type: TP
-#: build/C/man2/unlink.2:123
+#: build/C/man2/unlink.2:221
#, no-wrap
msgid "B<EPERM> (Linux only)"
msgstr "B<EPERM> (Linux のみ)"
#. type: Plain text
-#: build/C/man2/unlink.2:126
-msgid "The file system does not allow unlinking of files."
+#: build/C/man2/unlink.2:224
+msgid "The filesystem does not allow unlinking of files."
msgstr "ファイルシステムがファイルに対する unlink 操作を許していない。"
#. type: Plain text
-#: build/C/man2/unlink.2:137
+#: build/C/man2/unlink.2:235
msgid ""
"The directory containing I<pathname> has the sticky bit (B<S_ISVTX>) set "
"and the process's effective UID is neither the UID of the file to be deleted "
"に特権がない (Linux では B<CAP_FOWNER> ケーパビリティ (capability) がない)。"
#. type: Plain text
-#: build/C/man2/unlink.2:141
-msgid "I<pathname> refers to a file on a read-only file system."
+#: build/C/man2/unlink.2:239
+msgid "I<pathname> refers to a file on a read-only filesystem."
msgstr "I<pathname> が読み込み専用のファイルシステムのファイルを参照している。"
#. type: Plain text
-#: build/C/man2/unlink.2:161
+#: build/C/man2/unlink.2:248
+msgid ""
+"The same errors that occur for B<unlink>() and B<rmdir>(2) can also occur "
+"for B<unlinkat>(). The following additional errors can occur for B<unlinkat>"
+"():"
+msgstr ""
+"B<unlink>() と B<rmdir>(2) で発生するのと同じエラーが B<unlinkat>() でも起こ"
+"る。 B<unlinkat>() では以下のエラーも発生する。"
+
+#. type: Plain text
+#: build/C/man2/unlink.2:263
+msgid ""
+"I<pathname> refers to a directory, and B<AT_REMOVEDIR> was not specified in "
+"I<flags>."
+msgstr ""
+"I<pathname> がディレクトリを参照していて、 I<flags> に B<AT_REMOVEDIR> がされ"
+"ていなかった。"
+
+#. type: Plain text
+#: build/C/man2/unlink.2:273
+msgid ""
+"B<unlinkat>() was added to Linux in kernel 2.6.16; library support was "
+"added to glibc in version 2.4."
+msgstr ""
+"B<unlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
+"ポートはバージョン 2.4 で glibc に追加された。"
+
+#. SVr4 documents additional error
+#. conditions EINTR, EMULTIHOP, ETXTBSY, ENOLINK.
+#. type: Plain text
+#: build/C/man2/unlink.2:278
+msgid "B<unlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
+msgstr "B<unlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/unlink.2:281
+msgid "B<unlinkat>(): POSIX.1-2008."
+msgstr "B<unlinkat>(): POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/unlink.2:296
msgid ""
"B<rm>(1), B<chmod>(2), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
-"B<rmdir>(2), B<unlinkat>(2), B<mkfifo>(3), B<remove>(3), B<path_resolution>"
-"(7), B<symlink>(7)"
+"B<rmdir>(2), B<mkfifo>(3), B<remove>(3), B<path_resolution>(7), B<symlink>(7)"
msgstr ""
"B<rm>(1), B<chmod>(2), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
-"B<rmdir>(2), B<unlinkat>(2), B<mkfifo>(3), B<remove>(3), B<path_resolution>"
-"(7), B<symlink>(7)"
+"B<rmdir>(2), B<mkfifo>(3), B<remove>(3), B<path_resolution>(7), B<symlink>(7)"
#. type: TH
#: build/C/man3/unlocked_stdio.3:25
msgid "UNLOCKED_STDIO"
msgstr "UNLOCKED_STDIO"
+#. type: TH
+#: build/C/man3/unlocked_stdio.3:25
+#, no-wrap
+msgid "2008-08-29"
+msgstr "2008-08-29"
+
#. type: Plain text
#: build/C/man3/unlocked_stdio.3:29
msgid ""
msgid "WPRINTF"
msgstr "WPRINTF"
-#. type: TH
-#: build/C/man3/wprintf.3:16
-#, no-wrap
-msgid "2011-09-17"
-msgstr "2011-09-17"
-
#. type: Plain text
#: build/C/man3/wprintf.3:20
msgid ""
#. type: Plain text
#: build/C/man3/wprintf.3:53
-msgid "_ISOC95_SOURCE /* Since glibc 2.12 */ ||"
-msgstr "_ISOC95_SOURCE /* Since glibc 2.12 */ ||"
-
-#. type: Plain text
-#: build/C/man3/wprintf.3:55
msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
#. type: Plain text
-#: build/C/man3/wprintf.3:58
+#: build/C/man3/wprintf.3:56
msgid "or I<cc\\ -std=c99>"
msgstr "or I<cc\\ -std=c99>"
#. type: Plain text
-#: build/C/man3/wprintf.3:69
+#: build/C/man3/wprintf.3:67
msgid ""
"The B<wprintf>() family of functions is the wide-character equivalent of "
"the B<printf>(3) family of functions. It performs formatted output of wide "
"ること。"
#. type: Plain text
-#: build/C/man3/wprintf.3:89
+#: build/C/man3/wprintf.3:91
msgid ""
"The B<fwprintf>() and B<vfwprintf>() functions perform wide-character "
"output to I<stream>. I<stream> must not be byte oriented; see B<fwide>(3) "
"B<fwide>(3) を参照すること。"
#. type: Plain text
-#: build/C/man3/wprintf.3:100
+#: build/C/man3/wprintf.3:105
msgid ""
"The B<swprintf>() and B<vswprintf>() functions perform wide-character "
"output to an array of wide characters. The programmer must ensure that "
"空きがあることを保証しなければ ならない。"
#. type: Plain text
-#: build/C/man3/wprintf.3:111
+#: build/C/man3/wprintf.3:116
msgid ""
"These functions are like the B<printf>(3), B<vprintf>(3), B<fprintf>(3), "
"B<vfprintf>(3), B<sprintf>(3), B<vsprintf>(3) functions except for the "
"B<sprintf>(3), B<vsprintf>(3) 関数に似ているが以下の 点で異っている。"
#. type: TP
-#: build/C/man3/wprintf.3:111 build/C/man3/wprintf.3:114
-#: build/C/man3/wprintf.3:117
+#: build/C/man3/wprintf.3:116 build/C/man3/wprintf.3:121
+#: build/C/man3/wprintf.3:124
#, no-wrap
msgid "B<\\(bu>"
msgstr "B<\\(bu>"
#. type: Plain text
-#: build/C/man3/wprintf.3:114
+#: build/C/man3/wprintf.3:121
msgid "The I<format> string is a wide-character string."
msgstr "I<format> がワイド文字列で与えられる。"
#. type: Plain text
-#: build/C/man3/wprintf.3:117
+#: build/C/man3/wprintf.3:124
msgid "The output consists of wide characters, not bytes."
msgstr "出力がバイトではなくワイド文字で構成される。"
#. type: Plain text
-#: build/C/man3/wprintf.3:132
+#: build/C/man3/wprintf.3:143
msgid ""
"B<swprintf>() and B<vswprintf>() take a I<maxlen> argument, B<sprintf>(3) "
"and B<vsprintf>(3) do not. (B<snprintf>(3) and B<vsnprintf>(3) take a "
"も -1 を返さない)。"
#. type: Plain text
-#: build/C/man3/wprintf.3:134
+#: build/C/man3/wprintf.3:149
msgid "The treatment of the conversion characters B<c> and B<s> is different:"
msgstr "B<c> と B<s> 変換文字の扱いが異っている:"
#. type: Plain text
-#: build/C/man3/wprintf.3:148
+#: build/C/man3/wprintf.3:163
msgid ""
"If no B<l> modifier is present, the I<int> argument is converted to a wide "
"character by a call to the B<btowc>(3) function, and the resulting wide "
"在する場合は I<wint_t> (ワイド文字)引き数が出力される。"
#. type: Plain text
-#: build/C/man3/wprintf.3:187
+#: build/C/man3/wprintf.3:203
msgid ""
"If no B<l> modifier is present: The I<const\\ char\\ *> argument is expected "
"to be a pointer to an array of character type (pointer to a string) "
"state. Characters from the array are converted to wide characters (each by "
"a call to the B<mbrtowc>(3) function with a conversion state starting in "
"the initial state before the first byte). The resulting wide characters are "
-"written up to (but not including) the terminating null wide character. If a "
-"precision is specified, no more wide characters than the number specified "
-"are written. Note that the precision determines the number of I<wide "
-"characters> written, not the number of I<bytes> or I<screen positions>. The "
-"array must contain a terminating null byte, unless a precision is given and "
-"it is so small that the number of converted wide characters reaches it "
-"before the end of the array is reached. If an B<l> modifier is present: The "
-"I<const\\ wchar_t\\ *> argument is expected to be a pointer to an array of "
-"wide characters. Wide characters from the array are written up to (but not "
-"including) a terminating null wide character. If a precision is specified, "
-"no more than the number specified are written. The array must contain a "
-"terminating null wide character, unless a precision is given and it is "
-"smaller than or equal to the number of wide characters in the array."
+"written up to (but not including) the terminating null wide character (L\\(aq"
+"\\e0\\(aq). If a precision is specified, no more wide characters than the "
+"number specified are written. Note that the precision determines the number "
+"of I<wide characters> written, not the number of I<bytes> or I<screen "
+"positions>. The array must contain a terminating null byte (\\(aq"
+"\\e0\\(aq), unless a precision is given and it is so small that the number "
+"of converted wide characters reaches it before the end of the array is "
+"reached. If an B<l> modifier is present: The I<const\\ wchar_t\\ *> "
+"argument is expected to be a pointer to an array of wide characters. Wide "
+"characters from the array are written up to (but not including) a "
+"terminating null wide character. If a precision is specified, no more than "
+"the number specified are written. The array must contain a terminating null "
+"wide character, unless a precision is given and it is smaller than or equal "
+"to the number of wide characters in the array."
msgstr ""
"もし B<l> 修飾子が存在しない場合、 I<const\\ char\\ *> 引き数は初期状態より始"
"まるマルチバイト文字列を含んだ char 型の配列へのポインタ(文字列へのポインタ)"
"とみなされる。 配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれ"
"の文字を B<mbrtowc>(3) 関数によって)ワイド文字へと変換される。結果のワイド文"
-"字は終端の ナルワイド文字の手前までが書き込まれる。精度(precision)が指定され"
-"た 場合、指定された数字を超えるワイド文字は書き込まれない。精度は 書き込まれ"
-"る I<バイト> 数や I<画面上の位置> ではなく I<ワイド文字> の数を指定することに"
-"注意すること。 精度がない場合には配列の終端にナル文字を含む必要がある。 精度"
-"を指定する場合には、配列の最後に到着する前に変換されたワイド文字の 数がそれに"
-"到達するよう、精度は十分に小さな数でなければならない。 もし B<l> 修飾子が存在"
-"する場合、 I<const\\ wchar_t\\ *> 引き数はワイド文字の配列へのポインタとみな"
-"される。 配列のワイド文字列は終端のナルワイド文字の手間まで出力される。 もし"
-"精度が指定された場合には指定された精度以上の文字は出力されない。 精度を指定し"
-"ない場合には終端のナルワイド文字を含む必要がある。 精度を指定する場合にはそれ"
-"はワイド文字の配列の大きさよりも小さくな ければならない。"
-
-#. type: Plain text
-#: build/C/man3/wprintf.3:195
+"字は終端の ナルワイド文字 (L\\(aq\\e0\\(aq) の手前までが書き込まれる。精度"
+"(precision)が指定された 場合、指定された数字を超えるワイド文字は書き込まれな"
+"い。精度は 書き込まれる I<バイト> 数や I<画面上の位置> ではなく I<ワイド文字"
+"> の数を指定することに注意すること。 精度がない場合には配列の終端にナルバイ"
+"ト (\\(aq\\e0\\(aq) を含む必要がある。 精度を指定する場合には、配列の最後に到"
+"着する前に変換されたワイド文字の 数がそれに到達するよう、精度は十分に小さな数"
+"でなければならない。 もし B<l> 修飾子が存在する場合、 I<const\\ wchar_t\\ *> "
+"引き数はワイド文字の配列へのポインタとみなされる。 配列のワイド文字列は終端の"
+"ナルワイド文字の手間まで出力される。 もし精度が指定された場合には指定された精"
+"度以上の文字は出力されない。 精度を指定しない場合には終端のナルワイド文字を含"
+"む必要がある。 精度を指定する場合にはそれはワイド文字の配列の大きさよりも小さ"
+"くな ければならない。"
+
+#. type: Plain text
+#: build/C/man3/wprintf.3:211
msgid ""
"The functions return the number of wide characters written, excluding the "
"terminating null wide character in case of the functions B<swprintf>() and "
"場合は -1 を返す。"
#. type: Plain text
-#: build/C/man3/wprintf.3:197
+#: build/C/man3/wprintf.3:213
msgid "C99."
msgstr "C99."
#. type: Plain text
-#: build/C/man3/wprintf.3:205
+#: build/C/man3/wprintf.3:221
msgid ""
"The behavior of B<wprintf>() et al. depends on the B<LC_CTYPE> category of "
"the current locale."
"B<wprintf>() 等の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存している。"
#. type: Plain text
-#: build/C/man3/wprintf.3:231
+#: build/C/man3/wprintf.3:251
msgid ""
"If the I<format> string contains non-ASCII wide characters, the program will "
-"only work correctly if the B<LC_CTYPE> category of the current locale at run "
+"work correctly only if the B<LC_CTYPE> category of the current locale at run "
"time is the same as the B<LC_CTYPE> category of the current locale at "
"compile time. This is because the I<wchar_t> representation is platform- "
"and locale-dependent. (The glibc represents wide characters using their "
#. .BR wscanf (3)
#. type: Plain text
-#: build/C/man3/wprintf.3:238
+#: build/C/man3/wprintf.3:258
msgid "B<fprintf>(3), B<fputwc>(3), B<fwide>(3), B<printf>(3), B<snprintf>(3)"
msgstr "B<fprintf>(3), B<fputwc>(3), B<fwide>(3), B<printf>(3), B<snprintf>(3)"
msgid "WRITE"
msgstr "WRITE"
+#. type: TH
+#: build/C/man2/write.2:39
+#, no-wrap
+msgid "2013-01-27"
+msgstr "2013-01-27"
+
#. type: Plain text
#: build/C/man2/write.2:42
msgid "write - write to a file descriptor"
#: build/C/man2/write.2:89
msgid ""
"POSIX requires that a B<read>(2) which can be proved to occur after a "
-"B<write>() has returned returns the new data. Note that not all file "
-"systems are POSIX conforming."
+"B<write>() has returned returns the new data. Note that not all "
+"filesystems are POSIX conforming."
msgstr ""
"POSIX は B<write>() が行なわれた後に実行した B<read>(2) が 新しいデータを返"
"すことを要求している。 全てのファイルシステムが POSIX 準拠ではない点に注意す"
#. type: Plain text
#: build/C/man2/write.2:141
-#, fuzzy
-#| msgid ""
-#| "The device containing the file referred to by I<fd> has no room for the "
-#| "data."
msgid ""
-"The user's quota of disk blocks on the file system containing the file "
+"The user's quota of disk blocks on the filesystem containing the file "
"referred to by I<fd> has been exhausted."
msgstr ""
-"I<fd> によって参照されるファイルを含むデバイス (device) に十分な空きがない。"
+"I<fd> が参照するファイルを含むファイルシステムのディスクブロックのユーザ"
+"クォータの上限に達している。"
#. type: Plain text
#: build/C/man2/write.2:150
"B<close>(2), B<fcntl>(2), B<fsync>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), "
"B<pwrite>(2), B<read>(2), B<select>(2), B<writev>(2), B<fwrite>(3)"
-#~ msgid "2008-08-21"
-#~ msgstr "2008-08-21"
-
-#~ msgid "2007-06-01"
-#~ msgstr "2007-06-01"
-
-#~ msgid "2012-05-01"
-#~ msgstr "2012-05-01"
-
#~ msgid ""
-#~ " if (n E<gt> -1) /* glibc 2.1 */\n"
-#~ " size = n+1; /* precisely what is needed */\n"
-#~ " else /* glibc 2.0 */\n"
-#~ " size *= 2; /* twice the old size */\n"
+#~ "Enable the close-on-exec flag for the new file descriptor. Specifying "
+#~ "this flag permits a program to avoid additional B<fcntl>(2) B<F_SETFD> "
+#~ "operations to set the B<FD_CLOEXEC> flag. Additionally, use of this flag "
+#~ "is essential in some multithreaded programs since using a separate "
+#~ "B<fcntl>(2) B<F_SETFD> operation to set the B<FD_CLOEXEC> flag does not "
+#~ "suffice to avoid race conditions where one thread opens a file descriptor "
+#~ "at the same time as another thread does a B<fork>(2) plus B<execve>(2)."
#~ msgstr ""
-#~ " if (n E<gt> -1) /* glibc 2.1 */\n"
-#~ " size = n+1; /* precisely what is needed */\n"
-#~ " else /* glibc 2.0 */\n"
-#~ " size *= 2; /* twice the old size */\n"
-
-#~ msgid ""
-#~ "Many file systems and disks were considered to be fast enough that the "
-#~ "implementation of B<O_NONBLOCK> was deemed unnecessary. So, "
-#~ "B<O_NONBLOCK> may not be available on files and/or disks."
-#~ msgstr ""
-#~ "多くのファイルシステムやディスクは B<O_NONBLOCK> の実装はしなくても済むく"
-#~ "らいに十分に高速であると考えられている。 それでそのようなファイルやディス"
-#~ "クには B<O_NONBLOCK> は利用できないかもしれない。"
-
-#~ msgid "2009-03-30"
-#~ msgstr "2009-03-30"
-
-#~ msgid "2008-06-26"
-#~ msgstr "2008-06-26"
-
-#~ msgid "2010-09-20"
-#~ msgstr "2010-09-20"
-
-#~ msgid "2010-08-29"
-#~ msgstr "2010-08-29"
-
-#~ msgid "2008-12-05"
-#~ msgstr "2008-12-05"
-
-#~ msgid "2012-02-27"
-#~ msgstr "2012-02-27"
-
-#~ msgid "The I<double> argument is rounded and converted in the style"
-#~ msgstr "I<double> 引き数を丸めて"
-
-#~ msgid "2012-04-25"
-#~ msgstr "2012-04-25"
+#~ "新しいファイルディスクリプタに対して close-on-exec フラグを有効にする。 こ"
+#~ "のフラグを指定することで、プログラムは B<FD_CLOEXEC> フラグをセットするた"
+#~ "めの B<fcntl>(2) B<F_SETFD> 操作を別途呼び出す必要がなくなる。 また、ある"
+#~ "種のマルチスレッドのプログラムはこのフラグの使用は 不可欠である。なぜな"
+#~ "ら、個別に B<FD_CLOEXEC> フラグを設定する B<fcntl>(2) B<F_SETFD> 操作を呼"
+#~ "び出したとしても、あるスレッドがファイルディスクリプタを オープンするのと"
+#~ "同時に別のスレッドが B<fork>(2) と B<execve>(2) を実行するという競合条件"
+#~ "を避けるのには十分ではないからである。"
+
+#~ msgid "SYMBOLIC LINK HANDLING"
+#~ msgstr "シンボリックリンクの取り扱い"
#~ msgid ""
-#~ "The I<local_iov> and I<remote_iov> arguments point to an array of "
-#~ "I<iovec> structures, defined in I<E<lt>sys/uio.hE<gt>> as:"
+#~ "Various system calls do not follow links, and operate on the symbolic "
+#~ "link itself. They are: B<lchown>(2), B<lgetxattr>(2), B<llistxattr>(2), "
+#~ "B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), B<readlink>(2), "
+#~ "B<rename>(2), B<rmdir>(2), and B<unlink>(2). Certain other system calls "
+#~ "optionally follow symbolic links. They are: B<faccessat>(2), B<fchownat>"
+#~ "(2), B<fstatat>(2), B<linkat>(2), B<open>(2), B<openat>(2), and "
+#~ "B<utimensat>(2); see their manual pages for details. Because B<remove>"
+#~ "(3) is an alias for B<unlink>(2), that library function also does not "
+#~ "follow symbolic links. When B<rmdir>(2) is applied to a symbolic link, "
+#~ "it fails with the error B<ENOTDIR>. The B<link>(2) warrants special "
+#~ "discussion. POSIX.1-2001 specifies that B<link>(2) should dereference "
+#~ "I<oldpath> if it is a symbolic link. However, Linux does not do this. "
+#~ "(By default Solaris is the same, but the POSIX.1-2001 specified behavior "
+#~ "can be obtained with suitable compiler options.) The upcoming POSIX.1 "
+#~ "revision changes the specification to allow either behavior in an "
+#~ "implementation."
#~ msgstr ""
-#~ "引き数 I<local_iov> と I<remote_iov> は I<iovec> 構造体の配列へのポイン\n"
-#~ "タである。 I<iovec> 構造体は I<E<lt>sys/uio.hE<gt>> で以下のように定義\n"
-#~ "されている:"
+#~ "いくつかのシステムコールは、 シンボリックリンクを辿らず、 シンボリックリン"
+#~ "ク自身に対して操作を行う。 B<lchown>(2), B<lgetxattr>(2), B<llistxattr>"
+#~ "(2), B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), B<readlink>(2), "
+#~ "B<rename>(2), B<rmdir>(2), B<unlink>(2) が該当する。 他のいくつかのシステ"
+#~ "ムコールは、 シンボリックリンクを辿る場合と辿らない場合がある。 該当するの"
+#~ "は B<faccessat>(2), B<fchownat>(2), B<fstatat>(2), B<linkat>(2), B<open>"
+#~ "(2), B<openat>(2), B<utimensat>(2) である。 詳細はそれぞれのマニュアルペー"
+#~ "ジを参照。 ライブラリ関数 B<remove>(3) は B<unlink>(2) の別名なので、 この"
+#~ "関数もシンボリックリンクを辿らない。 B<rmdir>(2) をシンボリックリンクに対"
+#~ "して行った場合、 エラー B<ENOTDIR> で失敗する。 B<link>(2) は特別に議論が"
+#~ "必要である。 POSIX.1-2001 は、 B<link>(2) は I<oldpath> がシンボリックリン"
+#~ "クの場合にはこのリンクを展開すべきだと規定している。 しかし、 Linux はこれ"
+#~ "を行っていない。 (デフォルトでは Solaris も同じだが、 適切なコンパイルオプ"
+#~ "ションを指定することで POSIX.1-2001 で規定された動作にすることもできる。) "
+#~ "POSIX.1-2001 の次の版では、仕様が変更され、 どちらの動作の実装も認められる"
+#~ "ようになる。"
#~ msgid ""
-#~ "Buffers are processed in array order. This means that B<process_vm_readv>"
-#~ "() completely fills I<local_iov[0]> before proceeding to I<local_iov[1]"
-#~ ">, and so on. Likewise, I<remote_iov[0]> is completely read before "
-#~ "proceeding to I<remote_iov[1]>, and so on."
-#~ msgstr ""
-#~ "バッファは配列の順序で処理される。これは、 B<process_vm_readv>() が\n"
-#~ "I<local_iov>[0] が完全に一杯になるまでデータを詰めてから、\n"
-#~ "I<local_iov>[1] に進むといったことを意味する。同様に、\n"
-#~ "I<remote_iov>[0] を完全に読み出してから I<remote_iov>[1] に進み、\n"
-#~ "以降も同様である。"
-
-#~ msgid "The I<flags> argument is currently unused and must be set to 0."
+#~ "If the name was the last link to a file but any processes still have the "
+#~ "file open the file will remain in existence until the last file "
+#~ "descriptor referring to it is closed."
#~ msgstr ""
-#~ "I<flags> 引き数は現在使用されておらず、 0 を設定しなければならない。"
-
-#~ msgid "On error, -1 is returned and I<errno> is set appropriately."
-#~ msgstr "エラーの場合は -1 が返され、 I<errno> が適切に設定される。"
-
-#~ msgid "I<flags> is not 0."
-#~ msgstr "I<flags> が 0 でない。"
-
-#~ msgid "I<liovcnt> or I<riovcnt> is too large."
-#~ msgstr "I<liovcnt> か I<riovcnt> が大きすぎる。"
+#~ "もし削除する名前がファイルへの最後のリンクだが、どれかのプロセスが その"
+#~ "ファイルをまだオープンしている場合は、 そのファイルを参照している最後の"
+#~ "ファイルディスクリプタ (file descriptor) がクローズ (close) されるまで"
+#~ "ファイルは存在し続ける。"
-#~ msgid ""
-#~ "The memory described by I<local_iov> is outside the caller's accessible "
-#~ "address space."
+#~ msgid "If the name referred to a symbolic link the link is removed."
#~ msgstr ""
-#~ "I<local_iov> が示すメモリが呼び出し側がアクセス可能な\n"
-#~ "ã\82¢ã\83\89ã\83¬ã\82¹ç©ºé\96\93ã\81®å¤\96ã\81«ã\81\82る。"
+#~ "もしその名前がシンボリックリンク (symbolic link) を参照していれば、 リンク"
+#~ "ã\81¯å\89\8aé\99¤ã\81\95ã\82\8cる。"
#~ msgid ""
-#~ "The caller does not have permission to access the address space of the "
-#~ "process I<pid>."
+#~ "If the name referred to a socket, fifo or device the name for it is "
+#~ "removed but processes which have the object open may continue to use it."
#~ msgstr ""
-#~ "呼び出し側がプロセス I<pid> のアドレス空間に対するアクセス許可を\n"
-#~ "持っていない。"
-
-#~ msgid "B<ESRCH>"
-#~ msgstr "B<ESRCH>"
-
-#~ msgid "No process with ID I<pid> exists."
-#~ msgstr "ID が I<pid> のプロセスが存在しない。"
+#~ "もし名前がソケット (socket) や fifo やデバイス (device) を参照していれば "
+#~ "名前は削除されるがそのオブジェクトをオープンしていたプロセスは それを使い"
+#~ "続けることができる。"
#~ msgid ""
-#~ "These system calls were added in Linux 3.2. Support is provided in glibc "
-#~ "since version 2.15."
+#~ "The file is opened for synchronous I/O. Any B<write>(2)s on the "
+#~ "resulting file descriptor will block the calling process until the data "
+#~ "has been physically written to the underlying hardware. I<But see NOTES "
+#~ "below>."
#~ msgstr ""
-#~ "これらのシステムコールは Linux 3.2 で追加された。ライブラリによる\n"
-#~ "サポートは glibc バージョン 2.15 以降で提供されている。"
-
-#~ msgid "These system calls are nonstandard Linux extensions."
-#~ msgstr "これらのシステムコールは非標準で Linux による拡張である。"
-
-#~ msgid "#include E<lt>sys/uio.hE<gt>\n"
-#~ msgstr "#include E<lt>sys/uio.hE<gt>\n"
+#~ "ファイルは同期 (synchronous) I/O モードでオープンされる。 B<open>() が返"
+#~ "したファイルディスクリプタに対して B<write>(2) を行うと、必ず呼び出したプ"
+#~ "ロセスをブロックし、 該当ハードウェアに物理的に書き込まれるまで返らない。 "
+#~ "I<以下の「注意」の章も参照。>"
#~ msgid ""
-#~ "int\n"
-#~ "main(void)\n"
-#~ "{\n"
-#~ " struct iovec local[2];\n"
-#~ " struct iovec remote[1];\n"
-#~ " char buf1[10];\n"
-#~ " char buf2[10];\n"
-#~ " ssize_t nread;\n"
-#~ " pid_t pid = 10; /* PID of remote process */\n"
+#~ "Some of these optional flags can be altered using B<fcntl>(2) after the "
+#~ "file has been opened."
#~ msgstr ""
-#~ "int\n"
-#~ "main(void)\n"
-#~ "{\n"
-#~ " struct iovec local[2];\n"
-#~ " struct iovec remote[1];\n"
-#~ " char buf1[10];\n"
-#~ " char buf2[10];\n"
-#~ " ssize_t nread;\n"
-#~ " pid_t pid = 10; /* PID of remote process */\n"
+#~ "これらの選択フラグのいくつかはファイルをオープンした後でも B<fcntl>(2) を"
+#~ "使用して変更することができる。"
#~ msgid ""
-#~ " local[0].iov_base = buf1;\n"
-#~ " local[0].iov_len = 10;\n"
-#~ " local[1].iov_base = buf2;\n"
-#~ " local[1].iov_len = 10;\n"
-#~ " remote[0].iov_base = (void *) 0x10000;\n"
-#~ " remote[1].iov_len = 20;\n"
+#~ "Too many symbolic links were encountered in resolving I<pathname>, or "
+#~ "B<O_NOFOLLOW> was specified but I<pathname> was a symbolic link."
#~ msgstr ""
-#~ " local[0].iov_base = buf1;\n"
-#~ " local[0].iov_len = 10;\n"
-#~ " local[1].iov_base = buf2;\n"
-#~ " local[1].iov_len = 10;\n"
-#~ " remote[0].iov_base = (void *) 0x10000;\n"
-#~ " remote[1].iov_len = 20;\n"
+#~ "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。 または "
+#~ "B<O_NOFOLLOW> が指定されており、 I<pathname> がシンボリックリンクだった。"
#~ msgid ""
-#~ " nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
-#~ " if (nread != 20)\n"
-#~ " return 1;\n"
-#~ " else\n"
-#~ " return 0;\n"
-#~ "}\n"
+#~ "The B<O_CLOEXEC> flag is not specified in POSIX.1-2001, but is specified "
+#~ "in POSIX.1-2008."
#~ msgstr ""
-#~ " nread = process_vm_readv(pid, local, 2, remote, 1, 0);\n"
-#~ " if (nread != 20)\n"
-#~ " return 1;\n"
-#~ " else\n"
-#~ " return 0;\n"
-#~ "}\n"
-
-#~ msgid "B<readv>(2), B<writev>(2)"
-#~ msgstr "B<readv>(2), B<writev>(2)"
-
-#~ msgid "call."
-#~ msgstr "の呼び出しを実行したかのように) ファイル末尾に対して行われる。"
+#~ "B<O_CLOEXEC> フラグは POSIX.1-2001 では規定されていないが、 POSIX.1-2008 "
+#~ "で規定されている。"
#~ msgid ""
-#~ "C89, C99, POSIX.1-2001. LSB deprecates B<gets>(). POSIX.1-2008 marks "
-#~ "B<gets>() obsolescent."
+#~ "B<O_DIRECT> is not specified in POSIX; one has to define B<_GNU_SOURCE> "
+#~ "(before including I<any> header files) to get its definition."
#~ msgstr ""
-#~ "C89, C99, POSIX.1-2001. LSB では B<gets>() は非推奨である。 "
-#~ "POSIX.1-2008 では B<gets>() は廃止予定であるとされている。"
+#~ "B<O_DIRECT> は POSIX では規定されていない。 B<O_DIRECT> の定義を得るには "
+#~ "(「どの」ヘッダファイルをインクルードするよりも前に) B<_GNU_SOURCE> を定"
+#~ "義しなければならない。"
#~ msgid ""
-#~ "This document's use of I<whence> is incorrect English, but maintained for "
-#~ "historical reasons."
+#~ "POSIX provides for three different variants of synchronized I/O, "
+#~ "corresponding to the flags B<O_SYNC>, B<O_DSYNC>, and B<O_RSYNC>. "
+#~ "Currently (2.6.31), Linux implements only B<O_SYNC>, but glibc maps "
+#~ "B<O_DSYNC> and B<O_RSYNC> to the same numerical value as B<O_SYNC>. Most "
+#~ "Linux filesystems don't actually implement the POSIX B<O_SYNC> semantics, "
+#~ "which require all metadata updates of a write to be on disk on returning "
+#~ "to user space, but only the B<O_DSYNC> semantics, which require only "
+#~ "actual file data and metadata necessary to retrieve it to be on disk by "
+#~ "the time the system call returns."
#~ msgstr ""
-#~ "この文章で使用した I<whence> は英語として正しくないが、 歴史的理由によりそ"
-#~ "のまま使われている。"
-
-#~ msgid "B<EBUSY> (not on Linux)"
-#~ msgstr "B<EBUSY> (Linux 以外)"
+#~ "POSIX では、3 種類の同期 I/O が提供されており、 B<O_SYNC>, B<O_DSYNC>, "
+#~ "B<O_RSYNC> フラグがこれに対応するものである。 今のところ (カーネル "
+#~ "2.6.31)、 Linux では B<O_SYNC> だけが実装されているが、 glibc は "
+#~ "B<O_DSYNC> と B<O_RSYNC> に B<O_SYNC> と同じ数値を割り当てている。 ほとん"
+#~ "どの Linux のファイルシステムは、実際には POSIX の B<O_SYNC> の動作ではな"
+#~ "く B<O_DSYNC> の動作だけを実装している。 POSIX の B<O_SYNC> では、 B<open>"
+#~ "() がユーザ空間に返る際に、書き込みに関する全てのメタデータの 更新がディ"
+#~ "スクに書き込まれている必要がある。 一方、 B<O_DSYNC> では、 B<open>() が"
+#~ "返るまでに、実際のファイルのデータとそのデータを取得するために 必要なメタ"
+#~ "データだけがディスクに書き込まれていればよい。"