msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2013-07-15 16:09+0900\n"
-"PO-Revision-Date: 2013-05-07 03:41+0900\n"
+"POT-Creation-Date: 2014-06-08 01:30+0900\n"
+"PO-Revision-Date: 2014-06-08 02:36+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
#. type: TH
#: build/C/man3/asprintf.3:27 build/C/man3/fcloseall.3:25
-#: build/C/man3/ferror.3:44 build/C/man3/fmtmsg.3:13
-#: build/C/man3/stdio_ext.3:25 build/C/man3/tmpnam.3:27
-#, fuzzy, no-wrap
-#| msgid "2013-03-17"
+#: build/C/man3/fmtmsg.3:13 build/C/man3/stdio_ext.3:25
+#, no-wrap
msgid "2013-06-21"
-msgstr "2013-03-17"
+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:72
+#: 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"
#. type: Plain text
#: build/C/man3/asprintf.3:53
-#, fuzzy
-#| 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."
-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 (\\(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."
+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 (\\(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 バイトも含"
-"めて) 保持するのに十分な大きさのメモリを確保し、 最初の引数にその文字列への"
-"ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ã\80\81ä¸\8dè¦\81ã\81«ã\81ªã\81£ã\81\9fã\82\89 B<free>(3) ã\81«æ¸¡ã\81\97ã\80\81å\89²ã\82\8aå½\93ã\81¦"
-"られた記憶領域を解放すべきである。"
+"と B<vsprintf>(3) 関数とに似ているが、 出力文字列を (終端のヌルバイト (\\(aq"
+"\\e0\\(aq) も含めて) 保持するのに十分な大きさのメモリを確保し、 最初の引数に"
+"ã\81\9dã\81®æ\96\87å\97å\88\97ã\81¸ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\82\92è¿\94ã\81\99ã\80\82 ã\81\93ã\81®ã\83\9dã\82¤ã\83³ã\82¿ã\81¯ã\80\81ä¸\8dè¦\81ã\81«ã\81ªã\81£ã\81\9fã\82\89 B<free>(3) ã\81«"
+"渡し、割り当てられた記憶領域を解放すべきである。"
#. 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/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:75 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:162 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:187 build/C/man2/llseek.2:62
+#: build/C/man2/lseek.2:179 build/C/man2/open.2:781
+#: 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/man2/readlink.2:153 build/C/man2/readv.2:177
+#: build/C/man3/remove.3:60 build/C/man2/rename.2:203 build/C/man2/rmdir.2:40
#: build/C/man3/scanf.3:530 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:205 build/C/man2/write.2:89
+#: 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 "返り値"
#: 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:60 build/C/man3/ferror.3:115
-#: build/C/man3/fflush.3:93 build/C/man3/fgetwc.3:70
-#: build/C/man3/flockfile.3:127 build/C/man3/fmemopen.3:195
+#: 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:68 build/C/man3/fread.3:103 build/C/man3/fseek.3:168
-#: build/C/man3/fseeko.3:87 build/C/man3/getline.3:137 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:200 build/C/man2/open.2:629 build/C/man3/perror.3:111
-#: build/C/man2/pipe.2:118 build/C/man3/popen.3:172 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:577 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:338 build/C/man2/llseek.2:81
+#: build/C/man2/lseek.2:217 build/C/man2/open.2:1019
+#: 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:405
+#: 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:98
-#: build/C/man3/tmpfile.3:78 build/C/man3/tmpnam.3:87
-#: build/C/man2/unlink.2:141 build/C/man3/unlocked_stdio.3:113
-#: build/C/man3/wprintf.3:213 build/C/man2/write.2:185
+#: build/C/man2/symlink.2:228 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:77
#: build/C/man3/dprintf.3:95 build/C/man3/fclose.3:102
-#: build/C/man3/fcloseall.3:62 build/C/man3/ferror.3:122
-#: build/C/man3/fflush.3:108 build/C/man3/fgetwc.3:87
-#: build/C/man3/flockfile.3:135 build/C/man3/fmemopen.3:341
+#: 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:85 build/C/man3/fread.3:105 build/C/man3/fseek.3:170
-#: build/C/man3/fseeko.3:93 build/C/man3/getline.3:171 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:245 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:201
-#: 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:715 build/C/man3/setbuf.3:200 build/C/man3/stdin.3:154
+#: 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:391 build/C/man2/llseek.2:87
+#: build/C/man2/lseek.2:262 build/C/man3/lseek64.3:164
+#: build/C/man2/open.2:1459 build/C/man2/open_by_handle_at.2:720
+#: 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:226
+#: build/C/man2/readlink.2:313 build/C/man2/readv.2:284
+#: build/C/man3/remove.3:86 build/C/man2/rename.2:425 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:164 build/C/man7/symlink.7:471
+#: build/C/man2/symlink.2:247 build/C/man7/symlink.7:512
#: build/C/man3/tempnam.3:168 build/C/man3/tmpfile.3:97
-#: build/C/man3/tmpnam.3:163 build/C/man2/unlink.2:148
-#: build/C/man3/unlocked_stdio.3:136 build/C/man3/wprintf.3:253
-#: build/C/man2/write.2:211
+#: 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:250
#, no-wrap
msgid "SEE ALSO"
msgstr "関連項目"
#. type: SH
#: 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:68 build/C/man3/ferror.3:127
-#: build/C/man3/fflush.3:116 build/C/man3/fgetwc.3:92
-#: build/C/man3/flockfile.3:137 build/C/man3/fmemopen.3:344
+#: 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:89 build/C/man3/fread.3:111 build/C/man3/fseek.3:173
-#: build/C/man3/fseeko.3:95 build/C/man3/getline.3:178 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:252 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:211
-#: 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:722 build/C/man3/setbuf.3:208 build/C/man3/stdin.3:160
-#: build/C/man3/stdio.3:257 build/C/man3/stdio_ext.3:154
-#: build/C/man2/symlink.2:176 build/C/man7/symlink.7:489
-#: build/C/man3/tempnam.3:173 build/C/man3/tmpfile.3:103
-#: build/C/man3/tmpnam.3:168 build/C/man2/unlink.2:161
-#: build/C/man3/unlocked_stdio.3:139 build/C/man3/wprintf.3:260
-#: 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:400
+#: build/C/man2/llseek.2:90 build/C/man2/lseek.2:269
+#: build/C/man3/lseek64.3:167 build/C/man2/open.2:1481
+#: build/C/man2/open_by_handle_at.2:736 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:239 build/C/man2/readlink.2:320
+#: build/C/man2/readv.2:288 build/C/man3/remove.3:97 build/C/man2/rename.2:433
+#: 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:258
+#: 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:262
#, no-wrap
msgid "COLOPHON"
msgstr "この文書について"
#. type: Plain text
-#: 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:75 build/C/man3/ferror.3:134
-#: build/C/man3/fflush.3:123 build/C/man3/fgetwc.3:99
-#: build/C/man3/flockfile.3:144 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:96 build/C/man3/fread.3:118 build/C/man3/fseek.3:180
-#: build/C/man3/fseeko.3:102 build/C/man3/getline.3:185
-#: 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:259
-#: 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:218
-#: 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:729 build/C/man3/setbuf.3:215 build/C/man3/stdin.3:167
-#: build/C/man3/stdio.3:264 build/C/man3/stdio_ext.3:161
-#: build/C/man2/symlink.2:183 build/C/man7/symlink.7:496
-#: build/C/man3/tempnam.3:180 build/C/man3/tmpfile.3:110
-#: build/C/man3/tmpnam.3:175 build/C/man2/unlink.2:168
-#: build/C/man3/unlocked_stdio.3:146 build/C/man3/wprintf.3:267
-#: build/C/man2/write.2:230
-#, fuzzy
-#| msgid ""
-#| "This page is part of release 3.51 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/."
-msgid ""
-"This page is part of release 3.52 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/."
-msgstr ""
-"この man ページは Linux I<man-pages> プロジェクトのリリース 3.51 の一部\n"
+#: build/C/man3/asprintf.3:79 build/C/man3/ctermid.3:87
+#: build/C/man3/dprintf.3:105 build/C/man3/fclose.3:116
+#: build/C/man3/fcloseall.3:76 build/C/man3/ferror.3:139
+#: build/C/man3/fflush.3:129 build/C/man3/fgetc.3:158
+#: build/C/man3/fgetwc.3:100 build/C/man3/flockfile.3:153
+#: build/C/man3/fmemopen.3:352 build/C/man3/fmtmsg.3:320
+#: build/C/man3/fopen.3:362 build/C/man3/fopencookie.3:450
+#: build/C/man3/fpurge.3:93 build/C/man3/fputwc.3:97 build/C/man3/fread.3:119
+#: build/C/man3/fseek.3:182 build/C/man3/fseeko.3:120
+#: build/C/man3/getline.3:187 build/C/man3/gets.3:116 build/C/man3/getw.3:101
+#: build/C/man2/link.2:408 build/C/man2/llseek.2:98 build/C/man2/lseek.2:277
+#: build/C/man3/lseek64.3:175 build/C/man2/open.2:1489
+#: build/C/man2/open_by_handle_at.2:744 build/C/man3/perror.3:152
+#: build/C/man2/pipe.2:243 build/C/man3/popen.3:219 build/C/man3/printf.3:1102
+#: build/C/man3/puts.3:132 build/C/man2/read.2:247 build/C/man2/readlink.2:328
+#: build/C/man2/readv.2:296 build/C/man3/remove.3:105
+#: build/C/man2/rename.2:441 build/C/man2/rmdir.2:149 build/C/man3/scanf.3:753
+#: build/C/man3/setbuf.3:225 build/C/man3/stdin.3:168 build/C/man3/stdio.3:265
+#: build/C/man3/stdio_ext.3:162 build/C/man2/symlink.2:266
+#: build/C/man7/symlink.7:538 build/C/man3/tempnam.3:181
+#: build/C/man3/tmpfile.3:111 build/C/man3/tmpnam.3:185
+#: build/C/man2/unlink.2:304 build/C/man3/unlocked_stdio.3:147
+#: build/C/man3/wprintf.3:266 build/C/man2/write.2:270
+msgid ""
+"This page is part of release 3.68 of the Linux I<man-pages> project. A "
+"description of the project, information about reporting bugs, and the latest "
+"version of this page, can be found at \\%http://www.kernel.org/doc/man-"
+"pages/."
+msgstr ""
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.68 の一部\n"
"である。プロジェクトの説明とバグ報告に関する情報は\n"
"http://www.kernel.org/doc/man-pages/ に書かれている。"
#. type: TH
#: build/C/man3/ctermid.3:26
-#, fuzzy, no-wrap
-#| msgid "2013-03-05"
+#, no-wrap
msgid "2013-07-04"
-msgstr "2013-03-05"
+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:56 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) 参照):"
#. type: SH
#: build/C/man3/ctermid.3:61 build/C/man3/fcloseall.3:55
-#: build/C/man3/ferror.3:106 build/C/man3/fmtmsg.3:225
-#: build/C/man3/stdio_ext.3:132 build/C/man3/tmpnam.3:77
+#: 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 ""
+msgstr "属性"
#. type: SS
#: build/C/man3/ctermid.3:62 build/C/man3/fcloseall.3:56
-#: build/C/man3/ferror.3:107 build/C/man3/fmtmsg.3:226
-#: build/C/man3/stdio_ext.3:133 build/C/man3/tmpnam.3:78
+#: 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 ""
+msgstr "マルチスレッディング (pthreads(7) 参照)"
#. type: Plain text
#: build/C/man3/ctermid.3:67
"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:69
#. type: SH
#: build/C/man3/ctermid.3:69 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:178
-#: 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:646 build/C/man3/setbuf.3:170
-#: build/C/man3/tempnam.3:158 build/C/man3/tmpnam.3:156
-#: build/C/man2/unlink.2:145
+#: build/C/man3/fopen.3:331 build/C/man3/gets.3:72 build/C/man3/getw.3:83
+#: build/C/man2/link.2:385 build/C/man2/open.2:1440 build/C/man3/popen.3:178
+#: build/C/man3/printf.3:930 build/C/man3/puts.3:105 build/C/man2/read.2:187
+#: build/C/man2/readv.2:258 build/C/man3/remove.3:83 build/C/man2/rename.2:414
+#: 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 build/C/man2/write.2:211
#, no-wrap
msgid "BUGS"
msgstr "バグ"
#. 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:62
+#: 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:65
+#: 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:65
+#: build/C/man2/symlink.2:68 build/C/man2/unlink.2:60
#, no-wrap
msgid "Before glibc 2.10:"
msgstr "glibc 2.10 より前:"
#: 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:84
-#: build/C/man3/getline.3:125 build/C/man2/link.2:57 build/C/man2/llseek.2:69
-#: build/C/man2/lseek.2:170 build/C/man2/open.2:485 build/C/man2/pipe.2:97
-#: build/C/man3/popen.3:146 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:547 build/C/man2/symlink.2:89
-#: build/C/man3/tempnam.3:94 build/C/man3/tmpfile.3:56
-#: build/C/man3/tmpnam.3:75 build/C/man2/unlink.2:60 build/C/man2/write.2:107
+#: build/C/man3/fseek.3:136 build/C/man3/fseeko.3:101
+#: build/C/man3/getline.3:127 build/C/man2/link.2:192 build/C/man2/llseek.2:69
+#: build/C/man2/lseek.2:187 build/C/man2/open.2:790
+#: 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:208
+#: 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:171
-#: build/C/man2/read.2:114 build/C/man3/scanf.3:553 build/C/man2/write.2:126
+#: build/C/man3/fseek.3:137 build/C/man2/link.2:276 build/C/man2/llseek.2:70
+#: build/C/man2/lseek.2:188 build/C/man2/open.2:1005
+#: 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:349
+#: 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:72
+#: 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:89 build/C/man2/link.2:143 build/C/man2/llseek.2:84
-#: build/C/man2/lseek.2:210 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:608 build/C/man3/stdin.3:122
-#: build/C/man2/symlink.2:155 build/C/man3/tempnam.3:103
-#: build/C/man3/tmpfile.3:80 build/C/man3/tmpnam.3:92
-#: build/C/man3/wprintf.3:215 build/C/man2/write.2:194
+#: build/C/man3/fseeko.3:106 build/C/man2/link.2:347 build/C/man2/llseek.2:84
+#: build/C/man2/lseek.2:227 build/C/man2/open.2:1063
+#: build/C/man2/open_by_handle_at.2:359 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:238 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/fcloseall.3:60
-#, fuzzy
-#| msgid ""
-#| "The B<__fwritable>() function returns a nonzero value if the stream "
-#| "allows writing, and zero otherwise."
msgid ""
"The B<fcloseall>() function does not lock the streams, so it is not thread-"
"safe."
msgstr ""
-"B<__fwritable>() 関数は、ストリームが書き込み可能な場合は 0 以外を、 それ以"
-"外の場合は 0 を返す。"
+"B<fcloseall>() 関数はストリームのロックを行わない。そのため、スレッドセーフで"
+"はない。"
#. type: Plain text
#: build/C/man3/fcloseall.3:62
msgid "FERROR"
msgstr "FERROR"
+#. type: TH
+#: build/C/man3/ferror.3:44
+#, no-wrap
+msgid "2014-01-15"
+msgstr "2014-01-15"
+
#. type: Plain text
#: build/C/man3/ferror.3:47
msgid "clearerr, feof, ferror, fileno - check and reset stream status"
"reset only by the B<clearerr>() function."
msgstr ""
"関数 B<ferror>() は I<stream> で示されるストリームのエラー指示子をテスト"
-"し、 セットされていれば 0 以外の数を返す。 エラー指示子は、関数 B<clearerr>"
-"() によってのみリセットすることができる。"
+"し、 セットされていれば 0 以外の数を返す。 エラー指示子は、関数 "
+"B<clearerr>() によってのみリセットすることができる。"
#. type: Plain text
#: build/C/man3/ferror.3:93
"関数 B<fileno>() は、引数 I<stream> を調べ、その整数のディスクリプタを返す。"
#. type: Plain text
-#: build/C/man3/ferror.3:96 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:115
-#, fuzzy
-#| msgid ""
-#| "The functions B<clearerr>(), B<feof>(), and B<ferror>() conform to C89 "
-#| "and C99."
msgid ""
"The B<clearerr>(), B<feof>(), B<ferror>(), and B<fileno>() functions are "
"thread-safe."
msgstr ""
-"関数 B<clearerr>(), B<feof>(), B<ferror>() は C89 と C99 に準拠している。"
+"関数 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:127
+#: 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
"If the I<stream> argument is NULL, B<fflush>() flushes I<all> open output "
"streams."
msgstr ""
-"I<stream> 引数が .BR NULL ならば、 B<fflush>() は開いているI<すべての>出力ス"
-"ã\83\88ã\83ªã\83¼ã\83 ã\82\92ã\83\95ã\83©ã\83\83ã\82·ã\83¥ã\81\99ã\82\8bã\80\82"
+"I<stream> 引数が NULL ならば、 B<fflush>() は開いているI<すべての>出力スト"
+"リームをフラッシュする。"
#. type: Plain text
#: build/C/man3/fflush.3:74
"ある。 この場合 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
+#: 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)"
+msgstr ""
+"B<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), "
+"B<setbuf>(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> または改行文字を読み込んだ後で停止"
+"する。 読み込まれた改行文字はバッファに格納される。 終端のヌルバイト (\\(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 ""
-"B<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), B<setbuf>"
-"(3), B<unlocked_stdio>(3)"
+"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<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), B<setbuf>"
-"(3), B<unlocked_stdio>(3)"
+"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
msgstr "FGETWC"
#. type: TH
-#: build/C/man3/fgetwc.3:18 build/C/man3/fputwc.3:16 build/C/man3/getline.3:26
-#: build/C/man3/popen.3:40 build/C/man3/tempnam.3:25
-#, fuzzy, no-wrap
-#| msgid "2013-03-17"
+#: build/C/man3/fgetwc.3:18 build/C/man3/fputwc.3:16 build/C/man3/popen.3:40
+#, no-wrap
msgid "2013-04-19"
-msgstr "2013-03-17"
+msgstr "2013-04-19"
#. type: Plain text
#: build/C/man3/fgetwc.3:21
#. type: Plain text
#: build/C/man3/fgetwc.3:44
msgid ""
-"The B<fgetwc>() function is the wide-character equivalent of the B<fgetc>"
-"(3) function. It reads a wide character from I<stream> and returns it. If "
-"the end of stream is reached, or if I<ferror(stream)> becomes true, it "
-"returns B<WEOF>. If a wide-character conversion error occurs, it sets "
+"The B<fgetwc>() function is the wide-character equivalent of the "
+"B<fgetc>(3) function. It reads a wide character from I<stream> and returns "
+"it. If the end of stream is reached, or if I<ferror(stream)> becomes true, "
+"it returns B<WEOF>. If a wide-character conversion error occurs, it sets "
"I<errno> to B<EILSEQ> and returns B<WEOF>."
msgstr ""
"B<fgetwc>() 関数は、 B<fgetc>(3) に対応するワイド文字関数である。 この関数"
#. type: Plain text
#: build/C/man3/fgetwc.3:64
-#, fuzzy
-#| msgid ""
-#| "The B<fgetwc>() function returns the next wide-character from the "
-#| "stream, or B<WEOF>."
msgid ""
"The B<fgetwc>() function returns the next wide-character from the stream, "
"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:66 build/C/man3/fputwc.3:65
msgstr "FLOCKFILE"
#. type: TH
-#: build/C/man3/flockfile.3:25 build/C/man3/unlocked_stdio.3:25
+#: build/C/man3/flockfile.3:25
#, no-wrap
-msgid "2008-08-29"
-msgstr "2008-08-29"
+msgid "2013-07-23"
+msgstr "2013-07-23"
#. type: Plain text
#: build/C/man3/flockfile.3:28
msgstr "なし。"
#. type: Plain text
-#: build/C/man3/flockfile.3:129 build/C/man3/popen.3:174
+#: 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:129
+#: build/C/man3/flockfile.3:137
#, no-wrap
msgid "AVAILABILITY"
msgstr "可用性"
#. type: Plain text
-#: build/C/man3/flockfile.3:135
+#: 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:137
+#: 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
msgstr ""
"引き数 I<mode> は B<fopen>(3) の場合と同じである。 I<mode> で追記モード\n"
"(append mode) が指定された場合、ファイル位置の初期値は バッファ中の\n"
-"最初の NULL バイト (\\(aq\\e0\\(aq) の位置に設定される。\n"
+"最初のヌルバイト (\\(aq\\e0\\(aq) の位置に設定される。\n"
"それ以外の場合は、ファイル位置の初期値はバッファの先頭になる。 \n"
"glibc 2.9 以降では、文字 \\(aqb\\(aq を I<mode> の二番目の文字として指定\n"
"することができる。 この文字は「バイナリ」モードを指定するものである。\n"
"the buffer (and that I<size> counts that byte) to allow for this."
msgstr ""
"書き込み用にオープンされたストリームをフラッシュ (B<fflush>(3)) やクローズ "
-"(B<fclose>(3)) した時に、 (バッファに空きがあれば) NULL バイトがバッファの末"
+"(B<fclose>(3)) した時に、 (バッファに空きがあれば) ヌルバイトがバッファの末"
"尾に書き込まれる。 このようにするためには、呼び出し元は バッファに 1バイト余"
"裕を作る (I<size> にこの 1バイトを含めた値を指定する) 必要がある。"
"the buffer will only indicate end-of-file when the file pointer advances "
"I<size> bytes past the start of the buffer."
msgstr ""
-"読み出し用にオープンされたストリームでは、 バッファ内に NULL バイト (\\(aq"
+"読み出し用にオープンされたストリームでは、 バッファ内にヌルバイト (\\(aq"
"\\e0\\(aq) があっても 読み出し操作がファイル末尾 (end-of-file) を返すことはな"
"い。 バッファからの読み出しでファイル末尾が返るのは、 ファイルポインタがバッ"
"ファの先頭から I<size> バイトを越えて先に進もうとした場合だけである。"
"A null byte is maintained at the end of the buffer. This byte is I<not> "
"included in the size value stored at I<sizeloc>."
msgstr ""
-"バッファ末尾の NULL バイトは保持される。 この NULL バイトは I<sizeloc> に格納"
-"ã\81\95ã\82\8cã\82\8bã\82µã\82¤ã\82ºã\81«ã\81¯ã\80\8cå\90«ã\81¾ã\82\8cã\81ªã\81\84ã\80\8dã\80\82"
+"バッファ末尾のヌルバイトは保持される。 このヌルバイトは I<sizeloc> に格納され"
+"るサイズには「含まれない」。"
#. type: Plain text
#: build/C/man3/fmemopen.3:170
msgid ""
-"The stream's file position can be changed with B<fseek>(3) or B<fseeko>"
-"(3). Moving the file position past the end of the data already written "
-"fills the intervening space with zeros."
+"The stream's file position can be changed with B<fseek>(3) or "
+"B<fseeko>(3). Moving the file position past the end of the data already "
+"written fills the intervening space with zeros."
msgstr ""
"ストリームのファイル位置は B<fseek>(3) や B<fseeko>(3) で変更できる。 すで"
"にデータが書き込まれた領域の末尾より先にファイル位置を動かすと、 その間の領域"
#. type: SH
#: build/C/man3/fmemopen.3:188 build/C/man3/fmtmsg.3:222
-#: build/C/man3/getline.3:135 build/C/man2/pipe.2:113 build/C/man2/readv.2:209
+#: build/C/man3/getline.3:137 build/C/man2/link.2:334 build/C/man2/open.2:1015
+#: 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:397 build/C/man2/symlink.2:224
+#: build/C/man2/unlink.2:269
#, no-wrap
msgid "VERSIONS"
msgstr "バージョン"
"to append at the end of the stream."
msgstr ""
"B<fmemopen>() に追記モード (\"a\" や \"a+\") を指定すると、\n"
-"ファイル位置の初期値は最初の NULL バイトに設定されるが、(ファイル\n"
+"ファイル位置の初期値は最初のヌルバイトに設定されるが、(ファイル\n"
"オフセットをストリームの末尾以外の位置に再設定した場合)それ以降の\n"
"書き込みではストリームの末尾への追記が行われる訳ではない。"
#: 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."
msgstr ""
"B<fmemopen>() の I<mode> 引き数に追記モード (\"a\" や \"a+\") を指定し、\n"
-"I<size> 引き数で指定した範囲の I<buf> 内に NULL バイトがない場合、\n"
+"I<size> 引き数で指定した範囲の I<buf> 内にヌルバイトがない場合、\n"
"POSIX.1-2008 では、ファイル位置の初期値はバッファの末尾の直後の\n"
"バイトに設定すべきとされている。しかし、glibc の B<fmemopen>() では\n"
"この場合ファイル位置は -1 に設定される。"
#. type: SH
#: build/C/man3/fmemopen.3:276 build/C/man3/fmtmsg.3:256
-#: build/C/man3/fopencookie.3:247 build/C/man3/getline.3:144
-#: 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:681
+#: build/C/man3/fopencookie.3:247 build/C/man3/getline.3:146
+#: build/C/man2/open_by_handle_at.2:439 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"
#. type: Plain text
#: build/C/man3/fmtmsg.3:36
msgid ""
-"This function displays a message described by its arguments on the device"
-"(s) specified in the I<classification> argument. For messages written to "
-"I<stderr>, the format depends on the B<MSGVERB> environment variable."
+"This function displays a message described by its arguments on the "
+"device(s) specified in the I<classification> argument. For messages "
+"written to I<stderr>, the format depends on the B<MSGVERB> environment "
+"variable."
msgstr ""
"この関数は、引き数で記述されたメッセージを、 I<classification> 引き数で指定さ"
"れたデバイス上に表示する。 I<stderr> に書き出されるメッセージのフォーマット"
#. type: Plain text
#: build/C/man3/fmtmsg.3:79
-#, fuzzy
-#| msgid ""
-#| "Each of the arguments can have a dummy value. The dummy classification "
-#| "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 synonym for B<NO_SEV>."
msgid ""
"Each of the arguments can have a dummy value. The dummy classification "
"value B<MM_NULLMC> (0L) does not specify any output, so nothing is printed. "
"各引き数にはダミーの値を入れることができる。 ダミーの 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> の別名であ"
-"る。"
+"表す。 値 B<MM_NULLLBL>, B<MM_NULLTXT>, B<MM_NULLACT>, B<MM_NULLTAG> は "
+"I<((char\\ *)\\ 0)> と空文字列の別名であり、 B<MM_NULLSEV> は B<NO_SEV> の別"
+"名である。"
#. type: SS
#: build/C/man3/fmtmsg.3:79
"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
"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
"replaced by \"pfmt() and addsev()\" or by \"pfmt(), vpfmt(), lfmt(), and "
"vlfmt()\", and will be removed later."
msgstr ""
-"System V と UnixWare の man ページには、 「これらの関数は \"pfmt() と addsev"
-"()\" または \"pfmt(), vpfmt(), lfmt(), vlfmt()\" で置き換えられており、 将来"
-"は削除される予定である」と書かれている。"
+"System V と UnixWare の man ページには、 「これらの関数は \"pfmt() と "
+"addsev()\" または \"pfmt(), vpfmt(), lfmt(), vlfmt()\" で置き換えられてお"
+"ã\82\8aã\80\81 å°\86æ\9d¥ã\81¯å\89\8aé\99¤ã\81\95ã\82\8cã\82\8bäº\88å®\9aã\81§ã\81\82ã\82\8bã\80\8dã\81¨æ\9b¸ã\81\8bã\82\8cã\81¦ã\81\84ã\82\8bã\80\82"
#. type: Plain text
#: build/C/man3/fmtmsg.3:261
"output and input, unless an input operation encounters end-of-file. (If "
"this condition is not met, then a read is allowed to return the result of "
"writes other than the most recent.) Therefore it is good practice (and "
-"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."
+"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)."
msgstr ""
"読み出し/書き込みストリームに対しては任意の順序で読み書きを行うことができ"
"る。 ただし ANSI C では、 (入力操作がファイルの末尾に到達した場合を除いて) "
#. type: TP
#: build/C/man3/fopen.3:202 build/C/man3/fseek.3:142
-#: build/C/man3/getline.3:126 build/C/man2/llseek.2:77
-#: build/C/man2/lseek.2:175 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:565
-#: build/C/man2/write.2:154
+#: build/C/man3/getline.3:128 build/C/man2/link.2:282 build/C/man2/llseek.2:77
+#: build/C/man2/lseek.2:192 build/C/man2/open.2:832 build/C/man2/open.2:840
+#: build/C/man2/open.2:845 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:251
+#: build/C/man2/rename.2:376 build/C/man2/rename.2:385 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: Plain text
#: build/C/man3/fopen.3:255
msgid ""
-"The B<fopen>() and B<freopen>() functions conform to C89. The B<fdopen>"
-"() function conforms to POSIX.1-1990."
+"The B<fopen>() and B<freopen>() functions conform to C89. The "
+"B<fdopen>() function conforms to POSIX.1-1990."
msgstr ""
"B<fopen>() 関数と B<freopen>() 関数は C89に準拠している。 B<fdopen>() 関数"
"は POSIX.1-1990 に準拠している。"
#: build/C/man3/fopen.3:348
msgid ""
"When parsing for individual flag characters in I<mode> (i.e., the characters "
-"preceding the \"ccs\" specification), the glibc implementation of B<fopen>"
-"() and B<freopen>() limits the number of characters examined in I<mode> to "
-"7 (or, in glibc versions before 2.14, to 6, which was not enough to include "
-"possible specifications such as \"rb+cmxe\"). The current implementation of "
-"B<fdopen>() parses at most 5 characters in I<mode>."
+"preceding the \"ccs\" specification), the glibc implementation of "
+"B<fopen>() and B<freopen>() limits the number of characters examined in "
+"I<mode> to 7 (or, in glibc versions before 2.14, to 6, which was not enough "
+"to include possible specifications such as \"rb+cmxe\"). The current "
+"implementation of B<fdopen>() parses at most 5 characters in I<mode>."
msgstr ""
"I<mode> の個々のフラグ文字 (\"ccs\" 指定の前の文字) を解釈する際に、\n"
"glibc の B<fopen>() と B<freopen>() の実装では、\n"
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"
msgid ""
"The B<fopencookie>() function allows the programmer to create a custom "
"implementation for a standard I/O stream. This implementation can store the "
-"stream's data at a location of its own choosing; for example, B<fopencookie>"
-"() is used to implement B<fmemopen>(3), which provides a stream interface "
-"to data that is stored in a buffer in memory."
+"stream's data at a location of its own choosing; for example, "
+"B<fopencookie>() is used to implement B<fmemopen>(3), which provides a "
+"stream interface to data that is stored in a buffer in memory."
msgstr ""
#. type: Plain text
#. 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:633
-#: build/C/man3/scanf.3:638 build/C/man3/scanf.3:644
-#: 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:535 build/C/man2/open.2:543
+#: build/C/man2/open.2:549 build/C/man2/open.2:555 build/C/man2/open.2:561
+#: build/C/man2/open.2:574 build/C/man2/open.2:695 build/C/man2/open.2:703
+#: 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 "*"
"Define a \"cookie\" data type, a structure that provides bookkeeping "
"information (e.g., where to store data) used by the aforementioned hook "
"functions. The standard I/O package knows nothing about the contents of "
-"this cookie (thus it is typed as I<void\\ *> when passed to B<fopencookie>"
-"()), but automatically supplies the cookie as the first argument when "
-"calling the hook functions."
+"this cookie (thus it is typed as I<void\\ *> when passed to "
+"B<fopencookie>()), but automatically supplies the cookie as the first "
+"argument when calling the hook functions."
msgstr ""
#. type: Plain text
#. 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:579
+#: build/C/man2/open_by_handle_at.2:719 build/C/man2/readlink.2:312
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
#. type: Plain text
#: build/C/man3/fputwc.3:43
msgid ""
-"The B<fputwc>() function is the wide-character equivalent of the B<fputc>"
-"(3) function. It writes the wide character I<wc> to I<stream>. If I<ferror"
-"(stream)> becomes true, it returns B<WEOF>. If a wide-character conversion "
-"error occurs, it sets I<errno> to B<EILSEQ> and returns B<WEOF>. Otherwise "
-"it returns I<wc>."
+"The B<fputwc>() function is the wide-character equivalent of the "
+"B<fputc>(3) function. It writes the wide character I<wc> to I<stream>. If "
+"I<ferror(stream)> becomes true, it returns B<WEOF>. If a wide-character "
+"conversion error occurs, it sets I<errno> to B<EILSEQ> and returns B<WEOF>. "
+"Otherwise, it returns I<wc>."
msgstr ""
"B<fputwc>() 関数は、 B<fputc>(3) に対応するワイド文字関数である。この 関数"
"は、ワイド文字 I<wc> を I<stream> に書き込む。 I<ferror(stream)> が真になる"
#. type: Plain text
#: build/C/man3/fputwc.3:63
-#, fuzzy
-#| msgid ""
-#| "The B<fputwc>() function returns I<wc> if no error occurred, or B<WEOF> "
-#| "to indicate an error."
msgid ""
"The B<fputwc>() function returns I<wc> if no error occurred, or B<WEOF> to "
"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:68
msgstr "FSEEK"
#. type: TH
-#: build/C/man3/fseek.3:42
+#: build/C/man3/fseek.3:42 build/C/man3/perror.3:31
#, no-wrap
-msgid "1993-11-29"
-msgstr "1993-11-29"
+msgid "2014-05-28"
+msgstr "2014-05-28"
#. type: Plain text
#: build/C/man3/fseek.3:45
#. type: Plain text
#: build/C/man3/fseek.3:57
-msgid "B<int fsetpos(FILE *>I<stream>B<, fpos_t *>I<pos>B<);>"
-msgstr "B<int fsetpos(FILE *>I<stream>B<, fpos_t *>I<pos>B<);>"
+msgid "B<int fsetpos(FILE *>I<stream>B<, const fpos_t *>I<pos>B<);>"
+msgstr "B<int fsetpos(FILE *>I<stream>B<, const fpos_t *>I<pos>B<);>"
#. type: Plain text
#: build/C/man3/fseek.3:81
"I<fpos_t> object may be a complex object and these routines may be the only "
"way to portably reposition a text stream."
msgstr ""
-"B<fgetpos>() 関数と B<fsetpos>() 関数は、それぞれ B<ftell>() と B<fseek>"
-"() で I<whence> に B<SEEK_SET> を指定した場合と同様の機能を、異なるインター"
-"ã\83\95ã\82§ã\83¼ã\82¹ã\81§æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82 B<fgetpos>() ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81®ç\8f¾å\9c¨ã\81®å\80¤ã\82\92 I<pos> ã\81\8c"
-"参照するオブジェクトに保存し、 B<fsetpos>() はファイルオフセットを I<pos> に"
-"設定する。 UNIX 以外のシステムにおいては、 I<fpos_t> が構造体などの複雑なオブ"
-"ジェクトになっていて、これらのルーチンがテキス トストリームでファイル位置を変"
-"更する方法のうち、移植性のある唯一のもの になっている場合もある。"
+"B<fgetpos>() 関数と B<fsetpos>() 関数は、それぞれ B<ftell>() と "
+"B<fseek>() で I<whence> に B<SEEK_SET> を指定した場合と同様の機能を、異なる"
+"ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81§æ\8f\90ä¾\9bã\81\99ã\82\8bã\80\82 B<fgetpos>() ã\81¯ã\83\95ã\82¡ã\82¤ã\83«ã\82ªã\83\95ã\82»ã\83\83ã\83\88ã\81®ç\8f¾å\9c¨ã\81®å\80¤ã\82\92 "
+"I<pos> が参照するオブジェクトに保存し、 B<fsetpos>() はファイルオフセットを "
+"I<pos> に設定する。 UNIX 以外のシステムにおいては、 I<fpos_t> が構造体などの"
+"複雑なオブジェクトになっていて、これらのルーチンがテキス トストリームでファイ"
+"ル位置を変更する方法のうち、移植性のある唯一のもの になっている場合もある。"
#. type: Plain text
#: build/C/man3/fseek.3:136
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 "
"B<fflush>(3), B<fstat>(2), B<lseek>(2), and B<malloc>(3)."
msgstr ""
-"B<fgetpos>(), B<fseek>(), B<fsetpos>(), B<ftell>() は、それぞれ B<fflush>"
-"(3), B<fstat>(2), B<lseek>(2), B<malloc>(3) などのルーチンを呼び出す際に失敗"
-"する可能性がある。この場合は それぞれ対応した I<errno> が設定される。"
+"B<fgetpos>(), B<fseek>(), B<fsetpos>(), B<ftell>() は、それぞれ "
+"B<fflush>(3), B<fstat>(2), B<lseek>(2), B<malloc>(3) などのルーチンを呼び出"
+"す際に失敗する可能性がある。この場合は それぞれ対応した 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:58
+#: 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> instead of I<long>."
msgstr ""
"B<fseeko>() 関数および B<ftello>() 関数は、 それぞれ B<fseek>(3) および "
-"B<ftell>(3) と同一の機能を持つ (B<fseek>(3) を見よ) が、ただし B<fseeko>"
-"() 関数の I<offset> 引数と B<ftello>() の返り値が、 I<long> ではなく "
-"I<off_t> になっている。"
+"B<ftell>(3) と同一の機能を持つ (B<fseek>(3) を見よ) が、ただし "
+"B<fseeko>() 関数の I<offset> 引数と B<ftello>() の返り値が、 I<long> ではな"
+"く I<off_t> になっている。"
#. type: Plain text
-#: build/C/man3/fseeko.3:65
+#: 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:69 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:75
+#: 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:84
+#: 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:87
+#: 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:89
+#: build/C/man3/fseeko.3:106
msgid "SUSv2, POSIX.1-2001."
msgstr "SUSv2, POSIX.1-2001."
#. type: Plain text
-#: build/C/man3/fseeko.3:93
+#: 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:95
+#: build/C/man3/fseeko.3:112
msgid "B<fseek>(3)"
msgstr "B<fseek>(3)"
"端される。 改行文字が見つかった場合は、改行文字もバッファに格納される。"
#. 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
-#, fuzzy
-#| 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."
+#: 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 "
"bytes in the line read."
msgstr ""
"成功した場合、 B<getline>() と B<getdelim>() は読み込んだ文字数を返す。 文"
-"字数には区切り文字は含まれるが、終端に使う NULL バイトは含まれない。 この値に"
-"よって、読み込んだ行に含まれる NULL バイトを操作することができる。"
+"字数には区切り文字は含まれるが、終端に使うヌルバイト (\\(aq\\e0\\(aq) は含ま"
+"れない。 この値によって、読み込んだ行に含まれるヌルバイトを操作することができ"
+"る。"
#. type: Plain text
-#: build/C/man3/getline.3:125
-#, fuzzy
-#| msgid ""
-#| "Both functions return -1 on failure to read a line (including end-of-file "
-#| "condition)."
+#: build/C/man3/getline.3:127
msgid ""
"Both functions return -1 on failure to read a line (including end-of-file "
"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:135
+#: 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:137
+#: 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:144
+#: 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:149
+#: 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:157
+#: build/C/man3/getline.3:159
#, no-wrap
msgid ""
"int\n"
" ssize_t read;\n"
#. type: Plain text
-#: build/C/man3/getline.3:161
+#: 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:166
+#: 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:170
+#: build/C/man3/getline.3:172
#, no-wrap
msgid ""
" free(line);\n"
"}\n"
#. type: Plain text
-#: build/C/man3/getline.3:178
-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"
-
-#. type: Plain text
-#: build/C/man3/gets.3:57
-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<)> と同じである。"
+#: build/C/man3/gets.3:40
+msgid "I<Never use this function>."
+msgstr "I<この関数は使用しないこと>。"
#. type: Plain text
-#: build/C/man3/gets.3:78
+#: build/C/man3/gets.3:50
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 "
"below)."
msgstr ""
"B<gets>() は、改行文字か B<EOF> までの 1行を I<stdin> から読み込み I<s> が指"
-"すバッファに格納する (末尾の改行文字や B<EOF> は NULL バイト (\\(aq"
-"\\e0\\(aq) に置き換えられる)。 バッファオーバーランのチェックは行われない (下"
-"記の「バグ」を参照)。"
+"すバッファに格納する (末尾の改行文字や B<EOF> はヌルバイト (\\(aq\\e0\\(aq) "
+"に置き換えられる)。 バッファオーバーランのチェックは行われない (下記の「バ"
+"グ」を参照)。"
#. type: Plain text
-#: build/C/man3/gets.3:92
+#: build/C/man3/gets.3:58
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."
+"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<fgets>() は I<stream> から最大で I<size> - 1 個の文字を読み込み、 I<s> が"
-"指すバッファに格納する。読み込みは B<EOF> または改行文字を読み込んだ後で停止"
-"する。 読み込まれた改行文字はバッファに格納される。 終端の NULL バイト (\\(aq"
-"\\e0\\(aq) が一つバッファの中の最後の文字の後に書き込まれる。"
+"B<gets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込んでいないのに"
+"ファイルの終わりになった 場合に NULL を返す。 しかし、バッファの行き過ぎの"
+"チェックが行われないため、この関数が返るという保証はない。"
#. 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
-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."
-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> を返す。"
-
-#. 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 "
"LSB は B<gets>() を非推奨としている。\n"
"POSIX.1-2008 では B<gets>() に廃止予定の印が付けられている。\n"
"ISO C11 では B<gets>)() の規定が C 言語から削除されている。\n"
-"glibc ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.16 以é\99\8dã\81§ã\81¯ã\80\81æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82·ã\83³ B<_ISOC11_SOURCE> が定義され"
+"glibc ã\83\90ã\83¼ã\82¸ã\83§ã\83³ 2.16 以é\99\8dã\81§ã\81¯ã\80\81æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83 B<_ISOC11_SOURCE> が定義され"
"た\n"
"場合、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>"
-"() will continue to store characters past the end of the buffer, it is "
-"extremely dangerous to use. It has been used to break computer security. "
-"Use B<fgets>() instead."
+"data in advance how many characters B<gets>() will read, and because "
+"B<gets>() will continue to store characters past the end of the buffer, it "
+"is extremely dangerous to use. It has been used to break computer "
+"security. Use B<fgets>() instead."
msgstr ""
"B<gets>() は絶対に使用してはならない。 前もってデータを知ることなしに "
"B<gets>() が何文字読むかを知ることはできず、 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."
msgstr ""
-"エラーの時に返される値は、正しいデータとして返されることもある。 B<ferror>"
-"(3) を用いると、この二つの場合を区別することが出来る。"
+"エラーの時に返される値は、正しいデータとして返されることもある。 "
+"B<ferror>(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
+#: build/C/man2/link.2:32 build/C/man2/open.2:51 build/C/man2/readlink.2:44
#, no-wrap
-msgid "2013-01-27"
-msgstr "2013-01-27"
+msgid "2014-05-10"
+msgstr "2014-05-10"
#. 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:69 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:158
+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:166
+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
+#, fuzzy
+#| 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."
+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> can refer to any type of file, not just a "
+"directory. This will generally not work if the file has a link count of "
+"zero (files created with B<O_TMPFILE> and without B<O_EXCL> are an "
+"exception). The caller must have the B<CAP_DAC_READ_SEARCH> capability in "
+"order to use this flag. 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:171
+#, fuzzy
+#| 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."
+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. "
+"If procfs is mounted, this can be used as an alternative to "
+"B<AT_EMPTY_PATH>, like this:"
+msgstr ""
+"B<linkat>() は (B<link>() 同様) デフォルトでは I<oldpath> がシンボリックリン"
+"クの場合リンクの展開を行わない。 フラグ B<AT_SYMLINK_FOLLOW> を I<flags> に指"
+"定することができ、指定した場合 I<oldpath> がシンボリックリンクの場合リンクの"
+"展開が行われる。"
+
+#. type: Plain text
+#: build/C/man2/link.2:176
+#, no-wrap
+msgid ""
+"linkat(AT_FDCWD, \"/proc/self/fd/E<lt>fdE<gt>\", newdirfd,\n"
+" newname, AT_SYMLINK_FOLLOW);\n"
+msgstr ""
+"linkat(AT_FDCWD, \"/proc/self/fd/E<lt>fdE<gt>\", newdirfd,\n"
+" newname, AT_SYMLINK_FOLLOW);\n"
+
+#. type: Plain text
+#: build/C/man2/link.2:182
+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:187
+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:192 build/C/man2/pipe.2:134 build/C/man3/remove.3:65
+#: build/C/man2/rename.2:208 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:57 build/C/man2/unlink.2:61
+#: build/C/man2/link.2:193 build/C/man2/open.2:796 build/C/man2/readlink.2:160
+#: build/C/man2/rename.2:209 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:204
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:204 build/C/man2/open.2:805 build/C/man2/rename.2:245
+#: build/C/man2/symlink.2:155 build/C/man2/write.2:135
#, no-wrap
msgid "B<EDQUOT>"
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:207 build/C/man2/rename.2:248
+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:60
+#: build/C/man2/link.2:207 build/C/man2/open.2:811 build/C/man2/rename.2:368
+#: 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:211
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:211 build/C/man2/llseek.2:74 build/C/man2/open.2:817
+#: 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:248 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:214 build/C/man2/rename.2:251
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:214 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:217 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:217 build/C/man2/open.2:878 build/C/man2/open.2:882
+#: build/C/man2/open_by_handle_at.2:331 build/C/man2/readlink.2:184
+#: build/C/man2/rename.2:261 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:221 build/C/man2/rename.2:265
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:221 build/C/man2/rename.2:265
#, no-wrap
msgid "B<EMLINK>"
msgstr "B<EMLINK>"
#. type: Plain text
-#: build/C/man2/link.2:91
+#: build/C/man2/link.2:226
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:226 build/C/man2/open.2:894 build/C/man2/readlink.2:187
+#: build/C/man2/rename.2:272 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:229 build/C/man2/rename.2:275
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:229 build/C/man2/link.2:286 build/C/man2/link.2:294
+#: build/C/man2/link.2:304 build/C/man2/open.2:908 build/C/man2/open.2:915
+#: build/C/man2/open_by_handle_at.2:282 build/C/man2/readlink.2:190
+#: build/C/man2/rename.2:275 build/C/man2/rename.2:389 build/C/man2/rmdir.2:80
+#: build/C/man2/symlink.2:177 build/C/man2/symlink.2:212
+#: 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:234
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:570
-#: build/C/man2/symlink.2:128 build/C/man3/tempnam.3:95
-#: build/C/man2/unlink.2:106
+#: build/C/man2/link.2:234 build/C/man2/open.2:929 build/C/man2/readlink.2:193
+#: build/C/man2/rename.2:288 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:237 build/C/man2/open.2:932 build/C/man2/readlink.2:196
+#: build/C/man2/rename.2:291 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:72
+#: build/C/man2/link.2:237 build/C/man2/open.2:932 build/C/man2/rename.2:291
+#: 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:241 build/C/man2/rename.2:295
+#: 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:241 build/C/man2/link.2:315 build/C/man2/open.2:938
+#: build/C/man2/open.2:1009 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:295 build/C/man2/rename.2:355 build/C/man2/rmdir.2:88
+#: build/C/man2/symlink.2:191 build/C/man2/symlink.2:218
+#: 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:246
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:246 build/C/man2/link.2:250 build/C/man2/link.2:325
+#: build/C/man2/open.2:977 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:250
msgid "I<oldpath> is a directory."
msgstr "I<oldpath> がディレクトリである。"
#. type: Plain text
-#: build/C/man2/link.2:120
+#: build/C/man2/link.2:255
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
+#: build/C/man2/link.2:255
#, no-wrap
msgid "B<EPERM> (since Linux 3.6)"
msgstr "B<EPERM> (Linux 3.6 以降)"
#. type: Plain text
-#: build/C/man2/link.2:127
+#: build/C/man2/link.2:262
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_hardlink> の説明を参照)。"
+"の 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:75 build/C/man2/unlink.2:137
+#: build/C/man2/link.2:262 build/C/man2/open.2:985 build/C/man2/rename.2:333
+#: 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:265 build/C/man2/rename.2:336
+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:265 build/C/man2/rename.2:336
#, no-wrap
msgid "B<EXDEV>"
msgstr "B<EXDEV>"
#. type: Plain text
-#: build/C/man2/link.2:138
+#: build/C/man2/link.2:273
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:276
+msgid "The following additional errors can occur for B<linkat>():"
+msgstr "B<linkat>() では以下のエラーも発生する。"
+
+#. type: Plain text
+#: build/C/man2/link.2:282 build/C/man2/rename.2:355
+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:286 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:294
+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:299
+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:301
+#, 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:304
+msgid "See B<open>(2)."
+msgstr "B<open>(2) 参照。"
+
+#. type: Plain text
+#: build/C/man2/link.2:315
+msgid ""
+"I<oldpath> is a relative pathname and I<olddirfd> refers to a directory that "
+"has been deleted, or I<newpath> is a relative pathname and I<newdirfd> "
+"refers to a directory that has been deleted."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/link.2:325 build/C/man2/rename.2:365
+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:334
+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:338
+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:344
+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:347
+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:354
msgid ""
-"Hard links, as created by B<link>(), cannot span file systems. Use "
+"Hard links, as created by B<link>(), cannot span filesystems. Use "
"B<symlink>(2) if this is required."
msgstr ""
"B<link>() でファイルシステムを超えてハードリンクを作成することはできない。 "
#. 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:385
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:391
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:400
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
"resulting file position in the argument I<result>."
msgstr ""
"B<_llseek>() 関数は、ファイルディスクリプタ (descriptor) I<fd> に関連づけら"
-"れたオープンされたファイルのオフセットの位置を、相対的に I<"
-"(offset_highE<lt>E<lt>32) | offset_low> バイトだけ変更する。 基準となる位置を"
-"表す I<whence> には B<SEEK_SET>, B<SEEK_CUR>, B<SEEK_END> のいずれかを指定"
+"れたオープンされたファイルのオフセットの位置を、相対的に "
+"I<(offset_highE<lt>E<lt>32) | offset_low> バイトだけ変更する。 基準となる位置"
+"を表す I<whence> には B<SEEK_SET>, B<SEEK_CUR>, B<SEEK_END> のいずれかを指定"
"し、それぞれ ファイルの先頭、ファイルの現在位置、 ファイルの最後を表す。 結果"
"のファイル位置を I<result> 引き数に返す。"
"エラーを示す I<errno> が設定される。"
#. type: Plain text
-#: build/C/man2/llseek.2:74 build/C/man2/lseek.2:175
+#: build/C/man2/llseek.2:74 build/C/man2/lseek.2:192
msgid "I<fd> is not an open file descriptor."
msgstr "I<fd> がオープンされたファイルディスクリプタでない。"
"Glibc does not provide a wrapper for this system call; call it using "
"B<syscall>(2)."
msgstr ""
-"glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
-"(2) を使って呼び出すこと。"
+"glibc はこのシステムコールに対するラッパー関数を提供していない。 "
+"B<syscall>(2) を使って呼び出すこと。"
#. type: Plain text
#: build/C/man2/llseek.2:90
#. type: TH
#: build/C/man2/lseek.2:47
#, no-wrap
-msgid "2013-03-27"
-msgstr "2013-03-27"
+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<);>"
"B<lseek>() 関数は、オフセットをファイルの末尾を越えた位置に設定できる (但"
"し、これによりファイルのサイズが変わらない)。 もしデータがこのオフセット位置"
"以降に書き込まれた場合、 間の空隙の部分 (\"穴 (hole)\") の読み出しがあると、 "
-"実際にそこにデータを書き込まれるまでは NULL バイト (\\(aq\\e0\\(aq) の列が返"
-"ã\81\95ã\82\8cã\82\8bã\80\82"
+"実際にそこにデータを書き込まれるまではヌルバイト (\\(aq\\e0\\(aq) の列が返さ"
+"れる。"
#. type: SS
#: build/C/man2/lseek.2:90
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 "
"能検査マクロ 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:183
+#: 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:183 build/C/man2/open.2:584
+#: build/C/man2/lseek.2:200 build/C/man2/open.2:957
+#: 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:188
+#: 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:188
+#: build/C/man2/lseek.2:205
#, no-wrap
msgid "B<ESPIPE>"
msgstr "B<ESPIPE>"
#. type: Plain text
-#: build/C/man2/lseek.2:192
+#: 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:192 build/C/man2/open.2:578
+#: build/C/man2/lseek.2:209 build/C/man2/open.2:945
#, no-wrap
msgid "B<ENXIO>"
msgstr "B<ENXIO>"
#. type: Plain text
-#: build/C/man2/lseek.2:200
+#: 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:202 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:210
+#: 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 "
"る。"
#. type: Plain text
-#: build/C/man2/lseek.2:214
+#: 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:221
+#: build/C/man2/lseek.2:238
msgid "On Linux, using B<lseek>() on a terminal device returns B<ESPIPE>."
msgstr ""
"Linux では、端末 (terminal) デバイスに B<lseek>() を使用すると B<ESPIPE> が返"
"る。"
#. type: Plain text
-#: build/C/man2/lseek.2:224
+#: 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:227
+#: build/C/man2/lseek.2:244
#, no-wrap
msgid "old\tnew\n"
msgstr "old \tnew\n"
#. type: tbl table
-#: build/C/man2/lseek.2:228
+#: 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:229
+#: 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:230
+#: 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:231
+#: 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:232
+#: 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:233
+#: 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:245
+#: 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:252
+#: 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
"Four interfaces are available: B<lseek>(2), B<lseek64>(), B<llseek>(2), and "
"the raw system call B<_llseek>(2)."
msgstr ""
-"4 つのインタフェースが使用可能である: B<lseek>(2), B<lseek64>(), B<llseek>"
-"(2) と元となるシステムコール B<_llseek>(2) である。"
+"4 つのインタフェースが使用可能である: B<lseek>(2), B<lseek64>(), "
+"B<llseek>(2) と元となるシステムコール B<_llseek>(2) である。"
#. type: SS
#: build/C/man3/lseek64.3:63
#. type: Plain text
#: build/C/man3/lseek64.3:139
msgid ""
-"The type I<loff_t> is a 64-bit signed type. The library routine B<llseek>"
-"() is available in libc5 and glibc and works without special defines. Its "
-"prototype was given in I<E<lt>unistd.hE<gt>> with libc5, but glibc does not "
-"provide a prototype. This is bad, since a prototype is needed. Users "
-"should add the above prototype, or something equivalent, to their own "
-"source. When users complained about data loss caused by a miscompilation of "
-"B<e2fsck>(8), glibc 2.1.3 added the link-time warning"
+"The type I<loff_t> is a 64-bit signed type. The library routine "
+"B<llseek>() is available in libc5 and glibc and works without special "
+"defines. Its prototype was given in I<E<lt>unistd.hE<gt>> with libc5, but "
+"glibc does not provide a prototype. This is bad, since a prototype is "
+"needed. Users should add the above prototype, or something equivalent, to "
+"their own source. When users complained about data loss caused by a "
+"miscompilation of B<e2fsck>(8), glibc 2.1.3 added the link-time warning"
msgstr ""
"型 I<loff_t> は 64 ビット符号付き型である。 ライブラリルーチン B<llseek>() "
"は libc5 と glibc で使用可能であり、特別な定義なしに動作する。 このプロトタイ"
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
-#, no-wrap
-msgid "2013-02-18"
-msgstr "2013-02-18"
-
#. 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) "
-"is initially disabled; the B<O_CLOEXEC> flag, described below, can be used "
-"to change this default). The file offset is set to the beginning of the "
-"file (see B<lseek>(2))."
+"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)) is initially disabled; the B<O_CLOEXEC> flag, described below, "
+"can be used to change this default. The file offset is set to the beginning "
+"of the file (see B<lseek>(2))."
msgstr ""
"デフォルトでは、新しいファイルディスクリプタは B<execve>(2) を実行した後も\n"
"オープンされたままとなる (つまり、 B<fcntl>(2) に説明がある B<FD_CLOEXEC> \n"
"(file offset) はファイルの先頭に設定される (B<lseek>(2) 参照)。"
#. type: Plain text
-#: build/C/man2/open.2:107
+#: build/C/man2/open.2:131
+#, fuzzy
+#| 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 file status flags (modifiable via the B<fcntl>(2) B<F_SETFL> "
+#| "operation). A file descriptor is a reference to one of these entries; "
+#| "this reference is unaffected if I<pathname> is subsequently removed or "
+#| "modified to refer to a different file. The new open file description is "
+#| "initially not shared with any other process, but sharing may arise via "
+#| "B<fork>(2)."
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 "
-"file status flags (modifiable via the B<fcntl>(2) B<F_SETFL> operation). A "
-"file descriptor is a reference to one of these entries; this reference is "
-"unaffected if I<pathname> is subsequently removed or modified to refer to a "
-"different file. The new open file description is initially not shared with "
-"any other process, but sharing may arise via B<fork>(2)."
+"system-wide table of open files. (This object is variously also called an "
+"\"open file object\", a \"file handle\", an \"open file table entry\", or"
+"\\(emin kernel-developer parlance\\(ema I<struct file>. The term \"open "
+"file description\" is used by POSIX.) The open file description records the "
+"file offset and the file status flags (see below). A file descriptor is a "
+"reference to an open file description; this reference is unaffected if "
+"I<pathname> is subsequently removed or modified to refer to a different "
+"file. The new open file description is initially not shared with any other "
+"process, but sharing may arise via B<fork>(2)."
msgstr ""
"B<open>() を呼び出すと、「オープンファイル記述」 I<(open file description)> "
"が作成される。ファイル記述とは、システム全体の オープン中のファイルのテーブル"
"が、 B<fork>(2) で共有が起こる場合がある。"
#. type: Plain text
-#: build/C/man2/open.2:115
+#: build/C/man2/open.2:139
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
+#: build/C/man2/open.2:178
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_CLOEXEC>, B<O_CREAT>, "
-"B<O_DIRECTORY>, B<O_EXCL>, B<O_NOCTTY>, B<O_NOFOLLOW>, B<O_TRUNC>, "
-"B<O_TTY_INIT> である。 I<ファイル状態フラグ> は以下のリストのうち上記以外の残"
-"りのものである。 二種類のフラグの違いは、ファイル状態フラグの方は B<fcntl>"
-"(2) を使ってその内容を取得したり (場合によっては) 変更したりできる点にあ"
-"る。 ファイル作成フラグとファイル状態フラグの全リストを以下に示す:"
+"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:180
+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:180
#, 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:197
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:197
#, no-wrap
msgid "B<O_ASYNC>"
msgstr "B<O_ASYNC>"
#. type: Plain text
-#: build/C/man2/open.2:183
+#: build/C/man2/open.2:211
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 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:211
#, 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 以降)"
-#. This flag fixes only one form of the race condition;
-#. The race can also occur with, for example, descriptors
-#. returned by accept(), pipe(), etc.
+#. NOTE! several other man pages refer to this text
#. type: Plain text
-#: build/C/man2/open.2:208
+#: build/C/man2/open.2:221
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)."
+"operations to set the B<FD_CLOEXEC> flag."
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) を実行するという競合条件を避けるのには十分で"
-"はないからである。"
+"フラグを指定することで、 プログラムは B<FD_CLOEXEC> フラグをセットするために "
+"B<fcntl>(2) B<F_SETFD> 操作を別途呼び出す必要がなくなる。"
+
+#. 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:250
+msgid ""
+"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 descriptor 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 ""
+"ある種のマルチスレッドのプログラムはこのフラグの使用は不可欠である点に注意す"
+"ること。 なぜなら、個別に B<FD_CLOEXEC> フラグを設定する B<fcntl>(2) "
+"B<F_SETFD> 操作を呼び出したとしても、あるスレッドがファイルディスクリプタを "
+"オープンするのと同時に別のスレッドが B<fork>(2) と B<execve>(2) を実行すると"
+"いう競合条件を避けるのには十分ではないからである。 実行の順序に依存して、この"
+"競合条件の結果、 B<open>() が返したファイルディスクリプタが B<fork>(2) で作成"
+"された子プロセスにより実行されるプログラムに意図せず見えてしまう可能性があ"
+"る。 (この種の競合は、 本質的に、 close-on-exec フラグをセットすべきファイル"
+"ディスクリプタを作成するどのシステムコールでも起こり得るものであり、 他のいろ"
+"いろな Linux システムコールでこの問題に対処するために B<O_CLOEXEC> と同等の機"
+"能が提供されている。)"
#. type: TP
-#: build/C/man2/open.2:208
+#: build/C/man2/open.2:250
#, 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:266
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:293
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 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."
+"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:296
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:296
#, no-wrap
msgid "B<S_IRWXU>"
msgstr "B<S_IRWXU>"
#. type: Plain text
-#: build/C/man2/open.2:253
+#: build/C/man2/open.2:299
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:299
#, no-wrap
msgid "B<S_IRUSR>"
msgstr "B<S_IRUSR>"
#. type: Plain text
-#: build/C/man2/open.2:256
+#: build/C/man2/open.2:302
msgid "00400 user has read permission"
msgstr "00400 ユーザーに読み込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:256
+#: build/C/man2/open.2:302
#, no-wrap
msgid "B<S_IWUSR>"
msgstr "B<S_IWUSR>"
#. type: Plain text
-#: build/C/man2/open.2:259
+#: build/C/man2/open.2:305
msgid "00200 user has write permission"
msgstr "00200 ユーザーに書き込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:259
+#: build/C/man2/open.2:305
#, no-wrap
msgid "B<S_IXUSR>"
msgstr "B<S_IXUSR>"
#. type: Plain text
-#: build/C/man2/open.2:262
+#: build/C/man2/open.2:308
msgid "00100 user has execute permission"
msgstr "00100 ユーザーに実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:262
+#: build/C/man2/open.2:308
#, no-wrap
msgid "B<S_IRWXG>"
msgstr "B<S_IRWXG>"
#. type: Plain text
-#: build/C/man2/open.2:265
+#: build/C/man2/open.2:311
msgid "00070 group has read, write and execute permission"
msgstr "00070 グループに読み込み、書き込み、実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:265
+#: build/C/man2/open.2:311
#, no-wrap
msgid "B<S_IRGRP>"
msgstr "B<S_IRGRP>"
#. type: Plain text
-#: build/C/man2/open.2:268
+#: build/C/man2/open.2:314
msgid "00040 group has read permission"
msgstr "00040 グループに読み込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:268
+#: build/C/man2/open.2:314
#, no-wrap
msgid "B<S_IWGRP>"
msgstr "B<S_IWGRP>"
#. type: Plain text
-#: build/C/man2/open.2:271
+#: build/C/man2/open.2:317
msgid "00020 group has write permission"
msgstr "00020 グループに書き込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:271
+#: build/C/man2/open.2:317
#, no-wrap
msgid "B<S_IXGRP>"
msgstr "B<S_IXGRP>"
#. type: Plain text
-#: build/C/man2/open.2:274
+#: build/C/man2/open.2:320
msgid "00010 group has execute permission"
msgstr "00010 グループに実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:274
+#: build/C/man2/open.2:320
#, no-wrap
msgid "B<S_IRWXO>"
msgstr "B<S_IRWXO>"
#. type: Plain text
-#: build/C/man2/open.2:277
+#: build/C/man2/open.2:323
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:323
#, no-wrap
msgid "B<S_IROTH>"
msgstr "B<S_IROTH>"
#. type: Plain text
-#: build/C/man2/open.2:280
+#: build/C/man2/open.2:326
msgid "00004 others have read permission"
msgstr "00004 他人に読み込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:280
+#: build/C/man2/open.2:326
#, no-wrap
msgid "B<S_IWOTH>"
msgstr "B<S_IWOTH>"
#. type: Plain text
-#: build/C/man2/open.2:283
+#: build/C/man2/open.2:329
msgid "00002 others have write permission"
msgstr "00002 他人に書き込みの許可がある。"
#. type: TP
-#: build/C/man2/open.2:283
+#: build/C/man2/open.2:329
#, no-wrap
msgid "B<S_IXOTH>"
msgstr "B<S_IXOTH>"
#. type: Plain text
-#: build/C/man2/open.2:286
+#: build/C/man2/open.2:332
msgid "00001 others have execute permission"
msgstr "00001 他人に実行の許可がある。"
#. type: TP
-#: build/C/man2/open.2:287
+#: build/C/man2/open.2:333
#, 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
+#: build/C/man2/open.2:350
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 "
"使用しなければならない。下記の「注意」の節の議論も参照。"
#. type: Plain text
-#: build/C/man2/open.2:308
+#: build/C/man2/open.2:354
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:354
#, 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:366
+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:366
+#, no-wrap
+msgid "B<O_DSYNC>"
+msgstr "B<O_DSYNC>"
+
+#. type: Plain text
+#: build/C/man2/open.2:372
+msgid ""
+"Write operations on the file will complete according to the requirements of "
+"synchronized I/O I<data> integrity completion."
+msgstr ""
+"ファイルに対する書き込み操作は、同期 I/O のI<データ>完全性完了の要件に基づい"
+"て行われる。"
+
+#. type: Plain text
+#: build/C/man2/open.2:384
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 やテープデバイスに対してコールされた場合"
-"ã\81® ã\82µã\83¼ã\83\93ã\82¹ä¸\8dè\83½ (denial-of-service) æ\94»æ\92\83ã\82\92é\81¿ã\81\91ã\82\8bã\81\9fã\82\81ã\81« ã\82«ã\83¼ã\83\8dã\83« 2.1.126 ã\81§è¿½"
-"加された。 しかしこれは B<opendir>(3) の実装以外では使用するべきではない。"
+"B<write>(2) (や同様のコール) が返るまでに、 書き込まれたデータおよびデータを"
+"取得するのに必要なファイルメタデータが裏で利用されているハードウェアに転送さ"
+"ã\82\8cã\82\8b (ã\81¤ã\81¾ã\82\8aã\80\81B<write>(2) ã\81®å¾\8cã\81« B<fdatasync>(2) ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81\9fã\81®ã\81¨å\90\8cã\81\98ã\82\88ã\81\86ã\81«ã\81ª"
+"る)。 I<下記の「注意」も参照のこと>。"
#. type: TP
-#: build/C/man2/open.2:322
+#: build/C/man2/open.2:384
#, no-wrap
msgid "B<O_EXCL>"
msgstr "B<O_EXCL>"
#. type: Plain text
-#: build/C/man2/open.2:332
+#: build/C/man2/open.2:394
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:402
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:418
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:440
msgid ""
"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 "
-"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 "
-"lock is also successful."
+"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 lock is also successful."
msgstr ""
"NFS では、 B<O_EXCL> は、Linux 2.6 以降で NFSv3 以降を使っている場合でのみサ"
"ポートされる。 B<O_EXCL> サポートが提供されていない NFS 環境では、このフラグ"
"じくロックに成功しているということである。"
#. type: TP
-#: build/C/man2/open.2:378
+#: build/C/man2/open.2:440
#, no-wrap
msgid "B<O_LARGEFILE>"
msgstr "B<O_LARGEFILE>"
#. type: Plain text
-#: build/C/man2/open.2:400
+#: build/C/man2/open.2:462
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:462
#, 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
+#: build/C/man2/open.2:475
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 の "
"い。 その一例が NFS であり、サーバがアクセス時刻を管理している。"
#. type: TP
-#: build/C/man2/open.2:413
+#: build/C/man2/open.2:475
#, no-wrap
msgid "B<O_NOCTTY>"
msgstr "B<O_NOCTTY>"
#. type: Plain text
-#: build/C/man2/open.2:421
+#: build/C/man2/open.2:483
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:483
#, 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:495
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:495
#, 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:508
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 "
-"will cause the calling process to wait. For the handling of FIFOs (named "
-"pipes), see also B<fifo>(7). For a discussion of the effect of "
+"When possible, the file is opened in nonblocking mode. Neither the "
+"B<open>() nor any subsequent operations on the file descriptor which is "
+"returned will cause the calling process to wait. For the handling of FIFOs "
+"(named pipes), see also B<fifo>(7). For a discussion of the effect of "
"B<O_NONBLOCK> in conjunction with mandatory file locks and with file leases, "
"see B<fcntl>(2)."
msgstr ""
"議論は、 B<fcntl>(2) を参照すること。"
#. type: TP
-#: build/C/man2/open.2:443
+#: build/C/man2/open.2:508
#, no-wrap
-msgid "B<O_SYNC>"
-msgstr "B<O_SYNC>"
+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:451
+#: build/C/man2/open.2:530
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>."
+"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 ""
-"ファイルは同期 (synchronous) I/O モードでオープンされる。 B<open>() が返した"
-"ファイルディスクリプタに対して B<write>(2) を行うと、必ず呼び出したプロセス"
-"をブロックし、 該当ハードウェアに物理的に書き込まれるまで返らない。 I<以下の"
-"「注意」の章も参照。>"
-
-#. type: TP
-#: build/C/man2/open.2:451
-#, no-wrap
-msgid "B<O_TRUNC>"
-msgstr "B<O_TRUNC>"
+"このフラグを指定して取得したファイルディスクリプタは、 ファイルシステムツリー"
+"内での場所を示すため、 純粋にファイルディスクリプタレベルでの作用する操作を実"
+"行するため、 の二つの目的で使用することができる。 ファイル自身はオープンされ"
+"ず、 他のファイル操作 (例えば 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:465
+#: build/C/man2/open.2:534
msgid ""
-"If the file already exists and is a regular file and the open mode allows "
+"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:543
+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:549
+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:555
+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:561
+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:574
+#, fuzzy
+#| msgid ""
+#| "Passing the file descriptor as the I<dirfd> argument of B<openat>(2) and "
+#| "the other \"*at()\" system calls."
+msgid ""
+"Passing the file descriptor as the I<dirfd> argument of B<openat>(2) and "
+"the other \"*at()\" system calls. This includes B<linkat>(2) with "
+"B<AT_EMPTY_PATH> (or via procfs using B<AT_SYMLINK_FOLLOW>) even if the "
+"file is not a directory."
+msgstr ""
+"B<openat>(2) や他の \"*at()\" 系のシステムコールの I<dirfd> 引数としてその"
+"ファイルディスクリプタを渡す。"
+
+#. type: Plain text
+#: build/C/man2/open.2:580
+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:591
+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:607
+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:607
+#, no-wrap
+msgid "B<O_SYNC>"
+msgstr "B<O_SYNC>"
+
+#. type: Plain text
+#: build/C/man2/open.2:619
+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 ""
+"ファイルに対する書き込み操作は、同期 I/O のI<ファイル>完全性完了の要件に基づ"
+"いて行われる (これに対し B<O_DSYNC> では同期 I/O のI<データ>完全性完了が提供"
+"される)。"
+
+#. type: Plain text
+#: build/C/man2/open.2:630
+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 ""
+"B<write>(2) (や同様のコール) が返るまでに、 書き込まれたデータと関連するファ"
+"イルメタデータが裏で利用されているハードウェアに転送される (つまり、"
+"B<write>(2) の後に B<fsync>(2) を呼び出したのと同じようになる)。 I<下記の「注"
+"意」も参照のこと>。"
+
+#. type: TP
+#: build/C/man2/open.2:630
+#, 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:642
+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 ""
+"名前なしの一時ファイルを作成する。 I<pathname> 引き数はディレクトリを指定す"
+"る。 名前なしの inode がそのディレクトリが存在するファイルシステムに作成され"
+"る。 そのファイルに名前を付与しない限り、 作成されたファイルに書き込まれた内"
+"容は、 最後のファイルディスクリプタがクローズされる際に失われる。"
+
+#. type: Plain text
+#: build/C/man2/open.2:656
+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 ""
+"B<O_TMPFILE> は必ず B<O_RDWR> か B<O_WRONLY> のいずれかと一緒に使わなければな"
+"らない。 B<O_EXCL> も指定することができる。 B<O_EXCL> が指定されなかった場"
+"合、 B<linkat>(2) を使って、そのファイルシステムにこの一時ファイルへのリンク"
+"を作成し、ファイルを永続化することができる。 以下のコードのようにすればよい。"
+
+#. type: Plain text
+#: build/C/man2/open.2:662
+#, no-wrap
+msgid ""
+"char path[PATH_MAX];\n"
+"fd = open(\"/path/to/dir\", O_TMPFILE | O_RDWR,\n"
+" S_IRUSR | S_IWUSR);\n"
+msgstr ""
+"char path[PATH_MAX];\n"
+"fd = open(\"/path/to/dir\", O_TMPFILE | O_RDWR,\n"
+" S_IRUSR | S_IWUSR);\n"
+
+#. type: Plain text
+#: build/C/man2/open.2:664
+#, no-wrap
+msgid "/* File I/O on 'fd'... */\n"
+msgstr "/* 'fd' に対するファイル I/O ... */\n"
+
+#. type: Plain text
+#: build/C/man2/open.2:668
+#, 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 ""
+"snprintf(path, PATH_MAX, \"/proc/self/fd/%d\", fd);\n"
+"linkat(AT_FDCWD, path, AT_FDCWD, \"/path/for/file\",\n"
+" AT_SYMLINK_FOLLOW);\n"
+
+#. type: Plain text
+#: build/C/man2/open.2:677
+msgid ""
+"In this case, the B<open>() I<mode> argument determines the file permission "
+"mode, as with B<O_CREAT>."
+msgstr ""
+"この場合、 B<open>() の I<mode> 引き数は B<O_CREAT> と同様にファイルのアクセ"
+"ス許可モードの決定に使われる。"
+
+#. type: Plain text
+#: build/C/man2/open.2:689
+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 ""
+"B<O_TMPFILE> とともに B<O_EXCL> を指定すると、 一時ファイルに対して上記の方法"
+"でファイルシステムへのリンクを行うことができなくなる (この場合の B<O_EXCL> の"
+"意味は他の場合の B<O_EXCL> の意味とは異なる点に注意)。"
+
+#. Inspired by http://lwn.net/Articles/559147/
+#. type: Plain text
+#: build/C/man2/open.2:694
+msgid "There are two main use cases for B<O_TMPFILE>:"
+msgstr "B<O_TMPFILE> には主に二つの用途がある。"
+
+#. type: Plain text
+#: build/C/man2/open.2:703
+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 ""
+"改善された B<tmpfile>(3) の機能: (1) クローズ時に自動的に削除される、 (2) パ"
+"ス名では決して参照できない、 (3) シンボリックリンク攻撃ができない、 (4) 呼び"
+"出し元が一意な名前を考える必要がない、 という特長を持つ競合のない一時ファイル"
+"の作成。"
+
+#. type: Plain text
+#: build/C/man2/open.2:714
+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 ""
+"最初は見えないファイルを作成し、 それからデータを書き込んだり、適切なファイル"
+"システム属性を持つように調整したり (B<chown>(2), B<chmod>(2), "
+"B<fsetxattr>(2) など) した後、 準備が全て整った状態で (上述の B<linkat>(2) を"
+"使って) ファイルシステム内にアトミックにリンクを行う。"
+
+#. commit 99b6436bc29e4f10e4388c27a3e4810191cc4788
+#. commit ab29743117f9f4c22ac44c13c1647fb24fb2bafe
+#. type: Plain text
+#: build/C/man2/open.2:725
+msgid ""
+"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 ext2, ext3, ext4, UDF, Minix, and shmem "
+"filesystems. XFS support was added in Linux 3.15."
+msgstr ""
+"B<O_TMPFILE> は、 裏で利用されるファイルシステムによるサポートが必要である。 "
+"一部の Linux ファイルシステムだけがこの機能をサポートしている。 最初の実装で"
+"は、 ext2, ext3, ext4, UDF, Minix, shmem ファイルシステムがサポートしてい"
+"た。 XFS でのサポートが Linux 3.15 で追加された。"
+
+#. type: TP
+#: build/C/man2/open.2:725
+#, no-wrap
+msgid "B<O_TRUNC>"
+msgstr "B<O_TRUNC>"
+
+#. type: Plain text
+#: build/C/man2/open.2:739
+msgid ""
+"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."
+"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:739
+#, no-wrap
+msgid "creat()"
+msgstr "creat()"
#. type: Plain text
-#: build/C/man2/open.2:477
+#: build/C/man2/open.2:747
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:747
+#, no-wrap
+msgid "openat()"
+msgstr "openat()"
+
#. type: Plain text
-#: build/C/man2/open.2:485
+#: build/C/man2/open.2:753
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)."
+"The B<openat>() system call operates in exactly the same way as B<open>(), "
+"except for the differences described here."
msgstr ""
-"B<open>() と B<creat>() は新しいファイルディスクリプタを返す。 エラーが発生"
-"した場合は -1 を返す (その場合は I<errno> が適切に設定される)。"
+"B<openat>() システムコールは B<open>() と全く同様に動作するが、以下で説明する"
+"点が異なる。"
#. type: Plain text
-#: build/C/man2/open.2:495
+#: build/C/man2/open.2:763
+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<open>() for a relative pathname)."
+msgstr ""
+"I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
+"リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
+"(B<open>() に相対パス名を渡した場合のように、呼び出したプロセスのカレントワー"
+"キングディレクトリに対する相対パスではない)。"
+
+#. type: Plain text
+#: build/C/man2/open.2:775
+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:781 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:790
+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:796
+msgid ""
+"B<open>(), B<openat>(), and B<creat>() can fail with the following errors:"
+msgstr "B<open>(), B<openat>(), B<creat>() は以下のエラーで失敗する。"
+
+#. type: Plain text
+#: build/C/man2/open.2:805
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:811
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:817
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:821 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:821 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:825
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:561
+#: build/C/man2/open.2:825 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:832
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>"
-"(7)."
+"see B<fifo>(7)), the call was interrupted by a signal handler; see "
+"B<signal>(7)."
msgstr ""
"遅いデバイス (例えば FIFO、 B<fifo>(7) 参照) のオープンが完了するのを待って"
"停止している間に システムコールがシグナルハンドラにより割り込まれた。 "
"B<signal>(7) 参照。"
+#. type: Plain text
+#: build/C/man2/open.2:840
+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:845
+msgid "Invalid value in I<flags>."
+msgstr "I<flags> に無効な値が入っている。"
+
+#. type: Plain text
+#: build/C/man2/open.2:855
+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:855 build/C/man2/open.2:864 build/C/man2/read.2:158
+#: build/C/man2/rename.2:255 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:864
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:878
+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 ""
+"I<pathname> が存在するディレクトリを参照していて、 B<O_TMPFILE> および "
+"B<O_WRONLY> と B<O_RDWR> の一方が I<flags> に指定されていたが、 このカーネル"
+"バージョンでは B<O_TMPFILE> 機能が提供されていない。"
+
+#. type: Plain text
+#: build/C/man2/open.2:882 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:891
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> ã\82\92解決ã\81\99ã\82\8bé\9a\9bã\81«é\81é\81\87ã\81\97ã\81\9fã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81\8cå¤\9aé\81\8eã\81\8eã\82\8bã\80\82 ã\81¾ã\81\9fã\81¯ "
-"B<O_NOFOLLOW> が指定されており、 I<pathname> がシンボリックリンクだった。"
+"I<pathname> ã\81\8cã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\81§ã\80\81 I<flags> ã\81« B<O_NOFOLLOW> ã\81\8cæ\8c\87å®\9aã\81\95ã\82\8cã\81\9f"
+"が、 B<O_PATH> が指定されていなかった。"
#. type: TP
-#: build/C/man2/open.2:538 build/C/man2/pipe.2:107 build/C/man3/tmpfile.3:66
+#: build/C/man2/open.2:891 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:894
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:898 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:69
+#: build/C/man2/open.2:898 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:901 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:901
#, no-wrap
msgid "B<ENODEV>"
msgstr "B<ENODEV>"
#. type: Plain text
-#: build/C/man2/open.2:555
+#: build/C/man2/open.2:908
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:915
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:929
+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 ""
+"I<pathname> が存在しないディレクトリを参照していて、 B<O_TMPFILE> および "
+"B<O_WRONLY> と B<O_RDWR> の一方が I<flags> に指定されていたが、 このカーネル"
+"バージョンでは B<O_TMPFILE> 機能が提供されていない。"
+
+#. type: Plain text
+#: build/C/man2/open.2:938
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:945
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:951
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 "
+"B<O_NONBLOCK> | B<O_WRONLY> is set, the named file is a FIFO, and no process "
+"has the FIFO open for reading. Or, the file is a device special file and no "
"corresponding device exists."
msgstr ""
"B<O_NONBLOCK> | B<O_WRONLY> が設定されており、指定したファイルが FIFO で その"
-"ファイルを読み込みのためにオープンしているプロセスが存在しない。 または、ファ"
-"イルがデバイススペシャルファイルで 対応するデバイスが存在しない。"
+"ファイルを読み込み用でオープンしている FIFO が存在しない。 または、ファイルが"
+"デバイススペシャルファイルで 対応するデバイスが存在しない。"
+
+#. type: TP
+#: build/C/man2/open.2:951 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:957
+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:977
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 "
-"without I<-D_FILE_OFFSET_BITS=64> tried to open a file whose size exceeds I<"
-"(2E<lt>E<lt>31)-1> bits; see also B<O_LARGEFILE> above. This is the error "
+"without I<-D_FILE_OFFSET_BITS=64> tried to open a file whose size exceeds "
+"I<(2E<lt>E<lt>31)-1> bits; see also B<O_LARGEFILE> above. This is the error "
"specified by POSIX.1-2001; in kernels before 2.6.24, Linux gave the error "
"B<EFBIG> for this case."
msgstr ""
"る。 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:985
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:990
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:990
#, no-wrap
msgid "B<ETXTBSY>"
msgstr "B<ETXTBSY>"
#. type: Plain text
-#: build/C/man2/open.2:622
+#: build/C/man2/open.2:995
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:995
#, no-wrap
msgid "B<EWOULDBLOCK>"
msgstr "B<EWOULDBLOCK>"
#. type: Plain text
-#: build/C/man2/open.2:629
+#: build/C/man2/open.2:1002
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:1005
+msgid "The following additional errors can occur for B<openat>():"
+msgstr "B<openat>() では以下のエラーも発生する。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1009 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:1015
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 a relative pathname 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:1019
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:1023
+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:1026
+msgid "B<openat>(): POSIX.1-2008."
+msgstr "B<openat>(): POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/open.2:1037
+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_DIRECT>, B<O_NOATIME>, B<O_PATH>, B<O_TMPFILE> は Linux 特有のもの"
+"である。 これらのフラグの定義を得るためには B<_GNU_SOURCE> を定義しなければな"
+"らない。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1052
+msgid ""
+"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 ""
-"B<O_CLOEXEC> フラグは POSIX.1-2001 では規定されていないが、 POSIX.1-2008 で規"
-"定されている。"
+"フラグ B<O_CLOEXEC>, B<O_DIRECTORY>, B<O_NOFOLLOW> は POSIX.1-2001 では規定さ"
+"れていないが、 POSIX.1-2008 では規定されている。 glibc 2.12 以降では、これら"
+"の定義を得るには、 B<_POSIX_C_SOURCE> を 200809L 以上の値で定義するか、 "
+"B<_XOPEN_SOURCE> を 700 以上の値で定義する。 glibc 2.11 以前では、 これらの定"
+"義を得るには B<_GNU_SOURCE> を定義する。"
#. type: Plain text
-#: build/C/man2/open.2:655
+#: build/C/man2/open.2:1063
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."
+"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> を定義し"
-"なければならない。"
+"B<feature_test_macros>(7) に注意書きがあるように、 B<_POSIX_C_SOURCE>, "
+"B<_XOPEN_SOURCE>, B<_GNU_SOURCE> などの機能検査マクロはI<どの>ヘッダーファイ"
+"ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aå\89\8dã\81«å®\9a義ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82"
#. type: Plain text
-#: build/C/man2/open.2:663
+#: build/C/man2/open.2:1071
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 "
-"used to open devices in order to get a file descriptor for use with B<ioctl>"
-"(2)."
+"used to open devices in order to get a file descriptor for use with "
+"B<ioctl>(2)."
msgstr ""
"Linux では、 B<O_NONBLOCK> フラグは、 open を実行したいが read または write "
"を実行する意図は 必ずしもないことを意味する。 これは B<ioctl>(2) のための"
"ファイルディスクリプタを取得するために、 デバイスをオープンするときによく用い"
"られる。"
-#. 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 to be used only 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:1083
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
-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 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 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:1091
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:1112
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:1112
#, no-wrap
-msgid "O_DIRECT"
-msgstr "O_DIRECT"
+msgid "Synchronized I/O"
+msgstr "同期 I/O"
#. type: Plain text
-#: build/C/man2/open.2:786
+#: build/C/man2/open.2:1127
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> 命令である。"
+"POSIX.1-2008 の「同期 I/O」の選択肢として複数種類が規定されており、 動作を制"
+"御するために B<open>() フラグとして B<O_SYNC>, B<O_DSYNC>, B<O_RSYNC> が規定"
+"されている。 この選択肢を実装がサポートしているかに関わらず、 各実装では少な"
+"くとも通常のファイルに対して B<O_SYNC> が利用できなければならない。"
#. type: Plain text
-#: build/C/man2/open.2:791
+#: build/C/man2/open.2:1138
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 では、転送サイズ、 ユーザーバッファのアラインメント、ファイルオフ"
-"ã\82»ã\83\83ã\83\88ã\81¯ã\80\81 ã\83\95ã\82¡ã\82¤ã\83«ã\82·ã\82¹ã\83\86ã\83 ã\81®è«\96ç\90\86ã\83\96ã\83ã\83\83ã\82¯ã\82µã\82¤ã\82ºã\81®å\80\8dæ\95°ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 "
-"Linux 2.6 では、512 バイトごとの境界に配置されていれば充分である。"
+"Linux は B<O_SYNC> と B<O_DSYNC> を実装しているが、 B<O_RSYNC> は実装していな"
+"ã\81\84 (å°\91ã\81\97é\96\93é\81\95ã\81£ã\81¦ã\81\84ã\82\8bã\81®ã\81 ã\81\8cã\80\81 glibc ã\81§ã\81¯ B<O_RSYNC> ã\81\8c B<O_SYNC> ã\81¨å\90\8cã\81\98å\80¤ã\81§å®\9a"
+"義されている)。"
#. type: Plain text
-#: build/C/man2/open.2:825
+#: build/C/man2/open.2:1156
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 "
+"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<O_SYNC> は、 同期 I/O でのI<ファイル>完全性完了を提供する。 つまり、 書き込"
+"み操作はデータとすべての関連メタデータを裏で利用されているハードウェアにフ"
+"ラッシュすることを意味する。 B<O_DSYNC> は、 同期 I/O でのI<データ>完全性完了"
+"を提供する。 つまり、 書き込み操作はデータを裏で利用されているハードウェアに"
+"フラッシュするが、 それ以降の読み出し操作が正常に完了するのに必要なメタデータ"
+"の更新のみをフラッシュする。 データ完全性完了は、 ファイル完全性完了を必要と"
+"しないアプリケーションで、 ディスク操作の数を減らすことができる。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1173
+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 ""
+"2 種類の完了の違いを理解するために、 ファイルメタデータの 2 つの要素、 ファイ"
+"ルの最終修正時刻 (I<st_mtime>) とファイル長、を考える。 すべての書き込み操作"
+"は最終修正時刻を更新するが、 ファイルの末尾にデータを追加する書き込み操作のみ"
+"がファイル長を変更する。 最終修正時刻は、 読み出しが正常に完了するのに必要で"
+"はないが、 ファイル長は必要である。 したがって、 B<O_DSYNC> はファイル長のメ"
+"タデータの更新がフラッシュされることだけを保証する (これに対して B<O_SYNC> で"
+"は最終修正時刻のメタデータも常にフラッシュされる)。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1185
+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 ""
+"Linux 2.6.33 より前では、 Linux は B<open>() では B<O_SYNC> フラグのみを実装"
+"していた。 しかしながら、 このフラグが指定された場合、 ほとんどのファイルシス"
+"テムで提供されていたのは実際には同期 I/O でのI<データ>完全性完了と等価なもの"
+"であった (つまり、 B<O_SYNC> は実際には B<O_DSYNC> と等価なものとして実装され"
+"ていた)。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1204
+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 ""
+"Linux 2.6.33 行こう では、 正しい B<O_SYNC> のサポートが提供されている。 しか"
+"しながら、 バイナリレベルの後方互換性を保証するため、 B<O_DSYNC> は以前の "
+"B<O_SYNC> と同じ値で定義されており、 B<O_SYNC> は B<O_DSYNC> フラグの値を含む"
+"新しい (2 ビットの) フラグ値として定義されている。 これにより、 新しいヘッダ"
+"を使ってコンパイルされたアプリケーションで、 2.6.33 より前のカーネルで少なく"
+"とも B<O_DSYNC> の動作は同じになることが保証される。"
+
+#. type: SS
+#: build/C/man2/open.2:1204
+#, no-wrap
+msgid "NFS"
+msgstr "NFS"
+
+#. type: Plain text
+#: build/C/man2/open.2:1208
+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:1223
+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:1223
+#, no-wrap
+msgid "File access mode"
+msgstr "ファイルアクセスモード"
+
+#. type: Plain text
+#: build/C/man2/open.2:1238
+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:1255
+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:1255
+#, no-wrap
+msgid "Rationale for openat() and other directory file descriptor APIs"
+msgstr "openat() や他のディレクトリファイルディスクリプタ API の基本原理"
+
+#. type: Plain text
+#: build/C/man2/open.2:1283
+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 ""
+"B<openat>() やディレクトリファイルディスクリプタを引き数を取る他のシステム"
+"コールやライブラリ関数 (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), B<scandirat>(3)) は二つの理由から用意されてい"
+"る。 ここでは、 B<openat> コールに関して説明するが、この基本原理は他のイン"
+"ターフェースでも同じである。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1301
+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 ""
+"最初の理由として、 B<openat>() を使うと、 アプリケーションは、 カレントワーキ"
+"ングディレクトリ以外のディレクトリで B<open>() を使ってファイルをオープンする"
+"際に起こり得る競合条件を避けることができる。 これらの競合条件は、 B<open>() "
+"に渡されたディレクトリプレフィックスの構成要素が B<open>() の呼び出しと並行し"
+"て変化する可能性があるという点に由来している。 このような競合条件は、 対象の"
+"ディレクトリに対するファイルディスクリプタをオープンし、 それから "
+"B<openat>() の I<dirfd> 引き数としてそのファイルディスクリプタを指定すること"
+"で、 避けることができる。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1312
+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 ""
+"二つ目として、 B<openat>() を使うと、アプリケーションが管理するファイルディス"
+"クリプタにより、 スレッド単位の「カレントワーキングディレクトリ」を実装するこ"
+"とができる (この機能は、 I</proc/self/fd/dirfd> を使った方法でも実現すること"
+"ができるが、 効率の面で落とる)。"
+
+#. type: SS
+#: build/C/man2/open.2:1312
+#, no-wrap
+msgid "O_DIRECT"
+msgstr "O_DIRECT"
+
+#. type: Plain text
+#: build/C/man2/open.2:1329
+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:1339
+#, fuzzy
+#| 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."
+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. Since Linux 2.6.0, alignment to the logical block size of the "
+"underlying storage (typically 512 bytes) suffices. The logical block size "
+"can be determined using the B<ioctl>(2) B<BLKSSZGET> operation or from the "
+"shell using the command:"
+msgstr ""
+"Linux 2.4 では、転送サイズ、 ユーザーバッファのアラインメント、ファイルオフ"
+"セットは、 ファイルシステムの論理ブロックサイズの倍数でなければならない。 "
+"Linux 2.6 では、512 バイトごとの境界に配置されていれば充分である。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1341
+#, no-wrap
+msgid " blockdev --getss\n"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open.2:1375
+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"
-"バッファが B<fork>(2) 後に子プロセスからは利用できないことを保証するも\n"
-"のである)。"
+"メモリバッファがプライベートマッピング (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"
+"バッファが B<fork>(2) 後に子プロセスからは利用できないことを保証するも\n"
+"のである)。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1385
+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:1394
+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:1405
+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:1427
+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:1434
+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:1439
+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:1451
+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:1459
+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 ""
+"カーネルが B<O_TMPFILE> 機能をサポートしているかを判定する際に、 B<EISDIR> "
+"と B<ENOENT> の 2 つのエラーコードをチェックしなければならない。"
+
+#. type: Plain text
+#: build/C/man2/open.2:1481
+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_handle_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_handle_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 build/C/man2/rename.2:33
+#, no-wrap
+msgid "2014-05-08"
+msgstr "2014-05-08"
+
+#. 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 ""
+"FreeBSD has a broadly similar pair of system calls in the form of "
+"B<getfh>() and B<openfh>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:364
+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:370
+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:377
+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:387
+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:409
+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:409
+#, no-wrap
+msgid "Obtaining a persistent filesystem ID"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:423
+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:439
+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:451
+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:471
+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:473
+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:483
+#, 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:494
+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:505
+#, 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:507
+#, no-wrap
+msgid "Program source: t_name_to_handle_at.c"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:519
+#, 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:522 build/C/man2/open_by_handle_at.2:595
+#, 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:529
+#, 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:534
+#, 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:536
+#, no-wrap
+msgid " pathname = argv[1];\n"
+msgstr " pathname = argv[1];\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:538
+#, 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:543
+#, 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:546
+#, 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:555
+#, 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:557
+#, 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:562
+#, 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:564
+#, 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:567
+#, no-wrap
+msgid ""
+" if (name_to_handle_at(dirfd, pathname, fhp, &mount_id, flags) == -1)\n"
+" errExit(\"name_to_handle_at\");\n"
+msgstr ""
+" 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_by_handle_at.2:570
+#, no-wrap
+msgid ""
+" /* Write mount ID, file handle size, and file handle to stdout,\n"
+" for later reuse by t_open_by_handle_at.c */\n"
+msgstr ""
+" /* 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_by_handle_at.2:576
+#, no-wrap
+msgid ""
+" 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:580
+#, no-wrap
+msgid "Program source: t_open_by_handle_at.c"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:592
+#, 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>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 ""
+"#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_by_handle_at.2:601
+#, no-wrap
+msgid ""
+"/* 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 ""
+"/* 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_by_handle_at.2:611
+#, no-wrap
+msgid ""
+"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 ""
+"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"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:615
+#, no-wrap
+msgid ""
+" fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
+" if (fp == NULL)\n"
+" errExit(\"fopen\");\n"
+msgstr ""
+" fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
+" if (fp == NULL)\n"
+" errExit(\"fopen\");\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:622
+#, no-wrap
+msgid ""
+" 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.2:835
+#: build/C/man2/open_by_handle_at.2:629
+#, 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."
+" 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 ""
-"B<O_DIRECT> フラグは SGI IRIX で導入された。SGI IRIX にも Linux 2.4 と同様の "
-"(ユーザーバッファの) アラインメントの制限がある。 また、IRIX には適切な配置と"
-"サイズを取得するための B<fcntl>(2) コールがある。 FreeBSD 4.x も同じ名前のフ"
-"ラグを導入したが、アラインメントの制限はない。"
+" 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.2:844
+#: build/C/man2/open_by_handle_at.2:634
+#, 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."
+" if (mi_mount_id == mount_id)\n"
+" found = 1;\n"
+" }\n"
+" free(linep);\n"
msgstr ""
-"B<O_DIRECT> が Linux でサポートされたのは、カーネルバージョン 2.4.10 であ"
-"る。 古い Linux カーネルは、このフラグを単に無視する。 B<O_DIRECT> フラグをサ"
-"ポートしていないファイルシステムもあり、その場合は、 B<O_DIRECT> を使用する"
-"と B<open>() は B<EINVAL> で失敗する。"
+" if (mi_mount_id == mount_id)\n"
+" found = 1;\n"
+" }\n"
+" free(linep);\n"
#. type: Plain text
-#: build/C/man2/open.2:855
+#: build/C/man2/open_by_handle_at.2:636
+#, no-wrap
+msgid " fclose(fp);\n"
+msgstr " fclose(fp);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:641
+#, 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."
+" if (!found) {\n"
+" fprintf(stderr, \"Could not find mount point\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
msgstr ""
-"アプリケーションは、同じファイル、 特に同じファイルの重複するバイト領域に対し"
-"て、 B<O_DIRECT> と通常の I/O を混ぜて使うのは避けるべきである。 ファイルシス"
-"テムがこのような状況において一貫性の問題を正しく 扱うことができる場合であって"
-"も、全体の I/O スループットは どちらか一方を使用するときと比べて低速になるで"
-"あろう。 同様に、アプリケーションは、同じファイルに対して B<mmap>(2) と直接 "
-"I/O (B<O_DIRECT>) を混ぜて使うのも避けるべきである。"
+" if (!found) {\n"
+" fprintf(stderr, \"Could not find mount point\\en\");\n"
+" exit(EXIT_FAILURE);\n"
+" }\n"
#. type: Plain text
-#: build/C/man2/open.2:877
+#: build/C/man2/open_by_handle_at.2:644
+#, 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 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."
+" return open(mount_path, O_RDONLY);\n"
+"}\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 でのアラインメントの制限はない。"
+" return open(mount_path, O_RDONLY);\n"
+"}\n"
#. type: Plain text
-#: build/C/man2/open.2:884
+#: build/C/man2/open_by_handle_at.2:655
+#, 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."
+"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 ""
-"まとめると、 B<O_DIRECT> は、注意して使うべきであるが、強力なツールとなる可能"
-"性を持っている。 アプリケーションは B<O_DIRECT> をデフォルトでは無効になって"
-"いる性能向上のためのオプションと 考えておくのがよいであろう。"
+"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.2:889
+#: build/C/man2/open_by_handle_at.2:660
+#, 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"
+" 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 ""
-"「O_DIRECT でいつも困るのは、インタフェース全部が本当にお馬鹿な点だ。 たぶん"
-"危ないマインドコントロール剤で 頭がおかしくなったサルが設計したんじゃないか"
-"な」 \\(em Linus"
+" 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"
-#. 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:662
+#, 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:666
+#, 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."
+" 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 ""
-"現在のところ、 B<open>() の呼び出し時に B<O_ASYNC> を指定してシグナル駆動 I/"
-"O を有効にすることはできない。 このフラグを有効にするには B<fcntl>(2) を使用"
-"すること。"
+" 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.2:923
+#: build/C/man2/open_by_handle_at.2:672
+#, 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)"
+" 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 ""
-"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)"
+" 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: TH
-#: build/C/man3/perror.3:31
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:674
#, no-wrap
-msgid "PERROR"
-msgstr "PERROR"
+msgid " mount_id = atoi(line1);\n"
+msgstr " mount_id = atoi(line1);\n"
+
+#. type: Plain text
+#: build/C/man2/open_by_handle_at.2:676
+#, 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:678
+#, 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:682
+#, 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:684
+#, 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:686
+#, 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:689
+#, 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:694
+#, 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:699
+#, 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:702
+#, 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:704
+#, 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:708
+#, 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:710
+#, 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:714
+#, 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:716
+#, 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:726
+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:736
+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 ""
#. type: TH
#: build/C/man3/perror.3:31
#, no-wrap
-msgid "2012-04-17"
-msgstr "2012-04-17"
+msgid "PERROR"
+msgstr "PERROR"
#. type: Plain text
#: build/C/man3/perror.3:34
#. type: Plain text
#: build/C/man3/perror.3:42
-msgid "B<const char *>I<sys_errlist>B<[];>"
-msgstr "B<const char *>I<sys_errlist>B<[];>"
+msgid "B<const char * const >I<sys_errlist>B<[];>"
+msgstr "B<const char * const >I<sys_errlist>B<[];>"
#. type: Plain text
#: build/C/man3/perror.3:44
#. type: Plain text
#: build/C/man3/perror.3:46
-msgid "B<int >I<errno>B<;>"
-msgstr "B<int >I<errno>B<;>"
+msgid "B<int >I<errno>B<; /* Not really declared this way; see errno(3). */>"
+msgstr ""
#. type: Plain text
#: build/C/man3/perror.3:55
msgstr ""
"関数 B<perror>() は、システムコールやライブラリ関数の呼び出しにおいて、最後"
"に発生した エラーに関する説明メッセージを生成し、標準エラー出力に出力する。 "
-"(I<s> が NULL でなく、 I<*s> が NULL バイト (\\(aq\\e0\\(aq) でない場合には) "
-"引き数の文字列 I<s> がまず出力され、続いてコロン、空白が出力され、 それから"
-"ã\83¡ã\83\83ã\82»ã\83¼ã\82¸ã\81¨æ\94¹è¡\8cã\81\8cå\87ºå\8a\9bã\81\95ã\82\8cã\82\8bã\80\82"
+"(I<s> が NULL でなく、 I<*s> がヌルバイト (\\(aq\\e0\\(aq) でない場合には) 引"
+"き数の文字列 I<s> がまず出力され、続いてコロン、空白が出力され、 それからメッ"
+"セージと改行が出力される。"
#. type: Plain text
#: build/C/man3/perror.3:76
"The global error list I<sys_errlist>[] indexed by I<errno> can be used to "
"obtain the error message without the newline. The largest message number "
"provided in the table is I<sys_nerr>-1. Be careful when directly accessing "
-"this list because new error values may not have been added to I<sys_errlist>"
-"[]. The use of I<sys_errlist>[] is nowadays deprecated."
+"this list because new error values may not have been added to "
+"I<sys_errlist>[]. The use of I<sys_errlist>[] is nowadays deprecated."
msgstr ""
"大域変数のエラーリスト I<sys_errlist>[] は I<errno> を添字とする配列で、こ"
"の\n"
#. 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
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"
-
-#. type: Plain text
#: build/C/man2/pipe.2:44
#, no-wrap
msgid "B<int pipe(int >I<pipefd>B<[2]);>\n"
"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:94
+msgid ""
+"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 ""
+"「パケット」モードで入出力を行うパイプを作成する。 このパイプへの "
+"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:92
+#: build/C/man2/pipe.2:129
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."
+"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 ""
-"新しく生成される二つのファイルディスクリプタの close-on-exec "
-"(B<FD_CLOEXEC>) フラグをセットする。 このフラグが役に立つ理由については、 "
-"B<open>(2) の B<O_CLOEXEC> フラグの説明を参照のこと。"
+"新しく生成される二つのオープンファイル記述 (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)"
+"B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), "
+"B<pipe>(7)"
msgstr ""
-"B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), B<pipe>"
-"(7)"
+"B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), "
+"B<pipe>(7)"
#. type: TH
#: build/C/man3/popen.3:40
"underlying file descriptor; see the description of the B<O_CLOEXEC> flag in "
"B<open>(2) for reasons why this may be useful."
msgstr ""
-"I<command> 引き数は、シェルのコマンドラインを含む NULL 終端された文字列へのポ"
-"ã\82¤ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯ B<-c> ã\83\95ã\83©ã\82°ã\82\92ç\94¨ã\81\84ã\81¦ I</bin/sh> ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82 ã\82³"
-"ã\83\9eã\83³ã\83\89ã\81®è§£é\87\88ã\81¯ (ã\82\82ã\81\97å¿\85è¦\81ã\81ªã\82\89ã\81°) ã\82·ã\82§ã\83«ã\81«ã\82\88ã\81£ã\81¦è¡\8cã\82\8fã\82\8cã\82\8bã\80\82 I<type> å¼\95ã\81\8dæ\95°ã\81¯ã\80\81"
-"NULL 終端された文字列へのポインタで、 読み込みを示す文字 \\(aqr\\(aq か、書き"
-"込みを示す文字 \\(aqw\\(aq の どちらか一方を指定しなければならない。 glibc "
-"2.9 以降では、この引き数に文字 \\(aqe\\(aq を追加で指定できる。 文字 \\(aqe"
-"\\(aq を指定すると、 対応するファイルディスクリプタにおいて、 close-on-exec "
-"フラグ (B<FD_CLOEXEC>) がセットされる。 これが役に立つ理由については、 "
-"B<open>(2) の B<O_CLOEXEC> フラグの説明を参照のこと。"
+"I<command> 引き数は、シェルのコマンドラインを含むヌル終端された文字列へのポイ"
+"ã\83³ã\82¿ã\81§ã\81\82ã\82\8bã\80\82 ã\81\93ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯ B<-c> ã\83\95ã\83©ã\82°ã\82\92ç\94¨ã\81\84ã\81¦ I</bin/sh> ã\81«æ¸¡ã\81\95ã\82\8cã\82\8bã\80\82 ã\82³ã\83\9e"
+"ã\83³ã\83\89ã\81®è§£é\87\88ã\81¯ (ã\82\82ã\81\97å¿\85è¦\81ã\81ªã\82\89ã\81°) ã\82·ã\82§ã\83«ã\81«ã\82\88ã\81£ã\81¦è¡\8cã\82\8fã\82\8cã\82\8bã\80\82 I<type> å¼\95ã\81\8dæ\95°ã\81¯ã\80\81ã\83\8cã\83«"
+"終端された文字列へのポインタで、 読み込みを示す文字 \\(aqr\\(aq か、書き込み"
+"を示す文字 \\(aqw\\(aq の どちらか一方を指定しなければならない。 glibc 2.9 以"
+"降では、この引き数に文字 \\(aqe\\(aq を追加で指定できる。 文字 \\(aqe\\(aq を"
+"指定すると、 対応するファイルディスクリプタにおいて、 close-on-exec フラグ "
+"(B<FD_CLOEXEC>) がセットされる。 これが役に立つ理由については、 B<open>(2) "
+"の B<O_CLOEXEC> フラグの説明を参照のこと。"
#. type: Plain text
#: build/C/man3/popen.3:113
msgid ""
"The return value from B<popen>() is a normal standard I/O stream in all "
-"respects save that it must be closed with B<pclose>() rather than B<fclose>"
-"(3). Writing to such a stream writes to the standard input of the command; "
-"the command's standard output is the same as that of the process that called "
-"B<popen>(), unless this is altered by the command itself. Conversely, "
-"reading from a \"popened\" stream reads the command's standard output, and "
+"respects save that it must be closed with B<pclose>() rather than "
+"B<fclose>(3). Writing to such a stream writes to the standard input of the "
+"command; the command's standard output is the same as that of the process "
+"that called B<popen>(), unless this is altered by the command itself. "
+"Conversely, reading from the stream reads the command's standard output, and "
"the command's standard input is the same as that of the process that called "
"B<popen>()."
msgstr ""
"B<popen>() からの返り値は、通常の標準 I/O ストリームと同じであるが、 "
"B<fclose>(3) ではなく B<pclose>() で閉じなくてはならないことだけが異なる。 "
"このストリームへ書き込んだ結果はコマンドの標準入力に書き込まれる。 そして、コ"
-"マンドの標準出力は、 コマンドそのものが置き換わってしまわない限り、 B<popen>"
-"() を呼んだプロセスの標準出力と同じことになる。 逆に、\"popened\" (B<popen>"
-"() によって開かれた) ストリームからの読み込みは、 そのコマンドの標準出力を読"
-"み込むことになる。 そして、そのコマンドの標準入力は B<popen>() を呼んだプロ"
-"セスの標準入力と同一である。"
+"マンドの標準出力は、 コマンドそのものが置き換わってしまわない限り、 "
+"B<popen>() を呼んだプロセスの標準出力と同じことになる。 逆に、 ストリームか"
+"らの読み込みは、 そのコマンドの標準出力を読み込むことになる。 そして、そのコ"
+"マンドの標準入力は B<popen>() を呼んだプロセスの標準入力と同一である。"
#. type: Plain text
#: build/C/man3/popen.3:117
#. already "pclose()d", or if
#. type: Plain text
#: build/C/man3/popen.3:146
-#, fuzzy
-#| msgid ""
-#| "The B<pclose>() function returns -1 if B<wait4>(2) returns an error, or "
-#| "some other error is detected."
msgid ""
"The B<pclose>() function returns -1 if B<wait4>(2) returns an error, or "
"some other error is detected. In the event of an error, these functions set "
-"I<errnro> to indicate the cause of the error."
+"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:165
#. type: TH
#: build/C/man3/printf.3:34
#, no-wrap
-msgid "2013-03-05"
-msgstr "2013-03-05"
+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
"(including the terminating null byte (\\(aq\\e0\\(aq)) to I<str>."
msgstr ""
"B<snprintf>() と B<vsnprintf>() は最大で I<size> バイトを I<str> に書き込"
-"む (I<size> には文字列を終端する NULL バイト (\\(aq\\e0\\(aq) もを含まれる)。"
+"む (I<size> には文字列を終端するヌルバイト (\\(aq\\e0\\(aq) もを含まれる)。"
#. type: Plain text
#: build/C/man3/printf.3:134
"れ B<printf>(), B<fprintf>(), B<sprintf>(), B<snprintf>(), の各関数と等価であ"
"り、可変数引き数の代わりに I<va_list> を引き数として呼び出される点だけが異な"
"る。 これらの関数では I<va_end> マクロは呼び出されない。 これらの関数は "
-"I<va_arg> を呼び出すので、呼び出し後の I<ap> の値は未定義である。 B<stdarg>"
-"(3) を参照のこと。"
+"I<va_arg> を呼び出すので、呼び出し後の I<ap> の値は未定義である。 "
+"B<stdarg>(3) を参照のこと。"
#. type: Plain text
#: build/C/man3/printf.3:141
"printed (excluding the null byte used to end output to strings)."
msgstr ""
"成功時には、上記の関数は書き込まれた文字数を返す (文字列の最後を示すために使"
-"用する NULL バイトは数に含まれない)。"
+"用するヌルバイトは数に含まれない)。"
#. type: Plain text
#: build/C/man3/printf.3:171
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 "
"also below under NOTES.)"
msgstr ""
"B<snprintf>() と B<vsnprintf>() は、 I<size> バイトを越える文字数を書き込ま"
-"ない (I<size> には文字列を終端する NULL バイト (\\(aq\\e0\\(aq) も含まれ"
-"ã\82\8b)ã\80\82 ã\81\93ã\81®å\88¶é\99\90ã\81«ã\82\88ã\81£ã\81¦å\87ºå\8a\9bã\81\8cå\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 ã\82\82ã\81\97å\8d\81å\88\86ã\81ªã\82¹ã\83\9aã\83¼ã\82¹ã\81\8cã\81\82ã\82\8c"
-"ば書き込まれたであろう文字の個数 (文字列を終端する NULL バイトを除く) を返"
-"ã\81\99ã\80\82 å¾\93ã\81£ã\81¦ã\80\81è¿\94ã\82\8aå\80¤ã\81\8c I<size> 以ä¸\8aã\81 ã\81£ã\81\9få ´å\90\88ã\80\81å\87ºå\8a\9bã\81\8cå\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\81\9fã\81\93ã\81¨ã\82\92æ\84\8få\91³"
-"ã\81\99ã\82\8b (å¾\8cè¿°ã\81®æ³¨æ\84\8fã\82\82å\8f\82ç\85§ã\81®ã\81\93ã\81¨)ã\80\82"
+"ない (I<size> には文字列を終端するヌルバイト (\\(aq\\e0\\(aq) も含まれる)。 "
+"ã\81\93ã\81®å\88¶é\99\90ã\81«ã\82\88ã\81£ã\81¦å\87ºå\8a\9bã\81\8cå\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\81\9få ´å\90\88ã\81«ã\81¯ã\80\81 ã\82\82ã\81\97å\8d\81å\88\86ã\81ªã\82¹ã\83\9aã\83¼ã\82¹ã\81\8cã\81\82ã\82\8cã\81°æ\9b¸ã\81\8d"
+"込まれたであろう文字の個数 (文字列を終端するヌルバイトを除く) を返す。 従っ"
+"ã\81¦ã\80\81è¿\94ã\82\8aå\80¤ã\81\8c I<size> 以ä¸\8aã\81 ã\81£ã\81\9få ´å\90\88ã\80\81å\87ºå\8a\9bã\81\8cå\88\87ã\82\8aè©°ã\82\81ã\82\89ã\82\8cã\81\9fã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99ã\82\8b (å¾\8cè¿°"
+"の注意も参照のこと)。"
#. type: Plain text
#: build/C/man3/printf.3:173
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 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<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:151
+#: 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:165
+#: 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
-#, fuzzy
-#| 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). "
-#| "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."
+#: 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). "
"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) が出てくるまで出力される (終端文字は出力されな"
+"ヌルバイト (\\(aq\\e0\\(aq) が出てくるまで出力される (終端文字は出力されな"
"い)。 精度が指定されていると、指定された字数以上は出力されない。 精度が指定さ"
"れた場合には、終端バイトが存在する必要はない。 精度が指定されていなかったり、"
-"精度の値が配列の大きさより大きい場合には、 配列は終端の NULL バイトを含んでい"
-"ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82"
+"精度の値が配列の大きさより大きい場合には、 配列は終端のヌルバイトを含んでいな"
+"ければならない。"
#. type: Plain text
-#: build/C/man3/printf.3:767
-#, fuzzy
-#| 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 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."
+#: 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 "
"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>() のシフト状態を初期状態に戻してから変換は行われ"
-"る)。 マルチバイト文字への変換は、文字列を終端する NULL ワイド文字が 出てくる"
-"まで行われ、終端 NULL ワイド文字も含めて変換される。 結果のマルチバイト文字列"
-"は、終端の NULL バイトが出てくるまで 出力される (終端の NULL バイトは出力され"
-"ない)。 精度が指定された場合、指定されたバイト数以上には出力されない。 但し、"
-"マルチバイト文字の一部分だけが出力されることはない。 精度は「バイト」数を指定"
-"するものであり、「ワイド文字」数や 「画面での位置」を指定するものではないこと"
-"に注意。 精度が指定されていて、さらに出力が配列の末尾に達する前に出力バイト数"
-"が 精度の値を超える場合だけは、配列は NULL ワイド文字で終端されていなくてもよ"
-"い。 それ以外の場合は、必ず配列は NULL ワイド文字で終端されていなければならな"
-"い。"
+"B<l> 修飾子が指定されている場合、 引き数は I<const wchar_t\\ *> 型でワイド文"
+"字の配列へのポインタであることが期待されている。 配列中のワイド文字は (1文字"
+"毎に B<wcrtomb>(3) を呼び出して) マルチバイト文字に変換される (最初のワイド"
+"文字の変換の前に B<wcrtomb>() のシフト状態を初期状態に戻してから変換は行われ"
+"る)。 マルチバイト文字への変換は、文字列を終端するヌルワイド文字が 出てくるま"
+"で行われ、終端ヌルワイド文字も含めて変換される。 結果のマルチバイト文字列は、"
+"終端のヌルバイトが出てくるまで 出力される (終端のヌルバイトは出力されない)。 "
+"精度が指定された場合、指定されたバイト数以上には出力されない。 但し、マルチバ"
+"イト文字の一部分だけが出力されることはない。 精度は「バイト」数を指定するもの"
+"であり、「ワイド文字」数や 「画面での位置」を指定するものではないことに注"
+"意。 精度が指定されていて、さらに出力が配列の末尾に達する前に出力バイト数が "
+"精度の値を超える場合だけは、配列はヌルワイド文字で終端されていなくてもよい。 "
+"それ以外の場合は、必ず配列はヌルワイド文字で終端されていなければならない。"
#. 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:502
+#: 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
-#, fuzzy
-#| msgid ""
-#| "The I<void *> pointer argument is printed in hexadecimal (as if by B<%#x> "
-#| "or B<%#lx>)."
+#: build/C/man3/printf.3:788
msgid ""
"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:510
+#: 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
-#, fuzzy
-#| 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."
+#: 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."
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 ""
-"バージョン 2.0.6 より前の glibc で切り詰めが起こった場合、切り詰めは適切に処"
-"理されず、エラーとして扱われる。"
-
-#. 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
+#: build/C/man3/printf.3:1042
#, no-wrap
msgid ""
"char *\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
+#: 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"
#. 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 " /* Check error code */\n"
#. type: Plain text
-#: build/C/man3/printf.3:1060
+#: 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<lt> 0)\n"
+" if (n E<lt> 0) {\n"
+" free(p);\n"
" return NULL;\n"
+" }\n"
#. type: Plain text
-#: build/C/man3/printf.3:1062
+#: build/C/man3/printf.3:1063
#, no-wrap
msgid " /* If that worked, return the string */\n"
msgstr " /* If that worked, return the string */\n"
#. type: Plain text
-#: build/C/man3/printf.3:1065
+#: build/C/man3/printf.3:1066
#, no-wrap
msgid ""
" if (n E<lt> size)\n"
" return p;\n"
#. type: Plain text
-#: build/C/man3/printf.3:1067
+#: build/C/man3/printf.3:1068
#, no-wrap
msgid " /* 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 " 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
"B<fputs>() writes the string I<s> to I<stream>, without its terminating "
"null byte (\\(aq\\e0\\(aq)."
msgstr ""
-"B<fputs>() は、文字列 I<s> を I<stream> に書き込む。 文字列終端の NULL バイ"
-"ト (\\(aq\\e0\\(aq) は出力しない。"
+"B<fputs>() は、文字列 I<s> を I<stream> に書き込む。 文字列終端のヌルバイト "
+"(\\(aq\\e0\\(aq) は出力しない。"
#. type: Plain text
#: build/C/man3/puts.3:65
#. type: Plain text
#: build/C/man3/puts.3:69
-msgid "B<putchar(>I<c>B<);> is equivalent to B<putc(>I<c>B<,>I<stdout>B<).>"
+msgid "B<putchar(>I<c>B<);> is equivalent to B<putc(>I<c>B<, >I<stdout>B<).>"
msgstr "B<putchar(>I<c>B<);> は、 B<putc(>I<c>B<,>I<stdout>B<)> と同じである。"
#. type: Plain text
#. 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
msgstr "READ"
#. type: TH
-#: build/C/man2/read.2:35
+#: build/C/man2/read.2:35 build/C/man2/write.2:39
#, no-wrap
-msgid "2013-02-12"
-msgstr "2013-02-12"
+msgid "2014-05-04"
+msgstr "2014-05-04"
#. type: Plain text
#: build/C/man2/read.2:38
"(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: Plain text
#: build/C/man2/read.2:126
msgid ""
-"The call was interrupted by a signal before any data was read; see B<signal>"
-"(7)."
+"The call was interrupted by a signal before any data was read; see "
+"B<signal>(7)."
msgstr ""
"何のデータも読み込まないうちにシグナルに割り込まれた。 B<signal>(7) 参照。"
#. type: Plain text
#: build/C/man2/read.2:187
msgid ""
-"On NFS file systems, reading small amounts of data will update the timestamp "
+"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 "
"ではこれは続くサーバーの 負荷を増加させ、パフォーマンスの低下をもたらす。"
#. type: Plain text
-#: build/C/man2/read.2:200
+#: build/C/man2/read.2:190 build/C/man2/write.2:214
+msgid ""
+"According to POSIX.1-2008/SUSv4 Section XSI 2.9.7 (\"Thread Interactions "
+"with Regular File Operations\"):"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/read.2:195 build/C/man2/write.2:219
+msgid ""
+"All of the following functions shall be atomic with respect to each other in "
+"the effects specified in POSIX.1-2008 when they operate on regular files or "
+"symbolic links: ..."
+msgstr ""
+
+#
+#. http://thread.gmane.org/gmane.linux.kernel/1649458
+#. From: Michael Kerrisk (man-pages <mtk.manpages <at> gmail.com>
+#. Subject: Update of file offset on write() etc. is non-atomic with I/O
+#. Date: 2014-02-17 15:41:37 GMT
+#. Newsgroups: gmane.linux.kernel, gmane.linux.file-systems
+#. commit 9c225f2655e36a470c4f58dbbc99244c5fc7f2d4
+#. Author: Linus Torvalds <torvalds@linux-foundation.org>
+#. Date: Mon Mar 3 09:36:58 2014 -0800
+#. vfs: atomic f_pos accesses as per POSIX
+#. type: Plain text
+#: build/C/man2/read.2:226
+msgid ""
+"Among the APIs subsequently listed are B<read>() and B<readv>(2). And "
+"among the effects that should be atomic across threads (and processes) are "
+"updates of the file offset. However, on Linux before version 3.14, this was "
+"not the case: if two processes that share an open file description (see "
+"B<open>(2)) perform a B<read>() (or B<readv>(2)) at the same time, then "
+"the I/O operations were not atomic with respect updating the file offset, "
+"with the result that the reads in the two processes might (incorrectly) "
+"overlap in the blocks of data that they obtained. This problem was fixed in "
+"Linux 3.14."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/read.2:239
msgid ""
"B<close>(2), B<fcntl>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), B<pread>(2), "
"B<readdir>(2), B<readlink>(2), B<readv>(2), B<select>(2), B<write>(2), "
"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
-#, no-wrap
-msgid "2011-09-20"
-msgstr "2011-09-20"
+#. 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<ssize_t 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<ssize_t 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>() は"
+"ヌルバイトを 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:85
+#: build/C/man2/readlink.2:148
msgid ""
-"On success, B<readlink>() returns the number of bytes placed in I<buf>. On "
+"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:159
+msgid ""
+"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:212 build/C/man2/unlink.2:269
+msgid ""
+"I<pathname> is relative and I<dirfd> is a file descriptor referring to a "
+"file other than a directory."
+msgstr ""
+"I<pathname> が相対パスで、 I<dirfd> がディレクトリ以外のファイルを参照してい"
+"るファイルディスクリプタである。"
+
+#. 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<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<readlink>(1), B<lstat>(2), B<stat>(2), B<symlink>(2), "
"B<path_resolution>(7), B<symlink>(7)"
#. type: TH
"Buffers are processed in array order. This means that B<readv>() "
"completely fills I<iov>[0] before proceeding to I<iov>[1], and so on. (If "
"there is insufficient data, then not all buffers pointed to by I<iov> may be "
-"filled.) Similarly, B<writev>() writes out the entire contents of I<iov>"
-"[0] before proceeding to I<iov>[1], and so on."
+"filled.) Similarly, B<writev>() writes out the entire contents of "
+"I<iov>[0] before proceeding to I<iov>[1], and so on."
msgstr ""
"バッファは配列の順序で処理される。これは、 B<readv>() が I<iov>[0] が完全に"
"一杯になるまでデータを詰めてから、 I<iov>[1] などに進むことを意味する (データ"
#: build/C/man2/readv.2:200
msgid ""
"The errors are as given for B<read>(2) and B<write>(2). Furthermore, "
-"B<preadv>() and B<pwritev>() can also fail for the same reasons as B<lseek>"
-"(2). Additionally, the following error is defined:"
+"B<preadv>() and B<pwritev>() can also fail for the same reasons as "
+"B<lseek>(2). Additionally, the following error is defined:"
msgstr ""
"B<read>(2) や B<write>(2) と同じエラーが定義されている。\n"
"さらに、 B<preadv>() と B<pwritev>() は B<lseek>(2) と同じ理由でも失敗す"
"by these mechanisms is 1024, which is the true kernel limit. However, the "
"glibc wrapper functions do some extra work if they detect that the "
"underlying kernel system call failed because this limit was exceeded. In "
-"the case of B<readv>() the wrapper function allocates a temporary buffer "
+"the case of B<readv>(). the wrapper function allocates a temporary buffer "
"large enough for all of the items specified by I<iov>, passes that buffer in "
"a call to B<read>(2), copies data from the buffer to the locations specified "
"by the I<iov_base> fields of the elements of I<iov>, and then frees the "
"た全ての要素を格納できる大きさの一時バッファを割り当て、 B<read>(2) を呼び出"
"す際にそのバッファを渡し、 そのバッファのデータを I<iov> の各要素の "
"I<iov_base> フィールドが指定する場所にコピーしてから、 そのバッファを解放す"
-"る。 B<writev>() のラッパー関数も、同じように一時バッファを使って B<write>"
-"(2) を呼び出す。"
+"る。 B<writev>() のラッパー関数も、同じように一時バッファを使って "
+"B<write>(2) を呼び出す。"
#. type: Plain text
#: build/C/man2/readv.2:265
#. 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, renameat2 - change the name or location of a file"
+msgstr "rename, renameat, renameat2 - ファイルの名前や位置を変更する"
+
+#. 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:51
+#, no-wrap
+msgid ""
+"B<int renameat2(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
+"B< int >I<newdirfd>B<, const char *>I<newpath>B<, unsigned int >I<flags>B<);>\n"
+msgstr ""
+"B<int renameat2(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
+"B< int >I<newdirfd>B<, const char *>I<newpath>B<, unsigned int >I<flags>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:59
+msgid "B<renameat>():"
+msgstr "B<renameat>():"
#. type: Plain text
-#: build/C/man2/rename.2:48
+#: build/C/man2/rename.2:81
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:89
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:97
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:105
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:111
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:118
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:124
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:124
+#, no-wrap
+msgid "renameat ()"
+msgstr "renameat ()"
+
+#. type: Plain text
+#: build/C/man2/rename.2:130
+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:140
+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:152
+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:171
+msgid "See B<openat>(2) for an explanation of the need for B<renameat>()."
+msgstr "B<renameat>() の必要性についての説明については B<openat>(2) を参照。"
+
+#. type: SS
+#: build/C/man2/rename.2:171
+#, no-wrap
+msgid "renameat2()"
+msgstr "renameat2()"
+
+#. type: Plain text
+#: build/C/man2/rename.2:182
+msgid ""
+"B<renameat2>() has an additional I<flags> argument. A B<renameat2>() call "
+"with a zero I<flags> argument is equivalent to B<renameat>()."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/rename.2:186
+#, fuzzy
+#| msgid "The character % is followed by zero or more of the following flags:"
+msgid ""
+"The I<flags> argument is a bit mask consisting of zero or more of the "
+"following flags:"
+msgstr "% 文字の後ろには 0 個以上のフラグ文字が続く。"
+
+#. type: TP
+#: build/C/man2/rename.2:186
+#, no-wrap
+msgid "B<RENAME_NOREPLACE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/rename.2:194
+msgid ""
+"Don't overwrite I<newpath>. of the rename. Return an error if I<newpath> "
+"already exists."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/rename.2:194
+#, no-wrap
+msgid "B<RENAME_EXCHANGE>"
+msgstr "B<RENAME_EXCHANGE>"
+
+#. type: Plain text
+#: build/C/man2/rename.2:203
+msgid ""
+"Atomically exchange I<oldpath> and I<newpath>. Both pathnames must exist "
+"but may be of different types (e.g., one could be a non-empty directory and "
+"the other a symbolic link)."
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/rename.2:116
+#: build/C/man2/rename.2:228
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:228 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:245
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:255
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:261
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:272
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:288
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:305
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:305
#, 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:309
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:309 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:333
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:344
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:349
+msgid ""
+"The following additional errors can occur for B<renameat>() and "
+"B<renameat2>():"
+msgstr "B<renameat>() と B<renameat2>() では以下のエラーも発生する。"
#. type: Plain text
-#: build/C/man2/rename.2:245
+#: build/C/man2/rename.2:368
+msgid "The following additional errors can occur for B<renameat2>():"
+msgstr "B<renameat2>() では以下のエラーも発生する。"
+
+#. type: Plain text
+#: build/C/man2/rename.2:376
+msgid "I<flags> contains B<RENAME_NOREPLACE> and I<newpath> already exists."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/rename.2:385
+msgid ""
+"An invalid flag was specified in I<flags>, or both B<RENAME_NOREPLACE> and "
+"B<RENAME_EXCHANGE> were specified."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/rename.2:389
+#, fuzzy
+#| msgid "The filesystem does not allow unlinking of files."
+msgid "The filesystem does not support one of the flags in I<flags>."
+msgstr "ファイルシステムがファイルに対する unlink 操作を許していない。"
+
+#. type: Plain text
+#: build/C/man2/rename.2:397
+msgid "I<flags> contains B<RENAME_EXCHANGE> and I<newpath> does not exist."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/rename.2:401
+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 に追加された。"
+
+#. FIXME glibc support is pending.
+#. type: Plain text
+#: build/C/man2/rename.2:405
+msgid "B<renameat2>() was added to Linux in kernel 3.15."
+msgstr "B<renameat2>() はカーネル 2.6.16 で Linux に追加された。"
+
+#. type: Plain text
+#: build/C/man2/rename.2:408
+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:411
+msgid "B<renameat>(): POSIX.1-2008."
+msgstr "B<renameat>(): POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/rename.2:414
+msgid "B<renameat2()> is Linux-specific."
+msgstr "B<renameat2>() は Linux 固有である。"
+
+#. type: Plain text
+#: build/C/man2/rename.2:425
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:433
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
-#, no-wrap
-msgid "2013-01-30"
-msgstr "2013-01-30"
-
#. type: Plain text
#: build/C/man3/scanf.3:55
msgid ""
"B<sscanf>() reads its input from the character string pointed to by I<str>."
msgstr ""
"B<scanf>() 関数は標準入力ストリーム I<stdin> からの入力を読み込む。 "
-"B<fscanf>() はストリームポインタ I<stream> からの入力を読み込む。 B<sscanf>"
-"() は文字列ポインタ I<str> で示された文字列からの入力を読み込む。"
+"B<fscanf>() はストリームポインタ I<stream> からの入力を読み込む。 "
+"B<sscanf>() は文字列ポインタ I<str> で示された文字列からの入力を読み込む。"
#. type: Plain text
#: build/C/man3/scanf.3:145
#. type: Plain text
#: build/C/man3/scanf.3:220
-#, fuzzy
-#| 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."
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 "
"使用され、これを使うと 呼び出し元が入力を保持する対応するバッファを確保する必"
"要がなくなる。 代わりに B<scanf>() が必要な大きさのバッファを確保し、この"
"バッファのアドレスを 対応する I<pointer> 引き数に代入する。 I<pointer> 引き数"
-"は I<char *> 型の変数へのポインタでなければならない (変数自体は呼び出し前に初"
-"期化されている必要はない)。 呼び出し元は、不要になった時点で、このバッファを "
-"B<free>(3) すべきである。"
+"は I<char\\ *> 型の変数へのポインタでなければならない (変数自体は呼び出し前に"
+"初期化されている必要はない)。 呼び出し元は、不要になった時点で、このバッファ"
+"を B<free>(3) すべきである。"
#. type: Plain text
#: build/C/man3/scanf.3:232
"一致しない文字が見つかるか、のどちらかに なると、文字の読み込みを停止する。 "
"ほとんどの変換では、先頭のホワイトスペース文字は捨てられ (例外については後述"
"する)、 捨てられたこれらの文字は最大フィールド幅の計算には含まれない。 文字列"
-"の入力変換では、入力の末尾を示す終端の NULL バイト (\\(aq\\e0\\(aq) も格納さ"
-"ã\82\8cã\82\8bã\81\8cã\80\81æ\9c\80大ã\83\95ã\82£ã\83¼ã\83«ã\83\89å¹\85ã\81«ã\81¯ã\81\93ã\81®çµ\82端ã\83\90ã\82¤ã\83\88ã\81¯å\90«ã\81¾ã\82\8cã\81ªã\81\84ã\80\82"
+"の入力変換では、入力の末尾を示す終端のヌルバイト (\\(aq\\e0\\(aq) も格納され"
+"るが、最大フィールド幅にはこの終端バイトは含まれない。"
#. type: Plain text
#: build/C/man3/scanf.3:246
"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> へのポイン"
msgstr ""
"ホワイトスペースではない文字で構成された文字列に対応する。 次のポインタは文字"
"の配列へのポインタでなければならず、 その文字配列は、入力された文字列と (自動"
-"的に追加される) 終端の NULL バイト (\\(aq\\e0\\(aq) を格納するのに十分な大き"
-"ã\81\95ã\81§ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82 æ\96\87å\97å\88\97ã\81®å\85¥å\8a\9bã\81¯ã\80\81ã\83\9bã\83¯ã\82¤ã\83\88ã\82¹ã\83\9aã\83¼ã\82¹ã\81\8cå\85¥å\8a\9bã\81\95ã\82\8cã\82\8bã\81\8bã\80\81æ\9c\80大"
+"的に追加される) 終端のヌルバイト (\\(aq\\e0\\(aq) を格納するのに十分な大きさ"
+"でなければならない。 文字列の入力は、ホワイトスペースが入力されるか、最大"
"フィールド幅に 達するか、のどちらかが起こると停止される。"
#. type: Plain text
msgstr ""
"I<「最大フィールド幅」> (デフォルトは 1) で指定された幅の文字の列に対応す"
"る。 次のポインタは I<char> へのポインタで、すべての文字を格納するのに十分な"
-"領域が なければならない (終端の NULL バイトは追加されない)。 通常行われる先頭"
-"ã\81®ã\83\9bã\83¯ã\82¤ã\83\88ã\82¹ã\83\9aã\83¼ã\82¹ã\81®èªã\81¿é£\9bã\81°ã\81\97ã\81¯è¡\8cã\82\8fã\82\8cã\81ªã\81\84ã\80\82 å\85\88é ã\81®ã\83\9bã\83¯ã\82¤ã\83\88ã\82¹ã\83\9aã\83¼ã\82¹ã\82\92èªã\81¿é£\9bã\81°"
-"ã\81\99ã\81\9fã\82\81ã\81«ã\81¯ã\80\81 ã\83\95ã\82©ã\83¼ã\83\9eã\83\83ã\83\88æ\96\87ã\81®ä¸ã\81§æ\98\8e示ç\9a\84ã\81«ã\82¹ã\83\9aã\83¼ã\82¹ã\82\92使ç\94¨ã\81\99ã\82\8cã\81°è\89¯ã\81\84ã\80\82"
+"領域が なければならない (終端のヌルバイトは追加されない)。 通常行われる先頭の"
+"ã\83\9bã\83¯ã\82¤ã\83\88ã\82¹ã\83\9aã\83¼ã\82¹ã\81®èªã\81¿é£\9bã\81°ã\81\97ã\81¯è¡\8cã\82\8fã\82\8cã\81ªã\81\84ã\80\82 å\85\88é ã\81®ã\83\9bã\83¯ã\82¤ã\83\88ã\82¹ã\83\9aã\83¼ã\82¹ã\82\92èªã\81¿é£\9bã\81°ã\81\99"
+"ためには、 フォーマット文の中で明示的にスペースを使用すれば良い。"
#. type: TP
#: build/C/man3/scanf.3:469
"or the circumflex; any other position will end the set. The hyphen "
"character B<-> is also special; when placed between two other characters, it "
"adds all intervening characters to the set. To include a hyphen, make it "
-"the last character before the final close bracket. For instance, B<[^]0-9-]"
-"> means the set \"everything except close bracket, zero through nine, and "
-"hyphen\". The string ends with the appearance of a character not in the "
-"(or, with a circumflex, in) set or when the field width runs out."
+"the last character before the final close bracket. For instance, "
+"B<[^]0-9-]> means the set \"everything except close bracket, zero through "
+"nine, and hyphen\". The string ends with the appearance of a character not "
+"in the (or, with a circumflex, in) set or when the field width runs out."
msgstr ""
"格納された文字列のうちから取り出された、 指定された文字の集合で構成される空で"
"はない文字の列に対応する。 次のポインタは I<char> へのポインタでなければなら"
-"ず、 そこには文字列中のすべての文字と終端の NULL バイト を格納するための十分"
-"な領域がなければならない。 通常行われる先頭のホワイトスペースの読み飛ばしは行"
-"ã\82\8fã\82\8cã\81ªã\81\84ã\80\82 ã\81\93ã\81®æ\96\87å\97å\88\97ã\81¯ç\89¹å\88¥ã\81ªé\9b\86å\90\88ã\81®ä¸ã\81®æ\96\87å\97ã\81§æ§\8bæ\88\90ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®é\9b\86å\90\88ã\81¯ é\96\8bã\81\8d"
-"括弧 B<[> と閉じ括弧 B<]> の間の文字で定義される。 開き括弧のあとの最初の文字"
-"が曲アクセント記号 (B<^>) の場合、集合はこれらの文字を含まないものとなる。 "
-"閉じ括弧を集合に含ませるためには、この文字を開き括弧または 曲アクセント記号の"
-"ã\81\82ã\81¨ã\81®æ\9c\80å\88\9dã\81®æ\96\87å\97ã\81«ã\81\99ã\82\8cã\81°ã\82\88ã\81\84ã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ä»\96ã\81®ä½\8dç½®ã\81«é\96\89ã\81\98æ\8b¬å¼§ã\82\92ç½®ã\81\8fã\81¨æ\96\87å\97ã\81®é\9b\86å\90\88ã\81\8c"
-"終る。 ハイフン B<-> もまた特殊文字である。 二つの異なる文字の間に置かれた"
-"時、この文字は、 その間にある全ての文字を集合に加える。 ハイフン自体を含ませ"
-"ã\82\8bã\81\9fã\82\81ã\81«ã\81¯ã\80\81 æ\8b¬å¼§ã\81\8cé\96\89ã\81\98ã\82\8bå\89\8dã\81®æ\9c\80å¾\8cã\81®ä¸\80æ\96\87å\97ã\82\92ã\83\8fã\82¤ã\83\95ã\83³ã\81«ã\81\99ã\82\8cã\81°ã\82\88ã\81\84ã\80\82 ä¾\8bã\81\88ã\81°ã\80\81 B<"
-"[^]0-9-]> は「閉じ括弧、0 〜 9、ハイフンの 3 種類を除く全ての文字」の集合を意"
-"味する。 この文字列は 集合に含まれていない (曲アクセントの場合には含まれる) "
-"文字の 出現または確保された領域が使い切られた時に終了する。"
+"ず、 そこには文字列中のすべての文字と終端のヌルバイト を格納するための十分な"
+"領域がなければならない。 通常行われる先頭のホワイトスペースの読み飛ばしは行わ"
+"ã\82\8cã\81ªã\81\84ã\80\82 ã\81\93ã\81®æ\96\87å\97å\88\97ã\81¯ç\89¹å\88¥ã\81ªé\9b\86å\90\88ã\81®ä¸ã\81®æ\96\87å\97ã\81§æ§\8bæ\88\90ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82 ã\81\93ã\81®é\9b\86å\90\88ã\81¯ é\96\8bã\81\8dæ\8b¬"
+"弧 B<[> と閉じ括弧 B<]> の間の文字で定義される。 開き括弧のあとの最初の文字が"
+"曲アクセント記号 (B<^>) の場合、集合はこれらの文字を含まないものとなる。 閉"
+"じ括弧を集合に含ませるためには、この文字を開き括弧または 曲アクセント記号のあ"
+"ã\81¨ã\81®æ\9c\80å\88\9dã\81®æ\96\87å\97ã\81«ã\81\99ã\82\8cã\81°ã\82\88ã\81\84ã\80\82 ã\81¤ã\81¾ã\82\8aã\80\81ä»\96ã\81®ä½\8dç½®ã\81«é\96\89ã\81\98æ\8b¬å¼§ã\82\92ç½®ã\81\8fã\81¨æ\96\87å\97ã\81®é\9b\86å\90\88ã\81\8cçµ\82"
+"る。 ハイフン B<-> もまた特殊文字である。 二つの異なる文字の間に置かれた時、"
+"この文字は、 その間にある全ての文字を集合に加える。 ハイフン自体を含ませるた"
+"ã\82\81ã\81«ã\81¯ã\80\81 æ\8b¬å¼§ã\81\8cé\96\89ã\81\98ã\82\8bå\89\8dã\81®æ\9c\80å¾\8cã\81®ä¸\80æ\96\87å\97ã\82\92ã\83\8fã\82¤ã\83\95ã\83³ã\81«ã\81\99ã\82\8cã\81°ã\82\88ã\81\84ã\80\82 ä¾\8bã\81\88ã\81°ã\80\81 "
+"B<[^]0-9-]> は「閉じ括弧、0 〜 9、ハイフンの 3 種類を除く全ての文字」の集合を"
+"意味する。 この文字列は 集合に含まれていない (曲アクセントの場合には含まれ"
+"る) 文字の 出現または確保された領域が使い切られた時に終了する。"
#. type: Plain text
#: build/C/man3/scanf.3:510
"library. Take a look at the I<info> documentation of I<GNU> I<libc "
"(glibc-1.08)> for a more concise description."
msgstr ""
-"これらの関数の Linux 版は I<GNU> I<libio> ライブラリーを元にしている。 より簡"
-"潔な説明には I<GNU> I<libc (glibc-1.08)> の I<info> 文書に目を通すこと。"
+"これらの関数の 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:620
+msgid ""
+"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:623
+#, no-wrap
+msgid ""
+" char *buf;\n"
+" scanf(\"%as\", &buf);\n"
+msgstr ""
+" char *buf;\n"
+" scanf(\"%as\", &buf);\n"
+
+#. type: Plain text
+#: build/C/man3/scanf.3:634
+msgid ""
+"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 ""
+"この目的で文字 B<a> を使うのは問題をはらんでいる。 なぜなら、 B<a> は ISO C "
+"標準では (浮動小数点入力を表す) の B<f> の同義語として定義されているからであ"
+"る。 その代わり、 POSIX.1-2008 では、(上記の「説明」に書かれている通り) 代入"
+"割り当てを行う修飾子として B<m> が規定されている。"
#. type: Plain text
-#: build/C/man3/scanf.3:614
+#: build/C/man3/scanf.3:646
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."
+"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 ""
-"GNU C ライブラリ (glibc) では、 B<a> 文字による動的割り当て変換指定子 "
-"(dynamic allocation conversion specifier) を (非標準の拡張として) サポートし"
-"ã\81¦ã\81\84ã\82\8bã\80\82ã\81\93ã\81®æ©\9fè\83½ã\81¯å°\91ã\81ªã\81\8fã\81¨ã\82\82 glibc 2.0 以é\99\8dã\81§å\98å\9c¨ã\81\97ã\81¦ã\81\84ã\82\8bã\82\88ã\81\86ã\81§ã\81\82る。"
+"B<a> 修飾子は I<gcc -std=c99> や I<gcc -D_ISOC99_SOURCE> でコンパイルしたプロ"
+"グラムでは (B<_GNU_SOURCE> も同時に指定していない場合) 利用できない点に注意。"
+"ã\81\93ã\81®å ´å\90\88ã\80\81 B<a> ã\81¯ (ä¸\8aè¿°ã\81®é\80\9aã\82\8a) æµ®å\8b\95å°\8fæ\95°ç\82¹æ\95°ã\82\92示ã\81\99å¤\89æ\8f\9bæ\8c\87å®\9aå\90ã\81¨è§£é\87\88ã\81\95ã\82\8cる。"
#. type: Plain text
-#: build/C/man3/scanf.3:624
+#: build/C/man3/scanf.3:652
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)."
+"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 ""
-"この修飾子は I<gcc -std=c99> や I<gcc -D_ISOC99_SOURCE> でコンパイルしたプロ"
-"グラムでは (B<_GNU_SOURCE> も同時に指定していない場合) 利用できない。この場"
-"合、 B<a> は (上述の通り) 浮動小数点数を示す変換指定子と解釈される。"
+"B<m> 修飾子への対応はバージョン 2.7 以降の glibc で追加されている。新しいプロ"
+"グラムでぇあ B<a> の代わりに B<m> を使用すべきである。"
#. type: Plain text
-#: build/C/man3/scanf.3:633
+#: build/C/man3/scanf.3:658
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:"
+"As well as being standardized by POSIX, the B<m> modifier has the following "
+"further advantages over the use of B<a:>"
msgstr ""
-"バージョン 2.7 以降では、glibc は B<a> 修飾子と同じ目的で B<m> 修飾子も提供し"
-"ã\81¦ã\81\84ã\82\8bã\80\82 B<m> 修飾å\90ã\81¯ä»¥ä¸\8bã\81®利点がある。"
+"POSIX で標準化されているだけでなく、 B<m> 修飾子には B<a> を利用する場合に比"
+"ã\81¹ã\81¦ä»¥ä¸\8bã\81®ã\82\88ã\81\86ã\81ª利点がある。"
#. type: Plain text
-#: build/C/man3/scanf.3:638
+#: 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:644
+#: 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:646
-msgid "It is specified in the POSIX.1-2008 standard."
-msgstr "POSIX.1-2008 標準で規定されている。"
-
-#. type: Plain text
-#: build/C/man3/scanf.3:659
+#: 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:675
+#: 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:681
+#: 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:691
+#: 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) "
"呼び出し側は返された文字列を B<free>(3) しなければならない。"
#. type: Plain text
-#: build/C/man3/scanf.3:696
+#: build/C/man3/scanf.3:719
#, no-wrap
msgid ""
"char *p;\n"
"int n;\n"
#. type: Plain text
-#: build/C/man3/scanf.3:707
+#: build/C/man3/scanf.3:730
#, no-wrap
msgid ""
"errno = 0;\n"
"}\n"
#. type: Plain text
-#: build/C/man3/scanf.3:715
+#: build/C/man3/scanf.3:738
msgid ""
"As shown in the above example, it is necessary to call B<free>(3) only if "
"the B<scanf>() call successfully read a string."
"B<free>(3) を呼び出す必要がある。"
#. type: Plain text
-#: build/C/man3/scanf.3:722
+#: 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
#, no-wrap
-msgid "2012-08-03"
-msgstr "2012-08-03"
+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 ""
"Except for unbuffered files, the I<buf> argument should point to a buffer at "
"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 be used only after opening a stream and before any other "
-"operations have been performed on it."
+"buffer will be allocated on the next read or write operation. The "
+"B<setvbuf>() 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:135
msgid ""
-"The other three calls are, in effect, simply aliases for calls to B<setvbuf>"
-"(). The B<setbuf>() function is exactly equivalent to the call"
+"The other three calls are, in effect, simply aliases for calls to "
+"B<setvbuf>(). The B<setbuf>() function is exactly equivalent to the call"
msgstr ""
"他の 3 つの関数は B<setvbuf>() の呼び出しに単純に置き換えることができる。 "
"B<setbuf>() 関数は、"
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)"
+"B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), "
+"B<printf>(3), B<puts>(3)"
msgstr ""
-"B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), B<printf>"
-"(3), B<puts>(3)"
+"B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), "
+"B<printf>(3), B<puts>(3)"
#. type: TH
#: build/C/man3/stdin.3:13
"On program startup, the integer file descriptors associated with the streams "
"I<stdin>, I<stdout>, and I<stderr> are 0, 1, and 2, respectively. The "
"preprocessor symbols B<STDIN_FILENO>, B<STDOUT_FILENO>, and B<STDERR_FILENO> "
-"are defined with these values in I<E<lt>unistd.hE<gt>>. (Applying B<freopen>"
-"(3) to one of these streams can change the file descriptor number "
+"are defined with these values in I<E<lt>unistd.hE<gt>>. (Applying "
+"B<freopen>(3) to one of these streams can change the file descriptor number "
"associated with the stream.)"
msgstr ""
"プログラムの起動時には、 ストリーム I<stdin>, I<stdout>, I<stderr> に結びつけ"
#: build/C/man3/stdin.3:154
msgid ""
"The stream I<stderr> is unbuffered. The stream I<stdout> is line-buffered "
-"when it points to a terminal. Partial lines will not appear until B<fflush>"
-"(3) or B<exit>(3) is called, or a newline is printed. This can produce "
-"unexpected results, especially with debugging output. The buffering mode of "
-"the standard streams (or any other stream) can be changed using the "
+"when it points to a terminal. Partial lines will not appear until "
+"B<fflush>(3) or B<exit>(3) is called, or a newline is printed. This can "
+"produce unexpected results, especially with debugging output. The buffering "
+"mode of the standard streams (or any other stream) can be changed using the "
"B<setbuf>(3) or B<setvbuf>(3) call. Note that in case I<stdin> is "
"associated with a terminal, there may also be input buffering in the "
"terminal driver, entirely unrelated to stdio buffering. (Indeed, normally "
"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 "
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 refer to an interactive device."
+"output> (for writing conventional output), 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 refer to an interactive device."
msgstr ""
"プログラムの起動時に 3 個のテキストストリームが予め定義されており、 それらは"
"明示的に開く必要がない。 I<標準入力 (standard input)> (通常の入力を読み取るの"
"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
"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
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: TH
+#: build/C/man2/symlink.2:33
+#, no-wrap
+msgid "2014-05-05"
+msgstr "2014-05-05"
+
#. 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 ""
"そのファイルシステムのリソース使用量がユーザクォータに達している。対象となる"
"依存である。"
#. 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: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: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
+#, fuzzy
+#| msgid ""
+#| "I<linkpath> is relative and I<newdirfd> is a file descriptor referring to "
+#| "a file other than a directory."
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 a relative pathname and I<newdirfd> refers to a directory "
+"that has been deleted."
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:224
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)"
+"I<linkpath> is relative and I<newdirfd> is a file descriptor referring to a "
+"file other than a directory."
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)"
+"I<linkpath> が相対パスで、 I<newdirfd> がディレクトリ以外のファイルを参照して"
+"いるファイルディスクリプタである。"
-#. type: TH
-#: build/C/man7/symlink.7:36
-#, no-wrap
-msgid "2008-06-18"
-msgstr "2008-06-18"
+#. type: Plain text
+#: build/C/man2/symlink.2:228
+msgid ""
+"B<symlinkat>() was added to Linux in kernel 2.6.16; library support was "
+"added to glibc in version 2.4."
+msgstr ""
+"B<symlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
+"ポートはバージョン 2.4 で glibc に追加された。"
+#. 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/man7/symlink.7:39
-msgid "symlink - symbolic link handling"
+#: build/C/man2/symlink.2:235
+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/man2/symlink.2:238
+msgid "B<symlinkat>(): POSIX.1-2008."
+msgstr "B<symlinkat>(): POSIX.1-2008."
+
+#. type: Plain text
+#: build/C/man2/symlink.2:242
+msgid "No checking of I<target> is done."
+msgstr "I<target> についてのチェックは行なわれない。"
+
+#. type: Plain text
+#: build/C/man2/symlink.2:247
+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:258
+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."
+"B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), B<readlink>(2), "
+"B<rename>(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>"
-"(1), B<pax>(1), B<rm>(1), and B<tar>(1)."
+"B<chgrp>(1), B<chmod>(1), B<chown>(1), B<cp>(1), B<du>(1), B<find>(1), "
+"B<ls>(1), B<pax>(1), B<rm>(1), and B<tar>(1)."
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), "
-"B<symlink>(2), B<unlink>(2), B<utimensat>(2), B<lutimes>(3), "
+"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), B<symlink>(2), B<unlink>(2), B<utimensat>(2), B<lutimes>(3), "
"B<path_resolution>(7)"
msgstr ""
"B<chgrp>(1), B<chmod>(1), B<find>(1), B<ln>(1), B<ls>(1), B<mv>(1),\n"
msgid "TEMPNAM"
msgstr "TEMPNAM"
+#. type: TH
+#: build/C/man3/tempnam.3:25 build/C/man3/tmpnam.3:27
+#, no-wrap
+msgid "2014-02-27"
+msgstr "2014-02-27"
+
#. type: Plain text
#: build/C/man3/tempnam.3:28
msgid "tempnam - create a name for a temporary file"
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>"
-"() checked. The filename suffix of the pathname generated will start with "
-"I<pfx> in case I<pfx> is a non-NULL string of at most five bytes. The "
-"directory prefix part of the pathname generated is required to be "
-"\"appropriate\" (often that at least implies writable)."
+"filename, and such that a file with this name did not exist when "
+"B<tempnam>() checked. The filename suffix of the pathname generated will "
+"start with I<pfx> in case I<pfx> is a non-NULL string of at most five "
+"bytes. The directory prefix part of the pathname generated is required to "
+"be \"appropriate\" (often that at least implies writable)."
msgstr ""
"B<tempnam>() 関数はファイル名として正しい文字列へのポインタを返す。 このファ"
"イル名を持つファイルは、 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:94
-#, fuzzy
-#| msgid ""
-#| "The B<tempnam>() function returns a pointer to a unique temporary "
-#| "filename, or NULL if a unique name cannot be generated."
+#: build/C/man3/tempnam.3:101
msgid ""
-"On succes, the B<tempnam>() function returns a pointer to a unique "
+"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:98
+#: build/C/man3/tempnam.3:105
msgid "Allocation of storage failed."
msgstr "保存領域の割り当てに失敗した。"
#. type: Plain text
-#: build/C/man3/tempnam.3:103
+#: 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:122
+#: 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<open>(2) B<O_EXCL> flag to open the pathname. Or better yet, use "
"B<mkstemp>(3) or B<tmpfile>(3)."
msgstr ""
-"B<tempnam>() は推測が難しい名前を生成するが、それにもかかわらず、 B<tempnam>"
-"() がパス名を返してから、プログラムがそのファイルをオープンする までの間に、"
-"別のプログラムが同じパス名で、ファイルを B<open>(2) で作成したり、シンボリッ"
-"ã\82¯ã\83ªã\83³ã\82¯ã\82\92ä½\9cæ\88\90ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\82»ã\82ã\83¥ã\83ªã\83\86ã\82£ã\83\9bã\83¼ã\83«ã\81«ã\81¤ã\81ªã\81\8cã\82\8bå\8f¯è\83½"
-"性がある。 そのような可能性を回避するためには、 B<open>(2) の B<O_EXCL> フラ"
-"グを使ってパス名をオープンすればよい。 もっといいのは、 B<mkstemp>(3) や "
-"B<tmpfile>(3) を使うことである。"
+"B<tempnam>() は推測が難しい名前を生成するが、それにもかかわらず、 "
+"B<tempnam>() がパス名を返してから、プログラムがそのファイルをオープンする ま"
+"での間に、別のプログラムが同じパス名で、ファイルを B<open>(2) で作成したり、"
+"ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92ä½\9cæ\88\90ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\82»ã\82ã\83¥ã\83ªã\83\86ã\82£ã\83\9bã\83¼ã\83«ã\81«ã\81¤"
+"ながる可能性がある。 そのような可能性を回避するためには、 B<open>(2) の "
+"B<O_EXCL> フラグを使ってパス名をオープンすればよい。 もっといいのは、 "
+"B<mkstemp>(3) や B<tmpfile>(3) を使うことである。"
#. type: Plain text
-#: build/C/man3/tempnam.3:130
+#: 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:135
+#: 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:148
+#: 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:152
+#: 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:158
+#: 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:161
+#: 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:168 build/C/man3/tmpnam.3:163
-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: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:78
-msgid "Read-only file system."
+msgid "Read-only filesystem."
msgstr "読みだし専用ファイルシステムである。"
#. type: Plain text
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:83
+#: 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:87
+#: build/C/man3/tmpnam.3:96
msgid "The B<tmpnam_r>() function is thread-safe."
-msgstr ""
+msgstr "B<tmpnam_r>() 関数はスレッドセーフである。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:92
+#: 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:103
+#: 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:122
+#: 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<open>(2) B<O_EXCL> flag to open the pathname. Or better yet, use "
"B<mkstemp>(3) or B<tmpfile>(3)."
msgstr ""
-"B<tmpnam>() は推測が難しい名前を生成するが、それにもかかわらず、 B<tmpnam>"
-"() がパス名を返してから、プログラムがそのファイルをオープンする までの間に、"
-"別のプログラムが同じパス名で、ファイルを B<open>(2) で作成したり、シンボリッ"
-"ã\82¯ã\83ªã\83³ã\82¯ã\82\92ä½\9cæ\88\90ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\82»ã\82ã\83¥ã\83ªã\83\86ã\82£ã\83\9bã\83¼ã\83«ã\81«ã\81¤ã\81ªã\81\8cã\82\8bå\8f¯è\83½"
-"性がある。 そのような可能性を回避するためには、 B<open>(2) の B<O_EXCL> フラ"
-"グを使ってパス名をオープンすればよい。 もっといいのは、 B<mkstemp>(3) や "
-"B<tmpfile>(3) を使うことである。"
+"B<tmpnam>() は推測が難しい名前を生成するが、それにもかかわらず、 "
+"B<tmpnam>() がパス名を返してから、プログラムがそのファイルをオープンする ま"
+"での間に、別のプログラムが同じパス名で、ファイルを B<open>(2) で作成したり、"
+"ã\82·ã\83³ã\83\9cã\83ªã\83\83ã\82¯ã\83ªã\83³ã\82¯ã\82\92ä½\9cæ\88\90ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bå\8f¯è\83½æ\80§ã\81\8cã\81\82ã\82\8bã\80\82 ã\81\93ã\82\8cã\81¯ã\82»ã\82ã\83¥ã\83ªã\83\86ã\82£ã\83\9bã\83¼ã\83«ã\81«ã\81¤"
+"ながる可能性がある。 そのような可能性を回避するためには、 B<open>(2) の "
+"B<O_EXCL> フラグを使ってパス名をオープンすればよい。 もっといいのは、 "
+"B<mkstemp>(3) や B<tmpfile>(3) を使うことである。"
#. type: Plain text
-#: build/C/man3/tmpnam.3:130
+#: 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:134
+#: 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:142
+#: build/C/man3/tmpnam.3:151
#, no-wrap
msgid ""
"char *\n"
"}\n"
#. type: Plain text
-#: build/C/man3/tmpnam.3:156
+#: 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:168
+#: 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
+#: build/C/man2/unlink.2:33
#, no-wrap
-msgid "2011-09-15"
-msgstr "2011-09-15"
+msgid "2014-02-21"
+msgstr "2014-02-21"
#. type: Plain text
-#: build/C/man2/unlink.2:35
-msgid "unlink - delete a name and possibly the file it refers to"
+#: build/C/man2/unlink.2:36
+msgid "unlink, unlinkat - delete a name and possibly the file it refers to"
msgstr ""
-"unlink - 名前を削除し、場合によってはそれが参照しているファイルも削除する"
+"unlink, unlinkat - 名前を削除し、場合によってはそれが参照しているファイルも削"
+"除する"
#. 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:41
+#, no-wrap
+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: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: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: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:51
-msgid "If the name referred to a symbolic link the link is removed."
+#: 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 ""
-"もし名前がソケット (socket) や fifo やデバイス (device) を参照していれば 名前"
-"は削除されるがそのオブジェクトをオープンしていたプロセスは それを使い続けるこ"
-"とができる。"
+"デフォルトでは、 B<unlinkat>() は I<pathname> に対して B<unlink>() と等価な動"
+"作をする。 B<AT_REMOVEDIR> フラグが指定された場合、 I<pathname> に対して "
+"B<rmdir>(2) と等価な動作をする。"
+
+#. type: Plain text
+#: 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:71
+#: 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 ""
#. type: TH
#: build/C/man3/wprintf.3:16
#, no-wrap
-msgid "2011-09-17"
-msgstr "2011-09-17"
+msgid "2014-03-19"
+msgstr "2014-03-19"
#. type: Plain text
#: build/C/man3/wprintf.3:20
#. 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:81
+#: build/C/man3/wprintf.3:79
msgid ""
"The B<wprintf>() and B<vwprintf>() functions perform wide-character output "
"to I<stdout>. I<stdout> must not be byte oriented; see B<fwide>(3) for "
"ること。"
#. type: Plain text
-#: build/C/man3/wprintf.3:93
+#: 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:107
+#: 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:118
+#: 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:118 build/C/man3/wprintf.3:123
-#: build/C/man3/wprintf.3:126
+#: 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:123
+#: 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:126
+#: build/C/man3/wprintf.3:124
msgid "The output consists of wide characters, not bytes."
msgstr "出力がバイトではなくワイド文字で構成される。"
#. type: Plain text
-#: build/C/man3/wprintf.3:145
+#: 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 "
"I<maxlen> argument, but these functions do not return -1 upon buffer "
"overflow on Linux.)"
msgstr ""
-"B<swprintf>() と B<vswprintf>() は I<maxlen> 引き数を取るが、 B<sprintf>"
-"() と B<vsprintf>() は取らない (B<snprintf>() と B<vsnprintf>() は "
-"I<maxlen> 引き数を取るが これらの関数が Linux では、バッファーが溢れた場合で"
-"も -1 を返さない)。"
+"B<swprintf>() と B<vswprintf>() は I<maxlen> 引き数を取るが、 "
+"B<sprintf>() と B<vsprintf>() は取らない (B<snprintf>() と "
+"B<vsnprintf>() は I<maxlen> 引き数を取るが これらの関数が Linux では、バッ"
+"ã\83\95ã\82¡ã\83¼ã\81\8c溢ã\82\8cã\81\9få ´å\90\88ã\81§ã\82\82 -1 ã\82\92è¿\94ã\81\95ã\81ªã\81\84)ã\80\82"
#. type: Plain text
-#: build/C/man3/wprintf.3:151
+#: 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:165
+#: 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:205
-#, fuzzy
-#| 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) containing a multibyte character sequence beginning in the "
-#| "initial shift 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."
+#: 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) "
"まるマルチバイト文字列を含んだ char 型の配列へのポインタ(文字列へのポインタ)"
"とみなされる。 配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれ"
"の文字を B<mbrtowc>(3) 関数によって)ワイド文字へと変換される。結果のワイド文"
-"字は終端の ナルワイド文字の手前までが書き込まれる。精度(precision)が指定され"
-"た 場合、指定された数字を超えるワイド文字は書き込まれない。精度は 書き込まれ"
-"る I<バイト> 数や I<画面上の位置> ではなく I<ワイド文字> の数を指定することに"
-"注意すること。 精度がない場合には配列の終端にナル文字を含む必要がある。 精度"
-"を指定する場合には、配列の最後に到着する前に変換されたワイド文字の 数がそれに"
-"到達するよう、精度は十分に小さな数でなければならない。 もし B<l> 修飾子が存在"
-"する場合、 I<const\\ wchar_t\\ *> 引き数はワイド文字の配列へのポインタとみな"
-"される。 配列のワイド文字列は終端のナルワイド文字の手間まで出力される。 もし"
-"精度が指定された場合には指定された精度以上の文字は出力されない。 精度を指定し"
-"ない場合には終端のナルワイド文字を含む必要がある。 精度を指定する場合にはそれ"
-"はワイド文字の配列の大きさよりも小さくな ければならない。"
-
-#. type: Plain text
-#: build/C/man3/wprintf.3:213
+"字は終端の ナルワイド文字 (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:215
+#: build/C/man3/wprintf.3:213
msgid "C99."
msgstr "C99."
#. type: Plain text
-#: build/C/man3/wprintf.3:223
+#: 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:253
+#: build/C/man3/wprintf.3:251
msgid ""
"If the I<format> string contains non-ASCII wide characters, the program will "
"work correctly only if the B<LC_CTYPE> category of the current locale at run "
"the use of C99 universal character names of the form \\eunnnn does not solve "
"this problem.) Therefore, in internationalized programs, the I<format> "
"string should consist of ASCII wide characters only, or should be "
-"constructed at run time in an internationalized way (e.g., using B<gettext>"
-"(3) or B<iconv>(3), followed by B<mbstowcs>(3))."
+"constructed at run time in an internationalized way (e.g., using "
+"B<gettext>(3) or B<iconv>(3), followed by B<mbstowcs>(3))."
msgstr ""
"I<format> 文字列が ASCII 以外のワイド文字を含んでいる場合、 実行時のロケール"
"の B<LC_CTYPE> カテゴリがコンパイル時の B<LC_CTYPE> カテゴリと 一致している場"
#. .BR wscanf (3)
#. type: Plain text
-#: build/C/man3/wprintf.3:260
+#: 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)"
"書き込まれるバイト数は I<count> よりも小さくなることがある。 例えば、書き込み"
"対象の物理メディアに十分な領域がない場合、 リソース上限 B<RLIMIT_FSIZE> に達"
"した場合 (B<setrlimit>(2) 参照)、 I<count> バイト未満の書き込みが行われた後"
-"で 呼び出しがシグナルハンドラにより割り込まれた場合、 などである。 (B<pipe>"
-"(7) も参照のこと。)"
+"で 呼び出しがシグナルハンドラにより割り込まれた場合、 などである。 "
+"(B<pipe>(7) も参照のこと。)"
#. type: Plain text
#: build/C/man2/write.2:82
#: 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
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> が参照するファイルを含むファイルシステムのディスクブロックのユーザ"
"The call was interrupted by a signal before any data was written; see "
"B<signal>(7)."
msgstr ""
-"何のデータも書かない間にシグナルにより割り込まれた (interrupt)。 B<signal>"
-"(7) 参照。"
+"何のデータも書かない間にシグナルにより割り込まれた (interrupt)。 "
+"B<signal>(7) 参照。"
#. type: Plain text
#: build/C/man2/write.2:165
"場合、 B<write>() はエラー B<EINTR> で失敗する。 1バイトでも書き込んだ後で割"
"り込まれた場合には、 B<write>() は成功し、書き込んだバイト数を返す。"
+#
+#. http://thread.gmane.org/gmane.linux.kernel/1649458
+#. From: Michael Kerrisk (man-pages <mtk.manpages <at> gmail.com>
+#. Subject: Update of file offset on write() etc. is non-atomic with I/O
+#. Date: 2014-02-17 15:41:37 GMT
+#. Newsgroups: gmane.linux.kernel, gmane.linux.file-systems
+#. commit 9c225f2655e36a470c4f58dbbc99244c5fc7f2d4
+#. Author: Linus Torvalds <torvalds@linux-foundation.org>
+#. Date: Mon Mar 3 09:36:58 2014 -0800
+#. vfs: atomic f_pos accesses as per POSIX
+#. type: Plain text
+#: build/C/man2/write.2:250
+msgid ""
+"Among the APIs subsequently listed are B<write>() and B<writev>(2). And "
+"among the effects that should be atomic across threads (and processes) are "
+"updates of the file offset. However, on Linux before version 3.14, this was "
+"not the case: if two processes that share an open file description (see "
+"B<open>(2)) perform a B<write>() (or B<writev>(2)) at the same time, then "
+"the I/O operations were not atomic with respect updating the file offset, "
+"with the result that the blocks of data output by the two processes might "
+"(incorrectly) overlap. This problem was fixed in Linux 3.14."
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/write.2:223
+#: build/C/man2/write.2:262
msgid ""
"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)"
"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 "2001-12-18"
-#~ msgstr "2001-12-18"
+#~ msgid "2014-04-02"
+#~ msgstr "2014-04-02"
+
+#~ msgid "2012-04-17"
+#~ msgstr "2012-04-17"
+
+#~ msgid "B<int >I<errno>B<;>"
+#~ msgstr "B<int >I<errno>B<;>"
+
+#~ msgid "2014-04-20"
+#~ msgstr "2014-04-20"
+
+#~ 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>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
+#~ "ワーキングディレクトリに対する相対パスではない)。"
+
+#~ msgid "2014-03-24"
+#~ msgstr "2014-03-24"
-#~ msgid "2007-07-26"
-#~ msgstr "2007-07-26"
+#~ msgid "2013-02-12"
+#~ msgstr "2013-02-12"
-#~ msgid "2006-12-27"
-#~ msgstr "2006-12-27"
+#~ msgid "2013-01-27"
+#~ msgstr "2013-01-27"
-#~ msgid "1999-07-25"
-#~ msgstr "1999-07-25"
+#~ 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)."
+#~ 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) を実行するという競合条件"
+#~ "を避けるのには十分ではないからである。"
+
+#~ msgid "SYMBOLIC LINK HANDLING"
+#~ msgstr "シンボリックリンクの取り扱い"
+
+#~ 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."
+#~ msgstr ""
+#~ "いくつかのシステムコールは、 シンボリックリンクを辿らず、 シンボリックリン"
+#~ "ク自身に対して操作を行う。 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 "2008-06-14"
-#~ msgstr "2008-06-14"
+#~ 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 referring to it is closed."
+#~ msgstr ""
+#~ "もし削除する名前がファイルへの最後のリンクだが、どれかのプロセスが その"
+#~ "ファイルをまだオープンしている場合は、 そのファイルを参照している最後の"
+#~ "ファイルディスクリプタ (file descriptor) がクローズ (close) されるまで"
+#~ "ファイルは存在し続ける。"
-#~ msgid "2010-06-12"
-#~ msgstr "2010-06-12"
+#~ msgid "If the name referred to a symbolic link the link is removed."
+#~ msgstr ""
+#~ "もしその名前がシンボリックリンク (symbolic link) を参照していれば、 リンク"
+#~ "は削除される。"
-#~ msgid "2010-02-03"
-#~ msgstr "2010-02-03"
+#~ 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 ""
+#~ "もし名前がソケット (socket) や fifo やデバイス (device) を参照していれば "
+#~ "名前は削除されるがそのオブジェクトをオープンしていたプロセスは それを使い"
+#~ "続けることができる。"
-#~ msgid "2001-12-16"
-#~ msgstr "2001-12-16"
+#~ 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>."
+#~ msgstr ""
+#~ "ファイルは同期 (synchronous) I/O モードでオープンされる。 B<open>() が返"
+#~ "したファイルディスクリプタに対して B<write>(2) を行うと、必ず呼び出したプ"
+#~ "ロセスをブロックし、 該当ハードウェアに物理的に書き込まれるまで返らない。 "
+#~ "I<以下の「注意」の章も参照。>"
-#~ msgid "2008-08-06"
-#~ msgstr "2008-08-06"
+#~ msgid ""
+#~ "Some of these optional flags can be altered using B<fcntl>(2) after the "
+#~ "file has been opened."
+#~ msgstr ""
+#~ "これらの選択フラグのいくつかはファイルをオープンした後でも B<fcntl>(2) を"
+#~ "使用して変更することができる。"
-#~ msgid "2010-09-10"
-#~ msgstr "2010-09-10"
+#~ msgid ""
+#~ "Too many symbolic links were encountered in resolving I<pathname>, or "
+#~ "B<O_NOFOLLOW> was specified but I<pathname> was a symbolic link."
+#~ msgstr ""
+#~ "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。 または "
+#~ "B<O_NOFOLLOW> が指定されており、 I<pathname> がシンボリックリンクだった。"
#~ 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."
+#~ "The B<O_CLOEXEC> flag is not specified in POSIX.1-2001, but is specified "
+#~ "in POSIX.1-2008."
#~ msgstr ""
-#~ "多くのファイルシステムやディスクは B<O_NONBLOCK> の実装はしなくても済むく"
-#~ "らいに十分に高速であると考えられている。 それでそのようなファイルやディス"
-#~ "クには B<O_NONBLOCK> は利用できないかもしれない。"
+#~ "B<O_CLOEXEC> フラグは POSIX.1-2001 では規定されていないが、 POSIX.1-2008 "
+#~ "で規定されている。"
#~ 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:"
+#~ "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 ""
-#~ "引き数 I<local_iov> と I<remote_iov> は I<iovec> 構造体の配列へのポイン\n"
-#~ "タである。 I<iovec> 構造体は I<E<lt>sys/uio.hE<gt>> で以下のように定義\n"
-#~ "されている:"
+#~ "B<O_DIRECT> は POSIX では規定されていない。 B<O_DIRECT> の定義を得るには "
+#~ "(「どの」ヘッダファイルをインクルードするよりも前に) B<_GNU_SOURCE> を定"
+#~ "義しなければならない。"
#~ 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."
+#~ "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 ""
-#~ "バッファは配列の順序で処理される。これは、 B<process_vm_readv>() が\n"
-#~ "I<local_iov>[0] が完全に一杯になるまでデータを詰めてから、\n"
-#~ "I<local_iov>[1] に進むといったことを意味する。同様に、\n"
-#~ "I<remote_iov>[0] を完全に読み出してから I<remote_iov>[1] に進み、\n"
-#~ "以降も同様である。"
+#~ "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>() が返るまでに、実際のファイルのデータとそのデータを取得するため"
+#~ "に 必要なメタデータだけがディスクに書き込まれていればよい。"