OSDN Git Service

snapshot of symlink.7
[linuxjm/LDP_man-pages.git] / po4a / stdio / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2015-01-11 03:53+0900\n"
10 "PO-Revision-Date: 2015-01-18 20:28+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man3/asprintf.3:27
20 #, no-wrap
21 msgid "ASPRINTF"
22 msgstr "ASPRINTF"
23
24 #. type: TH
25 #: build/C/man3/asprintf.3:27 build/C/man3/fcloseall.3:25
26 #: build/C/man3/fmtmsg.3:13 build/C/man3/stdio_ext.3:25
27 #, no-wrap
28 msgid "2013-06-21"
29 msgstr "2013-06-21"
30
31 #. type: TH
32 #: build/C/man3/asprintf.3:27 build/C/man3/ctermid.3:26
33 #: build/C/man3/dprintf.3:26 build/C/man3/fclose.3:44
34 #: build/C/man3/fcloseall.3:25 build/C/man3/fflush.3:45
35 #: build/C/man3/fgetc.3:27 build/C/man3/fgetwc.3:18 build/C/man3/fmemopen.3:10
36 #: build/C/man3/fopen.3:44 build/C/man3/fputwc.3:16 build/C/man3/fread.3:45
37 #: build/C/man3/fseek.3:42 build/C/man3/getline.3:26 build/C/man3/gets.3:29
38 #: build/C/man3/getw.3:25 build/C/man3/popen.3:40 build/C/man3/printf.3:34
39 #: build/C/man3/puts.3:26 build/C/man3/remove.3:31 build/C/man3/scanf.3:52
40 #: build/C/man3/wprintf.3:16
41 #, no-wrap
42 msgid "GNU"
43 msgstr "GNU"
44
45 #. type: TH
46 #: build/C/man3/asprintf.3:27 build/C/man3/ctermid.3:26
47 #: build/C/man3/dprintf.3:26 build/C/man3/fclose.3:44
48 #: build/C/man3/fcloseall.3:25 build/C/man3/ferror.3:44
49 #: build/C/man3/fflush.3:45 build/C/man3/fgetc.3:27 build/C/man3/fgetwc.3:18
50 #: build/C/man3/flockfile.3:25 build/C/man3/fmemopen.3:10
51 #: build/C/man3/fmtmsg.3:13 build/C/man3/fopen.3:44
52 #: build/C/man3/fopencookie.3:26 build/C/man3/fpurge.3:25
53 #: build/C/man3/fputwc.3:16 build/C/man3/fread.3:45 build/C/man3/fseek.3:42
54 #: build/C/man3/fseeko.3:25 build/C/man3/getline.3:26 build/C/man3/gets.3:29
55 #: build/C/man3/getw.3:25 build/C/man2/link.2:32 build/C/man2/llseek.2:28
56 #: build/C/man2/lseek.2:47 build/C/man3/lseek64.3:25 build/C/man2/open.2:51
57 #: build/C/man2/open_by_handle_at.2:25 build/C/man3/perror.3:31
58 #: build/C/man2/pipe.2:36 build/C/man3/popen.3:40 build/C/man3/printf.3:34
59 #: build/C/man3/puts.3:26 build/C/man2/read.2:35 build/C/man2/readlink.2:44
60 #: build/C/man2/readv.2:32 build/C/man3/remove.3:31 build/C/man2/rename.2:33
61 #: build/C/man2/rmdir.2:30 build/C/man3/scanf.3:52 build/C/man3/setbuf.3:48
62 #: build/C/man3/stdin.3:13 build/C/man3/stdio.3:39 build/C/man3/stdio_ext.3:25
63 #: build/C/man2/symlink.2:33 build/C/man7/symlink.7:37
64 #: build/C/man3/tempnam.3:25 build/C/man3/tmpfile.3:31
65 #: build/C/man3/tmpnam.3:27 build/C/man2/unlink.2:33
66 #: build/C/man3/unlocked_stdio.3:25 build/C/man3/wprintf.3:16
67 #: build/C/man2/write.2:39
68 #, no-wrap
69 msgid "Linux Programmer's Manual"
70 msgstr "Linux Programmer's Manual"
71
72 #. type: SH
73 #: build/C/man3/asprintf.3:28 build/C/man3/ctermid.3:27
74 #: build/C/man3/dprintf.3:27 build/C/man3/fclose.3:45
75 #: build/C/man3/fcloseall.3:26 build/C/man3/ferror.3:45
76 #: build/C/man3/fflush.3:46 build/C/man3/fgetc.3:28 build/C/man3/fgetwc.3:19
77 #: build/C/man3/flockfile.3:26 build/C/man3/fmemopen.3:11
78 #: build/C/man3/fmtmsg.3:14 build/C/man3/fopen.3:45
79 #: build/C/man3/fopencookie.3:27 build/C/man3/fpurge.3:26
80 #: build/C/man3/fputwc.3:17 build/C/man3/fread.3:46 build/C/man3/fseek.3:43
81 #: build/C/man3/fseeko.3:26 build/C/man3/getline.3:27 build/C/man3/gets.3:30
82 #: build/C/man3/getw.3:26 build/C/man2/link.2:33 build/C/man2/llseek.2:29
83 #: build/C/man2/lseek.2:48 build/C/man3/lseek64.3:26 build/C/man2/open.2:52
84 #: build/C/man2/open_by_handle_at.2:26 build/C/man3/perror.3:32
85 #: build/C/man2/pipe.2:37 build/C/man3/popen.3:41 build/C/man3/printf.3:35
86 #: build/C/man3/puts.3:27 build/C/man2/read.2:36 build/C/man2/readlink.2:45
87 #: build/C/man2/readv.2:33 build/C/man3/remove.3:32 build/C/man2/rename.2:34
88 #: build/C/man2/rmdir.2:31 build/C/man3/scanf.3:53 build/C/man3/setbuf.3:49
89 #: build/C/man3/stdin.3:14 build/C/man3/stdio.3:40 build/C/man3/stdio_ext.3:26
90 #: build/C/man2/symlink.2:34 build/C/man7/symlink.7:38
91 #: build/C/man3/tempnam.3:26 build/C/man3/tmpfile.3:32
92 #: build/C/man3/tmpnam.3:28 build/C/man2/unlink.2:34
93 #: build/C/man3/unlocked_stdio.3:26 build/C/man3/wprintf.3:17
94 #: build/C/man2/write.2:40
95 #, no-wrap
96 msgid "NAME"
97 msgstr "名前"
98
99 #. type: Plain text
100 #: build/C/man3/asprintf.3:30
101 msgid "asprintf, vasprintf - print to allocated string"
102 msgstr "asprintf, vasprintf - 文字列を割り当ててそれに出力する"
103
104 #. type: SH
105 #: build/C/man3/asprintf.3:30 build/C/man3/ctermid.3:29
106 #: build/C/man3/dprintf.3:29 build/C/man3/fclose.3:47
107 #: build/C/man3/fcloseall.3:28 build/C/man3/ferror.3:47
108 #: build/C/man3/fflush.3:48 build/C/man3/fgetc.3:30 build/C/man3/fgetwc.3:21
109 #: build/C/man3/flockfile.3:28 build/C/man3/fmemopen.3:13
110 #: build/C/man3/fmtmsg.3:16 build/C/man3/fopen.3:47
111 #: build/C/man3/fopencookie.3:29 build/C/man3/fpurge.3:28
112 #: build/C/man3/fputwc.3:19 build/C/man3/fread.3:48 build/C/man3/fseek.3:45
113 #: build/C/man3/fseeko.3:28 build/C/man3/getline.3:29 build/C/man3/gets.3:32
114 #: build/C/man3/getw.3:28 build/C/man2/link.2:35 build/C/man2/llseek.2:31
115 #: build/C/man2/lseek.2:50 build/C/man3/lseek64.3:28 build/C/man2/open.2:54
116 #: build/C/man2/open_by_handle_at.2:29 build/C/man3/perror.3:34
117 #: build/C/man2/pipe.2:39 build/C/man3/popen.3:43 build/C/man3/printf.3:38
118 #: build/C/man3/puts.3:29 build/C/man2/read.2:38 build/C/man2/readlink.2:47
119 #: build/C/man2/readv.2:35 build/C/man3/remove.3:34 build/C/man2/rename.2:36
120 #: build/C/man2/rmdir.2:33 build/C/man3/scanf.3:55 build/C/man3/setbuf.3:51
121 #: build/C/man3/stdin.3:16 build/C/man3/stdio.3:42 build/C/man3/stdio_ext.3:30
122 #: build/C/man2/symlink.2:36 build/C/man3/tempnam.3:28
123 #: build/C/man3/tmpfile.3:34 build/C/man3/tmpnam.3:30 build/C/man2/unlink.2:36
124 #: build/C/man3/unlocked_stdio.3:29 build/C/man3/wprintf.3:20
125 #: build/C/man2/write.2:42
126 #, no-wrap
127 msgid "SYNOPSIS"
128 msgstr "書式"
129
130 #. type: Plain text
131 #: build/C/man3/asprintf.3:32
132 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
133 msgstr "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */"
134
135 #. type: Plain text
136 #: build/C/man3/asprintf.3:34 build/C/man3/dprintf.3:31
137 #: build/C/man3/fclose.3:49 build/C/man3/ferror.3:49 build/C/man3/fflush.3:50
138 #: build/C/man3/fseek.3:47 build/C/man3/perror.3:36 build/C/man3/printf.3:40
139 #: build/C/man3/remove.3:36 build/C/man3/stdio.3:44
140 #: build/C/man3/stdio_ext.3:32
141 msgid "B<#include E<lt>stdio.hE<gt>>"
142 msgstr "B<#include E<lt>stdio.hE<gt>>"
143
144 #. type: Plain text
145 #: build/C/man3/asprintf.3:36
146 msgid "B<int asprintf(char **>I<strp>B<, const char *>I<fmt>B<, ...);>"
147 msgstr "B<int asprintf(char **>I<strp>B<, const char *>I<fmt>B<, ...);>"
148
149 #. type: Plain text
150 #: build/C/man3/asprintf.3:38
151 msgid ""
152 "B<int vasprintf(char **>I<strp>B<, const char *>I<fmt>B<, va_list >I<ap>B<);>"
153 msgstr ""
154 "B<int vasprintf(char **>I<strp>B<, const char *>I<fmt>B<, va_list >I<ap>B<);>"
155
156 #. type: SH
157 #: build/C/man3/asprintf.3:38 build/C/man3/ctermid.3:46
158 #: build/C/man3/dprintf.3:55 build/C/man3/fclose.3:51
159 #: build/C/man3/fcloseall.3:35 build/C/man3/ferror.3:65
160 #: build/C/man3/fflush.3:52 build/C/man3/fgetc.3:44 build/C/man3/fgetwc.3:30
161 #: build/C/man3/flockfile.3:51 build/C/man3/fmemopen.3:46
162 #: build/C/man3/fmtmsg.3:26 build/C/man3/fopen.3:65
163 #: build/C/man3/fopencookie.3:37 build/C/man3/fpurge.3:42
164 #: build/C/man3/fputwc.3:28 build/C/man3/fread.3:58 build/C/man3/fseek.3:57
165 #: build/C/man3/fseeko.3:54 build/C/man3/getline.3:58 build/C/man3/gets.3:38
166 #: build/C/man3/getw.3:59 build/C/man2/link.2:66 build/C/man2/llseek.2:43
167 #: build/C/man2/lseek.2:56 build/C/man3/lseek64.3:36 build/C/man2/open.2:88
168 #: build/C/man2/open_by_handle_at.2:43 build/C/man3/perror.3:55
169 #: build/C/man2/pipe.2:51 build/C/man3/popen.3:64 build/C/man3/printf.3:76
170 #: build/C/man3/puts.3:43 build/C/man2/read.2:44 build/C/man2/readlink.2:86
171 #: build/C/man2/readv.2:58 build/C/man3/remove.3:38 build/C/man2/rename.2:72
172 #: build/C/man2/rmdir.2:37 build/C/man3/scanf.3:87 build/C/man3/setbuf.3:73
173 #: build/C/man3/stdin.3:24 build/C/man3/stdio.3:50 build/C/man3/stdio_ext.3:54
174 #: build/C/man2/symlink.2:74 build/C/man7/symlink.7:40
175 #: build/C/man3/tempnam.3:42 build/C/man3/tmpfile.3:40
176 #: build/C/man3/tmpnam.3:36 build/C/man2/unlink.2:66
177 #: build/C/man3/unlocked_stdio.3:106 build/C/man3/wprintf.3:58
178 #: build/C/man2/write.2:46
179 #, no-wrap
180 msgid "DESCRIPTION"
181 msgstr "説明"
182
183 #. type: Plain text
184 #: build/C/man3/asprintf.3:53
185 msgid ""
186 "The functions B<asprintf>()  and B<vasprintf>()  are analogs of "
187 "B<sprintf>(3)  and B<vsprintf>(3), except that they allocate a string large "
188 "enough to hold the output including the terminating null byte (\\(aq"
189 "\\e0\\(aq), and return a pointer to it via the first argument.  This pointer "
190 "should be passed to B<free>(3)  to release the allocated storage when it is "
191 "no longer needed."
192 msgstr ""
193 "B<asprintf>()  関数と B<vasprintf>()  関数とは、それぞれ B<sprintf>(3)  関数"
194 "と B<vsprintf>(3)  関数とに似ているが、 出力文字列を (終端のヌルバイト (\\(aq"
195 "\\e0\\(aq) も含めて)  保持するのに十分な大きさのメモリを確保し、 最初の引数に"
196 "その文字列へのポインタを返す。 このポインタは、不要になったら B<free>(3)  に"
197 "渡し、割り当てられた記憶領域を解放すべきである。"
198
199 #. type: SH
200 #: build/C/man3/asprintf.3:53 build/C/man3/ctermid.3:59
201 #: build/C/man3/fclose.3:59 build/C/man3/fcloseall.3:50
202 #: build/C/man3/fflush.3:74 build/C/man3/fgetc.3:99 build/C/man3/fgetwc.3:55
203 #: build/C/man3/flockfile.3:120 build/C/man3/fmemopen.3:176
204 #: build/C/man3/fmtmsg.3:152 build/C/man3/fopen.3:189
205 #: build/C/man3/fopencookie.3:238 build/C/man3/fpurge.3:58
206 #: build/C/man3/fputwc.3:54 build/C/man3/fread.3:83 build/C/man3/fseek.3:121
207 #: build/C/man3/fseeko.3:88 build/C/man3/getline.3:112 build/C/man3/gets.3:50
208 #: build/C/man3/getw.3:73 build/C/man2/link.2:187 build/C/man2/llseek.2:62
209 #: build/C/man2/lseek.2:179 build/C/man2/open.2:774
210 #: build/C/man2/open_by_handle_at.2:245 build/C/man2/pipe.2:133
211 #: build/C/man3/popen.3:123 build/C/man3/puts.3:84 build/C/man2/read.2:81
212 #: build/C/man2/readlink.2:153 build/C/man2/readv.2:177
213 #: build/C/man3/remove.3:60 build/C/man2/rename.2:203 build/C/man2/rmdir.2:40
214 #: build/C/man3/scanf.3:530 build/C/man3/setbuf.3:152
215 #: build/C/man2/symlink.2:140 build/C/man3/tempnam.3:94
216 #: build/C/man3/tmpfile.3:47 build/C/man3/tmpnam.3:79
217 #: build/C/man2/unlink.2:153 build/C/man3/wprintf.3:203
218 #: build/C/man2/write.2:89
219 #, no-wrap
220 msgid "RETURN VALUE"
221 msgstr "返り値"
222
223 #. type: Plain text
224 #: build/C/man3/asprintf.3:61
225 msgid ""
226 "When successful, these functions return the number of bytes printed, just "
227 "like B<sprintf>(3).  If memory allocation wasn't possible, or some other "
228 "error occurs, these functions will return -1, and the contents of I<strp> is "
229 "undefined."
230 msgstr ""
231 "成功すると、これらの関数は出力されたバイト数を (B<sprintf>(3)  のように) 返"
232 "す。 メモリの割り当てができなかったり、 その他エラーが生じると、 これらの関数"
233 "は -1 を返し、 I<strp> の内容は未定義となる。"
234
235 #. type: SH
236 #: build/C/man3/asprintf.3:61 build/C/man3/ctermid.3:67
237 #: build/C/man3/dprintf.3:69 build/C/man3/fclose.3:90
238 #: build/C/man3/fcloseall.3:60 build/C/man3/ferror.3:115
239 #: build/C/man3/fflush.3:98 build/C/man3/fgetc.3:124 build/C/man3/fgetwc.3:70
240 #: build/C/man3/flockfile.3:135 build/C/man3/fmemopen.3:195
241 #: build/C/man3/fmtmsg.3:237 build/C/man3/fopen.3:246
242 #: build/C/man3/fopencookie.3:245 build/C/man3/fpurge.3:70
243 #: build/C/man3/fputwc.3:68 build/C/man3/fread.3:103 build/C/man3/fseek.3:169
244 #: build/C/man3/fseeko.3:102 build/C/man3/getline.3:137 build/C/man3/gets.3:58
245 #: build/C/man3/getw.3:80 build/C/man2/link.2:338 build/C/man2/llseek.2:81
246 #: build/C/man2/lseek.2:217 build/C/man2/open.2:1012
247 #: build/C/man2/open_by_handle_at.2:352 build/C/man3/perror.3:111
248 #: build/C/man2/pipe.2:159 build/C/man3/popen.3:172 build/C/man3/printf.3:825
249 #: build/C/man3/puts.3:103 build/C/man2/read.2:173 build/C/man2/readlink.2:216
250 #: build/C/man2/readv.2:214 build/C/man3/remove.3:75 build/C/man2/rename.2:405
251 #: build/C/man2/rmdir.2:127 build/C/man3/scanf.3:577 build/C/man3/setbuf.3:173
252 #: build/C/man3/stdin.3:113 build/C/man3/stdio.3:246
253 #: build/C/man2/symlink.2:228 build/C/man3/tempnam.3:105
254 #: build/C/man3/tmpfile.3:78 build/C/man3/tmpnam.3:96
255 #: build/C/man2/unlink.2:273 build/C/man3/unlocked_stdio.3:113
256 #: build/C/man3/wprintf.3:211 build/C/man2/write.2:185
257 #, no-wrap
258 msgid "CONFORMING TO"
259 msgstr "準拠"
260
261 #. type: Plain text
262 #: build/C/man3/asprintf.3:67
263 msgid ""
264 "These functions are GNU extensions, not in C or POSIX.  They are also "
265 "available under *BSD.  The FreeBSD implementation sets I<strp> to NULL on "
266 "error."
267 msgstr ""
268 "これらの関数は GNU の拡張であり、C や POSIX のものではない。 これらは *BSD で"
269 "も利用できる。 FreeBSD の実装では、エラーの際には I<strp> を NULL にセットす"
270 "る。"
271
272 #. type: SH
273 #: build/C/man3/asprintf.3:67 build/C/man3/ctermid.3:77
274 #: build/C/man3/dprintf.3:95 build/C/man3/fclose.3:102
275 #: build/C/man3/fcloseall.3:62 build/C/man3/ferror.3:126
276 #: build/C/man3/fflush.3:113 build/C/man3/fgetc.3:133 build/C/man3/fgetwc.3:87
277 #: build/C/man3/flockfile.3:141 build/C/man3/fmemopen.3:341
278 #: build/C/man3/fmtmsg.3:309 build/C/man3/fopen.3:348
279 #: build/C/man3/fopencookie.3:437 build/C/man3/fpurge.3:80
280 #: build/C/man3/fputwc.3:85 build/C/man3/fread.3:105 build/C/man3/fseek.3:171
281 #: build/C/man3/fseeko.3:106 build/C/man3/getline.3:172 build/C/man3/gets.3:90
282 #: build/C/man3/getw.3:87 build/C/man2/link.2:411 build/C/man2/llseek.2:87
283 #: build/C/man2/lseek.2:267 build/C/man3/lseek64.3:161
284 #: build/C/man2/open.2:1494 build/C/man2/open_by_handle_at.2:720
285 #: build/C/man3/perror.3:139 build/C/man2/pipe.2:232 build/C/man3/popen.3:201
286 #: build/C/man3/printf.3:1106 build/C/man3/puts.3:112 build/C/man2/read.2:226
287 #: build/C/man2/readlink.2:328 build/C/man2/readv.2:299
288 #: build/C/man3/remove.3:86 build/C/man2/rename.2:443 build/C/man2/rmdir.2:132
289 #: build/C/man3/scanf.3:738 build/C/man3/setbuf.3:209 build/C/man3/stdin.3:154
290 #: build/C/man3/stdio.3:250 build/C/man3/stdio_ext.3:151
291 #: build/C/man2/symlink.2:260 build/C/man7/symlink.7:512
292 #: build/C/man3/tempnam.3:168 build/C/man3/tmpfile.3:97
293 #: build/C/man3/tmpnam.3:172 build/C/man2/unlink.2:300
294 #: build/C/man3/unlocked_stdio.3:136 build/C/man3/wprintf.3:251
295 #: build/C/man2/write.2:250
296 #, no-wrap
297 msgid "SEE ALSO"
298 msgstr "関連項目"
299
300 #. type: Plain text
301 #: build/C/man3/asprintf.3:71
302 msgid "B<free>(3), B<malloc>(3), B<printf>(3)"
303 msgstr "B<free>(3), B<malloc>(3), B<printf>(3)"
304
305 #. type: SH
306 #: build/C/man3/asprintf.3:71 build/C/man3/ctermid.3:79
307 #: build/C/man3/dprintf.3:97 build/C/man3/fclose.3:108
308 #: build/C/man3/fcloseall.3:68 build/C/man3/ferror.3:131
309 #: build/C/man3/fflush.3:121 build/C/man3/fgetc.3:150 build/C/man3/fgetwc.3:92
310 #: build/C/man3/flockfile.3:143 build/C/man3/fmemopen.3:344
311 #: build/C/man3/fmtmsg.3:312 build/C/man3/fopen.3:354
312 #: build/C/man3/fopencookie.3:442 build/C/man3/fpurge.3:85
313 #: build/C/man3/fputwc.3:89 build/C/man3/fread.3:111 build/C/man3/fseek.3:174
314 #: build/C/man3/fseeko.3:108 build/C/man3/getline.3:178
315 #: build/C/man3/gets.3:108 build/C/man3/getw.3:93 build/C/man2/link.2:420
316 #: build/C/man2/llseek.2:90 build/C/man2/lseek.2:274
317 #: build/C/man3/lseek64.3:164 build/C/man2/open.2:1516
318 #: build/C/man2/open_by_handle_at.2:736 build/C/man3/perror.3:144
319 #: build/C/man2/pipe.2:239 build/C/man3/popen.3:211 build/C/man3/printf.3:1115
320 #: build/C/man3/puts.3:124 build/C/man2/read.2:239 build/C/man2/readlink.2:336
321 #: build/C/man2/readv.2:303 build/C/man3/remove.3:97 build/C/man2/rename.2:451
322 #: build/C/man2/rmdir.2:141 build/C/man3/scanf.3:745 build/C/man3/setbuf.3:217
323 #: build/C/man3/stdin.3:160 build/C/man3/stdio.3:257
324 #: build/C/man3/stdio_ext.3:154 build/C/man2/symlink.2:271
325 #: build/C/man7/symlink.7:530 build/C/man3/tempnam.3:173
326 #: build/C/man3/tmpfile.3:103 build/C/man3/tmpnam.3:177
327 #: build/C/man2/unlink.2:312 build/C/man3/unlocked_stdio.3:139
328 #: build/C/man3/wprintf.3:258 build/C/man2/write.2:262
329 #, no-wrap
330 msgid "COLOPHON"
331 msgstr "この文書について"
332
333 #. type: Plain text
334 #: build/C/man3/asprintf.3:79 build/C/man3/ctermid.3:87
335 #: build/C/man3/dprintf.3:105 build/C/man3/fclose.3:116
336 #: build/C/man3/fcloseall.3:76 build/C/man3/ferror.3:139
337 #: build/C/man3/fflush.3:129 build/C/man3/fgetc.3:158
338 #: build/C/man3/fgetwc.3:100 build/C/man3/flockfile.3:151
339 #: build/C/man3/fmemopen.3:352 build/C/man3/fmtmsg.3:320
340 #: build/C/man3/fopen.3:362 build/C/man3/fopencookie.3:450
341 #: build/C/man3/fpurge.3:93 build/C/man3/fputwc.3:97 build/C/man3/fread.3:119
342 #: build/C/man3/fseek.3:182 build/C/man3/fseeko.3:116
343 #: build/C/man3/getline.3:186 build/C/man3/gets.3:116 build/C/man3/getw.3:101
344 #: build/C/man2/link.2:428 build/C/man2/llseek.2:98 build/C/man2/lseek.2:282
345 #: build/C/man3/lseek64.3:172 build/C/man2/open.2:1524
346 #: build/C/man2/open_by_handle_at.2:744 build/C/man3/perror.3:152
347 #: build/C/man2/pipe.2:247 build/C/man3/popen.3:219 build/C/man3/printf.3:1123
348 #: build/C/man3/puts.3:132 build/C/man2/read.2:247 build/C/man2/readlink.2:344
349 #: build/C/man2/readv.2:311 build/C/man3/remove.3:105
350 #: build/C/man2/rename.2:459 build/C/man2/rmdir.2:149 build/C/man3/scanf.3:753
351 #: build/C/man3/setbuf.3:225 build/C/man3/stdin.3:168 build/C/man3/stdio.3:265
352 #: build/C/man3/stdio_ext.3:162 build/C/man2/symlink.2:279
353 #: build/C/man7/symlink.7:538 build/C/man3/tempnam.3:181
354 #: build/C/man3/tmpfile.3:111 build/C/man3/tmpnam.3:185
355 #: build/C/man2/unlink.2:320 build/C/man3/unlocked_stdio.3:147
356 #: build/C/man3/wprintf.3:266 build/C/man2/write.2:270
357 msgid ""
358 "This page is part of release 3.77 of the Linux I<man-pages> project.  A "
359 "description of the project, information about reporting bugs, and the latest "
360 "version of this page, can be found at \\%http://www.kernel.org/doc/man-"
361 "pages/."
362 msgstr ""
363 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.77 の一部\n"
364 "である。プロジェクトの説明とバグ報告に関する情報は\n"
365 "http://www.kernel.org/doc/man-pages/ に書かれている。"
366
367 #. type: TH
368 #: build/C/man3/ctermid.3:26
369 #, no-wrap
370 msgid "CTERMID"
371 msgstr "CTERMID"
372
373 #. type: TH
374 #: build/C/man3/ctermid.3:26
375 #, no-wrap
376 msgid "2013-07-04"
377 msgstr "2013-07-04"
378
379 #. type: Plain text
380 #: build/C/man3/ctermid.3:29
381 msgid "ctermid - get controlling terminal name"
382 msgstr "ctermid - 制御端末名の取得"
383
384 #. type: Plain text
385 #: build/C/man3/ctermid.3:34 build/C/man3/fgetc.3:33 build/C/man3/fgetwc.3:24
386 #: build/C/man3/flockfile.3:31 build/C/man3/fmemopen.3:16
387 #: build/C/man3/fopen.3:50 build/C/man3/fputwc.3:22 build/C/man3/fread.3:51
388 #: build/C/man3/fseeko.3:31 build/C/man3/getline.3:32 build/C/man3/gets.3:35
389 #: build/C/man3/getw.3:31 build/C/man3/popen.3:46 build/C/man3/puts.3:32
390 #: build/C/man2/rename.2:39 build/C/man3/scanf.3:58 build/C/man3/setbuf.3:54
391 #: build/C/man3/stdin.3:19 build/C/man3/tempnam.3:31 build/C/man3/tmpfile.3:37
392 #: build/C/man3/tmpnam.3:33 build/C/man3/unlocked_stdio.3:32
393 #, no-wrap
394 msgid "B<#include E<lt>stdio.hE<gt>>\n"
395 msgstr "B<#include E<lt>stdio.hE<gt>>\n"
396
397 #. type: Plain text
398 #: build/C/man3/ctermid.3:36
399 #, no-wrap
400 msgid "B<char *ctermid(char *>I<s>B<);>\n"
401 msgstr "B<char *ctermid(char *>I<s>B<);>\n"
402
403 #. type: Plain text
404 #: build/C/man3/ctermid.3:41 build/C/man3/dprintf.3:39
405 #: build/C/man3/ferror.3:61 build/C/man3/flockfile.3:42
406 #: build/C/man3/fmemopen.3:29 build/C/man3/fopen.3:61 build/C/man3/fseeko.3:41
407 #: build/C/man3/getline.3:42 build/C/man3/getw.3:40 build/C/man2/link.2:51
408 #: build/C/man2/open.2:73 build/C/man3/perror.3:50 build/C/man3/popen.3:55
409 #: build/C/man3/printf.3:63 build/C/man2/readlink.2:64 build/C/man2/readv.2:53
410 #: build/C/man2/rename.2:56 build/C/man3/scanf.3:73 build/C/man3/setbuf.3:68
411 #: build/C/man2/symlink.2:52 build/C/man3/tempnam.3:38
412 #: build/C/man2/unlink.2:51 build/C/man3/unlocked_stdio.3:68
413 #: build/C/man3/wprintf.3:39
414 msgid ""
415 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
416 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7)  参照):"
417
418 #.  From <unistd.h>: _XOPEN_SOURCE
419 #. type: Plain text
420 #: build/C/man3/ctermid.3:46
421 msgid ""
422 "B<ctermid>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
423 msgstr ""
424 "B<ctermid>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
425
426 #. type: Plain text
427 #: build/C/man3/ctermid.3:59
428 msgid ""
429 "B<ctermid>()  returns a string which is the pathname for the current "
430 "controlling terminal for this process.  If I<s> is NULL, a static buffer is "
431 "used, otherwise I<s> points to a buffer used to hold the terminal pathname.  "
432 "The symbolic constant B<L_ctermid> is the maximum number of characters in "
433 "the returned pathname."
434 msgstr ""
435 "B<ctermid>()  はプロセスの現在の制御端末のパス名を返す。 I<s> が NULL の場"
436 "合、静的なバッファを用いる。それ以外の場合、 I<s> は端末パス名を保持するのに"
437 "使用されるバッファへのポインタとなる。 シンボル定数 B<L_ctermid> は返されるパ"
438 "ス名の最大文字数である。"
439
440 #. type: Plain text
441 #: build/C/man3/ctermid.3:61
442 msgid "The pointer to the pathname."
443 msgstr "パス名へのポインタ。"
444
445 #. type: SH
446 #: build/C/man3/ctermid.3:61 build/C/man3/fcloseall.3:55
447 #: build/C/man3/ferror.3:106 build/C/man3/fflush.3:93
448 #: build/C/man3/flockfile.3:127 build/C/man3/fmtmsg.3:225
449 #: build/C/man3/lseek64.3:156 build/C/man3/remove.3:70
450 #: build/C/man3/setbuf.3:164 build/C/man3/stdio_ext.3:132
451 #: build/C/man3/tmpnam.3:86
452 #, no-wrap
453 msgid "ATTRIBUTES"
454 msgstr "属性"
455
456 #. type: SS
457 #: build/C/man3/ctermid.3:62 build/C/man3/fcloseall.3:56
458 #: build/C/man3/ferror.3:107 build/C/man3/fflush.3:94
459 #: build/C/man3/flockfile.3:128 build/C/man3/fmtmsg.3:226
460 #: build/C/man3/lseek64.3:157 build/C/man3/remove.3:71
461 #: build/C/man3/setbuf.3:165 build/C/man3/stdio_ext.3:133
462 #: build/C/man3/tmpnam.3:87
463 #, no-wrap
464 msgid "Multithreading (see pthreads(7))"
465 msgstr "マルチスレッディング (pthreads(7) 参照)"
466
467 #. type: Plain text
468 #: build/C/man3/ctermid.3:67
469 msgid ""
470 "The B<ctermid>()  function is thread-safe with exceptions.  It is not thread-"
471 "safe if called with a NULL parameter."
472 msgstr ""
473 "B<ctermid>() 関数は例外付きでスレッドセーフである。 NULL パラメータで呼び出さ"
474 "れた場合はスレッドセーフではない。"
475
476 #. type: Plain text
477 #: build/C/man3/ctermid.3:69
478 msgid "Svr4, POSIX.1-2001."
479 msgstr "SVr4, POSIX.1-2001."
480
481 #. type: SH
482 #: build/C/man3/ctermid.3:69 build/C/man3/fmemopen.3:213
483 #: build/C/man3/fopen.3:331 build/C/man3/gets.3:72 build/C/man3/getw.3:83
484 #: build/C/man2/link.2:405 build/C/man2/open.2:1475 build/C/man3/popen.3:178
485 #: build/C/man3/printf.3:951 build/C/man3/puts.3:105 build/C/man2/read.2:187
486 #: build/C/man2/readv.2:273 build/C/man3/remove.3:83 build/C/man2/rename.2:432
487 #: build/C/man2/rmdir.2:129 build/C/man3/scanf.3:669 build/C/man3/setbuf.3:179
488 #: build/C/man3/tempnam.3:165 build/C/man3/tmpnam.3:165
489 #: build/C/man2/unlink.2:297 build/C/man2/write.2:211
490 #, no-wrap
491 msgid "BUGS"
492 msgstr "バグ"
493
494 #. type: Plain text
495 #: build/C/man3/ctermid.3:73
496 msgid ""
497 "The path returned may not uniquely identify the controlling terminal; it "
498 "may, for example, be I</dev/tty>."
499 msgstr ""
500 "返されたパスはたぶん制御端末を一意には特定できない。 たとえば I</dev/tty> の"
501 "ように。"
502
503 #.  in glibc 2.3.x, x >= 4, the glibc headers threw an error
504 #.  if ctermid() was given an argument; fixed in 2.4.
505 #. type: Plain text
506 #: build/C/man3/ctermid.3:77
507 msgid "It is not assured that the program can open the terminal."
508 msgstr "プログラムが端末をオープンできることは保証されていない。"
509
510 #. type: Plain text
511 #: build/C/man3/ctermid.3:79
512 msgid "B<ttyname>(3)"
513 msgstr "B<ttyname>(3)"
514
515 #. type: TH
516 #: build/C/man3/dprintf.3:26
517 #, no-wrap
518 msgid "DPRINTF"
519 msgstr "DPRINTF"
520
521 #. type: TH
522 #: build/C/man3/dprintf.3:26
523 #, no-wrap
524 msgid "2010-09-15"
525 msgstr "2010-09-15"
526
527 #. type: Plain text
528 #: build/C/man3/dprintf.3:29
529 msgid "dprintf, vdprintf - print to a file descriptor"
530 msgstr "dprintf, vdprintf - ファイルディスクリプタに文字出力する"
531
532 #. type: Plain text
533 #: build/C/man3/dprintf.3:33
534 msgid "B<int dprintf(int >I<fd>B<, const char *>I<format>B<, ...);>"
535 msgstr "B<int dprintf(int >I<fd>B<, const char *>I<format>B<, ...);>"
536
537 #. type: Plain text
538 #: build/C/man3/dprintf.3:35
539 msgid ""
540 "B<int vdprintf(int >I<fd>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
541 msgstr ""
542 "B<int vdprintf(int >I<fd>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
543
544 #. type: Plain text
545 #: build/C/man3/dprintf.3:43
546 msgid "B<dprintf>(), B<vdprintf>():"
547 msgstr "B<dprintf>(), B<vdprintf>():"
548
549 #. type: TP
550 #: build/C/man3/dprintf.3:46 build/C/man3/fmemopen.3:37
551 #: build/C/man3/getline.3:49 build/C/man2/link.2:57 build/C/man2/open.2:79
552 #: build/C/man2/readlink.2:77 build/C/man2/rename.2:62
553 #: build/C/man2/symlink.2:65 build/C/man2/unlink.2:57
554 #, no-wrap
555 msgid "Since glibc 2.10:"
556 msgstr "glibc 2.10 以降:"
557
558 #. type: Plain text
559 #: build/C/man3/dprintf.3:49 build/C/man3/fmemopen.3:40 build/C/man2/link.2:60
560 #: build/C/man2/open.2:82 build/C/man2/readlink.2:80 build/C/man2/rename.2:65
561 #: build/C/man2/symlink.2:68 build/C/man2/unlink.2:60
562 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
563 msgstr "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
564
565 #. type: TP
566 #: build/C/man3/dprintf.3:49 build/C/man3/fmemopen.3:40
567 #: build/C/man3/getline.3:52 build/C/man2/link.2:60 build/C/man2/open.2:82
568 #: build/C/man2/readlink.2:80 build/C/man2/rename.2:65
569 #: build/C/man2/symlink.2:68 build/C/man2/unlink.2:60
570 #, no-wrap
571 msgid "Before glibc 2.10:"
572 msgstr "glibc 2.10 より前:"
573
574 #. type: Plain text
575 #: build/C/man3/dprintf.3:52 build/C/man3/fmemopen.3:43
576 #: build/C/man3/getline.3:55 build/C/man3/unlocked_stdio.3:104
577 msgid "_GNU_SOURCE"
578 msgstr "_GNU_SOURCE"
579
580 #. type: Plain text
581 #: build/C/man3/dprintf.3:69
582 msgid ""
583 "The functions B<dprintf>()  and B<vdprintf>()  (as found in the glibc2 "
584 "library) are exact analogs of B<fprintf>(3)  and B<vfprintf>(3), except that "
585 "they output to a file descriptor I<fd> instead of to a I<stdio> stream."
586 msgstr ""
587 "(glibc2 ライブラリにおける)  B<dprintf>()  関数と B<vdprintf>()  関数とは、そ"
588 "れぞれ B<fprintf>(3)  関数と B<vfprintf>(3)  関数とにちょうど対応するが、 こ"
589 "れらは I<stdio> ストリームではなくファイルディスクリプタ I<fd> に対して出力を"
590 "行う。"
591
592 #.  .SH NOTES
593 #.  These functions are GNU extensions, not in C or POSIX.
594 #.  Clearly, the names were badly chosen.
595 #.  Many systems (like MacOS) have incompatible functions called
596 #.  .BR dprintf (),
597 #.  usually some debugging version of
598 #.  .BR printf (3),
599 #.  perhaps with a prototype like
600 #.  .BI "void dprintf(int level, const char *" format ", ...);"
601 #.  where the first argument is a debugging level (and output is to
602 #.  .IR stderr ).
603 #.  Moreover,
604 #.  .BR dprintf ()
605 #.  (or
606 #.  .BR DPRINTF )
607 #.  is also a popular macro name for a debugging printf.
608 #.  So, probably, it is better to avoid this function in programs
609 #.  intended to be portable.
610 #.  A better name would have been
611 #.  .BR fdprintf ().
612 #. type: Plain text
613 #: build/C/man3/dprintf.3:95
614 msgid ""
615 "These functions are GNU extensions that are nowadays specified in "
616 "POSIX.1-2008."
617 msgstr ""
618 "これらの関数は GNU による拡張であり、 現在では POSIX.1-2008 で規定されてい"
619 "る。"
620
621 #. type: Plain text
622 #: build/C/man3/dprintf.3:97
623 msgid "B<printf>(3)"
624 msgstr "B<printf>(3)"
625
626 #. type: TH
627 #: build/C/man3/fclose.3:44
628 #, no-wrap
629 msgid "FCLOSE"
630 msgstr "FCLOSE"
631
632 #. type: TH
633 #: build/C/man3/fclose.3:44
634 #, no-wrap
635 msgid "2009-02-23"
636 msgstr "2009-02-23"
637
638 #. type: Plain text
639 #: build/C/man3/fclose.3:47
640 msgid "fclose - close a stream"
641 msgstr "fclose - ストリームを閉じる"
642
643 #. type: Plain text
644 #: build/C/man3/fclose.3:51
645 msgid "B<int fclose(FILE *>I<fp>B<);>"
646 msgstr "B<int fclose(FILE *>I<fp>B<);>"
647
648 #. type: Plain text
649 #: build/C/man3/fclose.3:59
650 msgid ""
651 "The B<fclose>()  function flushes the stream pointed to by I<fp> (writing "
652 "any buffered output data using B<fflush>(3))  and closes the underlying file "
653 "descriptor."
654 msgstr ""
655 "B<fclose>() 関数は、 I<fp> が指すストリームを (バッファリングされて\n"
656 "いた全ての出力データを B<fflush>(3) を用いて書き込んで) フラッシュし、\n"
657 "対応するファイルディスクリプタをクローズする。"
658
659 #. type: Plain text
660 #: build/C/man3/fclose.3:70
661 msgid ""
662 "Upon successful completion 0 is returned.  Otherwise, B<EOF> is returned and "
663 "I<errno> is set to indicate the error.  In either case any further access "
664 "(including another call to B<fclose>())  to the stream results in undefined "
665 "behavior."
666 msgstr ""
667 "関数が正常に終了すると 0 が返される。 正常に終了しなかった場合には B<EOF> が"
668 "返され、 I<errno> がエラーを示すために設定される。 どちらの場合も、そのスト"
669 "リームに対する (B<fclose>()  へのさらなる呼び出しを含む) それ以上のアクセス"
670 "は 未定義の動作を生じさせる。"
671
672 #. type: SH
673 #: build/C/man3/fclose.3:70 build/C/man3/ferror.3:96 build/C/man3/fflush.3:81
674 #: build/C/man3/fgetwc.3:64 build/C/man3/flockfile.3:125
675 #: build/C/man3/fopen.3:201 build/C/man3/fpurge.3:65 build/C/man3/fputwc.3:63
676 #: build/C/man3/fseek.3:136 build/C/man3/fseeko.3:97
677 #: build/C/man3/getline.3:127 build/C/man2/link.2:192 build/C/man2/llseek.2:69
678 #: build/C/man2/lseek.2:187 build/C/man2/open.2:783
679 #: build/C/man2/open_by_handle_at.2:256 build/C/man2/pipe.2:138
680 #: build/C/man3/popen.3:146 build/C/man2/read.2:95 build/C/man2/readlink.2:159
681 #: build/C/man2/readv.2:188 build/C/man3/remove.3:65 build/C/man2/rename.2:208
682 #: build/C/man2/rmdir.2:45 build/C/man3/scanf.3:547 build/C/man2/symlink.2:145
683 #: build/C/man3/tempnam.3:101 build/C/man3/tmpfile.3:56
684 #: build/C/man3/tmpnam.3:84 build/C/man2/unlink.2:158 build/C/man2/write.2:107
685 #, no-wrap
686 msgid "ERRORS"
687 msgstr "エラー"
688
689 #. type: TP
690 #: build/C/man3/fclose.3:71 build/C/man3/fflush.3:82 build/C/man3/fpurge.3:66
691 #: build/C/man3/fseek.3:137 build/C/man2/link.2:276 build/C/man2/llseek.2:70
692 #: build/C/man2/lseek.2:188 build/C/man2/open.2:998
693 #: build/C/man2/open_by_handle_at.2:317 build/C/man2/read.2:114
694 #: build/C/man2/readlink.2:202 build/C/man2/rename.2:349
695 #: build/C/man3/scanf.3:553 build/C/man2/symlink.2:208
696 #: build/C/man2/unlink.2:248 build/C/man2/write.2:126
697 #, no-wrap
698 msgid "B<EBADF>"
699 msgstr "B<EBADF>"
700
701 #.   This error cannot occur unless you are mixing ANSI C stdio operations and
702 #.   low-level file operations on the same stream. If you do get this error,
703 #.   you must have closed the stream's low-level file descriptor using
704 #.   something like close(fileno(fp)).
705 #. type: Plain text
706 #: build/C/man3/fclose.3:80
707 msgid "The file descriptor underlying I<fp> is not valid."
708 msgstr "I<fp> の基となるファイルディスクリプタが不正である。"
709
710 #. type: Plain text
711 #: build/C/man3/fclose.3:90
712 msgid ""
713 "The B<fclose>()  function may also fail and set I<errno> for any of the "
714 "errors specified for the routines B<close>(2), B<write>(2)  or B<fflush>(3)."
715 msgstr ""
716 "B<fclose>()  関数はこれ以外にも B<close>(2), B<write>(2), B<fflush>(3)  の"
717 "ルーチンで失敗することがある。その場合は I<errno> が、失敗したルーチンで設定"
718 "された値に設定される。"
719
720 #. type: Plain text
721 #: build/C/man3/fclose.3:92 build/C/man3/fseek.3:171 build/C/man3/puts.3:105
722 msgid "C89, C99."
723 msgstr "C89, C99."
724
725 #. type: SH
726 #: build/C/man3/fclose.3:92 build/C/man3/fflush.3:104 build/C/man3/fgetwc.3:72
727 #: build/C/man3/fmemopen.3:207 build/C/man3/fmtmsg.3:252
728 #: build/C/man3/fopen.3:255 build/C/man3/fpurge.3:78 build/C/man3/fputwc.3:70
729 #: build/C/man3/fseeko.3:104 build/C/man2/link.2:347 build/C/man2/llseek.2:84
730 #: build/C/man2/lseek.2:227 build/C/man2/open.2:1056
731 #: build/C/man2/open_by_handle_at.2:359 build/C/man3/perror.3:124
732 #: build/C/man3/printf.3:889 build/C/man2/read.2:175
733 #: build/C/man2/readlink.2:225 build/C/man2/readv.2:226
734 #: build/C/man2/rename.2:414 build/C/man3/scanf.3:608 build/C/man3/stdin.3:122
735 #: build/C/man2/symlink.2:238 build/C/man3/tempnam.3:110
736 #: build/C/man3/tmpfile.3:80 build/C/man3/tmpnam.3:101
737 #: build/C/man2/unlink.2:281 build/C/man3/wprintf.3:213
738 #: build/C/man2/write.2:194
739 #, no-wrap
740 msgid "NOTES"
741 msgstr "注意"
742
743 #. type: Plain text
744 #: build/C/man3/fclose.3:102
745 msgid ""
746 "Note that B<fclose>()  only flushes the user-space buffers provided by the C "
747 "library.  To ensure that the data is physically stored on disk the kernel "
748 "buffers must be flushed too, for example, with B<sync>(2)  or B<fsync>(2)."
749 msgstr ""
750 "B<fclose>()  は C ライブラリで提供されたユーザー空間バッファをフラッシュする"
751 "だけで ある点に注意すること。 データを確実に物理的にディスクに記録するために"
752 "は カーネルバッファも (B<sync>(2)  や B<fsync>(2)  を用いて) フラッシュしなけ"
753 "ればならない。"
754
755 #. type: Plain text
756 #: build/C/man3/fclose.3:108
757 msgid "B<close>(2), B<fcloseall>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
758 msgstr "B<close>(2), B<fcloseall>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
759
760 #. type: TH
761 #: build/C/man3/fcloseall.3:25
762 #, no-wrap
763 msgid "FCLOSEALL"
764 msgstr "FCLOSEALL"
765
766 #. type: Plain text
767 #: build/C/man3/fcloseall.3:28
768 msgid "fcloseall - close all open streams"
769 msgstr "fcloseall - 開いているすべてのストリームを閉じる"
770
771 #. type: Plain text
772 #: build/C/man3/fcloseall.3:32 build/C/man3/fopencookie.3:33
773 #, no-wrap
774 msgid ""
775 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
776 "B<#include E<lt>stdio.hE<gt>>\n"
777 msgstr ""
778 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
779 "B<#include E<lt>stdio.hE<gt>>\n"
780
781 #. type: Plain text
782 #: build/C/man3/fcloseall.3:34
783 #, no-wrap
784 msgid "B<int fcloseall(void);>\n"
785 msgstr "B<int fcloseall(void);>\n"
786
787 #. type: Plain text
788 #: build/C/man3/fcloseall.3:43
789 msgid ""
790 "The B<fcloseall>()  function closes all of the calling process's open "
791 "streams.  Buffered output for each stream is written before it is closed (as "
792 "for B<fflush>(3)); buffered input is discarded."
793 msgstr ""
794 "B<fcloseall>()  関数は、呼び出し元プロセスが開いているすべてのストリームを閉"
795 "じる。 ストリームを閉じる前に、 (B<fflush>(3)  と同じように) 各ストリームの"
796 "バッファに溜っている出力データは書き出される。 入力バッファ内のデータは破棄さ"
797 "れる。"
798
799 #. type: Plain text
800 #: build/C/man3/fcloseall.3:50
801 msgid ""
802 "The standard streams, I<stdin>, I<stdout>, and I<stderr> are also closed."
803 msgstr "標準入出力 I<stdin>, I<stdout>, I<stderr> も閉じられる。"
804
805 #. type: Plain text
806 #: build/C/man3/fcloseall.3:55
807 msgid ""
808 "This function returns 0 if all files were successfully closed; on error, "
809 "B<EOF> is returned."
810 msgstr ""
811 "この関数は、すべてのファイルが正常に閉じられた場合 0 を返す。 エラーの場合、 "
812 "B<EOF> を返す。"
813
814 #. type: Plain text
815 #: build/C/man3/fcloseall.3:60
816 msgid ""
817 "The B<fcloseall>()  function does not lock the streams, so it is not thread-"
818 "safe."
819 msgstr ""
820 "B<fcloseall>() 関数はストリームのロックを行わない。そのため、スレッドセーフで"
821 "はない。"
822
823 #. type: Plain text
824 #: build/C/man3/fcloseall.3:62
825 msgid "This function is a GNU extension."
826 msgstr "この関数は GNU 拡張である。"
827
828 #. type: Plain text
829 #: build/C/man3/fcloseall.3:68
830 msgid "B<close>(2), B<fclose>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
831 msgstr "B<close>(2), B<fclose>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
832
833 #. type: TH
834 #: build/C/man3/ferror.3:44
835 #, no-wrap
836 msgid "FERROR"
837 msgstr "FERROR"
838
839 #. type: TH
840 #: build/C/man3/ferror.3:44
841 #, no-wrap
842 msgid "2014-01-15"
843 msgstr "2014-01-15"
844
845 #. type: Plain text
846 #: build/C/man3/ferror.3:47
847 msgid "clearerr, feof, ferror, fileno - check and reset stream status"
848 msgstr ""
849 "clearerr, feof, ferror, fileno - ストリームステータスのチェックとリセット"
850
851 #. type: Plain text
852 #: build/C/man3/ferror.3:51
853 msgid "B<void clearerr(FILE *>I<stream>B<);>"
854 msgstr "B<void clearerr(FILE *>I<stream>B<);>"
855
856 #. type: Plain text
857 #: build/C/man3/ferror.3:53
858 msgid "B<int feof(FILE *>I<stream>B<);>"
859 msgstr "B<int feof(FILE *>I<stream>B<);>"
860
861 #. type: Plain text
862 #: build/C/man3/ferror.3:55
863 msgid "B<int ferror(FILE *>I<stream>B<);>"
864 msgstr "B<int ferror(FILE *>I<stream>B<);>"
865
866 #. type: Plain text
867 #: build/C/man3/ferror.3:57
868 msgid "B<int fileno(FILE *>I<stream>B<);>"
869 msgstr "B<int fileno(FILE *>I<stream>B<);>"
870
871 #. type: Plain text
872 #: build/C/man3/ferror.3:65
873 msgid ""
874 "B<fileno>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
875 msgstr ""
876 "B<fileno>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
877
878 #. type: Plain text
879 #: build/C/man3/ferror.3:70
880 msgid ""
881 "The function B<clearerr>()  clears the end-of-file and error indicators for "
882 "the stream pointed to by I<stream>."
883 msgstr ""
884 "関数 B<clearerr>()  は I<stream> で示されるストリームの EOF(end-of-file) 指示"
885 "子とエラー指示子をクリアする。"
886
887 #. type: Plain text
888 #: build/C/man3/ferror.3:78
889 msgid ""
890 "The function B<feof>()  tests the end-of-file indicator for the stream "
891 "pointed to by I<stream>, returning nonzero if it is set.  The end-of-file "
892 "indicator can be cleared only by the function B<clearerr>()."
893 msgstr ""
894 "関数 B<feof>()  は I<stream> で示されるストリームの EOF 指示子をテストし、 "
895 "セットされていれば 0 以外の数を返す。 EOF 指示子は、関数 B<clearerr>()  に"
896 "よってのみクリアすることができる。"
897
898 #. type: Plain text
899 #: build/C/man3/ferror.3:87
900 msgid ""
901 "The function B<ferror>()  tests the error indicator for the stream pointed "
902 "to by I<stream>, returning nonzero if it is set.  The error indicator can be "
903 "reset only by the B<clearerr>()  function."
904 msgstr ""
905 "関数 B<ferror>()  は I<stream> で示されるストリームのエラー指示子をテスト"
906 "し、 セットされていれば 0 以外の数を返す。 エラー指示子は、関数 "
907 "B<clearerr>()  によってのみリセットすることができる。"
908
909 #. type: Plain text
910 #: build/C/man3/ferror.3:93
911 msgid ""
912 "The function B<fileno>()  examines the argument I<stream> and returns its "
913 "integer descriptor."
914 msgstr ""
915 "関数 B<fileno>()  は、引数 I<stream> を調べ、その整数のディスクリプタを返す。"
916
917 #. type: Plain text
918 #: build/C/man3/ferror.3:96 build/C/man3/fgetc.3:99 build/C/man3/fgetwc.3:55
919 #: build/C/man3/fputwc.3:54 build/C/man3/fread.3:83 build/C/man3/puts.3:84
920 msgid "For nonlocking counterparts, see B<unlocked_stdio>(3)."
921 msgstr ""
922 "これらの処理を停止せずに行いたいときは、 B<unlocked_stdio>(3)  を参照のこと。"
923
924 #. type: Plain text
925 #: build/C/man3/ferror.3:106
926 msgid ""
927 "These functions should not fail and do not set the external variable "
928 "I<errno>.  (However, in case B<fileno>()  detects that its argument is not a "
929 "valid stream, it must return -1 and set I<errno> to B<EBADF>.)"
930 msgstr ""
931 "これらの関数は失敗すべきではなく、また、外部変数 I<errno> に値をセットしな"
932 "い。 (しかし、 B<fileno>()  関数の場合で、引数が有効なストリームでなかった場"
933 "合、 関数は -1 を返し、 I<errno> に B<EBADF> を設定しなければならない。)"
934
935 #. type: Plain text
936 #: build/C/man3/ferror.3:115
937 msgid ""
938 "The B<clearerr>(), B<feof>(), B<ferror>(), and B<fileno>()  functions are "
939 "thread-safe."
940 msgstr ""
941 "関数 B<clearerr>(), B<feof>(), B<ferror>(), B<fileno>() はスレッドセーフであ"
942 "る。"
943
944 #. type: Plain text
945 #: build/C/man3/ferror.3:122
946 msgid ""
947 "The functions B<clearerr>(), B<feof>(), and B<ferror>()  conform to C89, "
948 "C99, POSIX.1-2001, and POSIX.1-2008."
949 msgstr ""
950 "関数 B<clearerr>(), B<feof>(), B<ferror>()  は C89, C99, POSIX.1-2001, "
951 "POSIX.1-2008 に準拠している。"
952
953 #. type: Plain text
954 #: build/C/man3/ferror.3:126
955 msgid "The function B<fileno>()  conforms to POSIX.1-2001 and POSIX.1-2008."
956 msgstr "関数 B<fileno>() は POSIX.1-2001 と POSIX.1-2008 に準拠している。"
957
958 #. type: Plain text
959 #: build/C/man3/ferror.3:131
960 msgid "B<open>(2), B<fdopen>(3), B<stdio>(3), B<unlocked_stdio>(3)"
961 msgstr "B<open>(2), B<fdopen>(3), B<stdio>(3), B<unlocked_stdio>(3)"
962
963 #. type: TH
964 #: build/C/man3/fflush.3:45
965 #, no-wrap
966 msgid "FFLUSH"
967 msgstr "FFLUSH"
968
969 #. type: TH
970 #: build/C/man3/fflush.3:45
971 #, no-wrap
972 msgid "2013-07-15"
973 msgstr "2013-07-15"
974
975 #. type: Plain text
976 #: build/C/man3/fflush.3:48
977 msgid "fflush - flush a stream"
978 msgstr "fflush - ストリームの内容を強制的に出力(フラッシュ)する"
979
980 #. type: Plain text
981 #: build/C/man3/fflush.3:52
982 msgid "B<int fflush(FILE *>I<stream>B<);>"
983 msgstr "B<int fflush(FILE *>I<stream>B<);>"
984
985 #. type: Plain text
986 #: build/C/man3/fflush.3:63
987 msgid ""
988 "For output streams, B<fflush>()  forces a write of all user-space buffered "
989 "data for the given output or update I<stream> via the stream's underlying "
990 "write function.  For input streams, B<fflush>()  discards any buffered data "
991 "that has been fetched from the underlying file, but has not been consumed by "
992 "the application.  The open status of the stream is unaffected."
993 msgstr ""
994 "出力ストリームに関しては、 B<fflush>()  は、ユーザー空間でバッファリングされ"
995 "ているすべてのデータを 指定された出力に書き出す (フラッシュする)、 もしくはス"
996 "トリーム I<stream> の下位にある書き込み関数を用いてこのストリームを更新す"
997 "る。 入力ストリームに関しては、 B<fflush>()  は、対応するファイルから取得され"
998 "たが、アプリケーションからは 読み出されていないバッファデータを全て破棄す"
999 "る。 ストリームは開いた状態のままであり、 この関数によって何の影響も受けな"
1000 "い。"
1001
1002 #. type: Plain text
1003 #: build/C/man3/fflush.3:71
1004 msgid ""
1005 "If the I<stream> argument is NULL, B<fflush>()  flushes I<all> open output "
1006 "streams."
1007 msgstr ""
1008 "I<stream> 引数が NULL ならば、 B<fflush>()  は開いているI<すべての>出力スト"
1009 "リームをフラッシュする。"
1010
1011 #. type: Plain text
1012 #: build/C/man3/fflush.3:74
1013 msgid "For a nonlocking counterpart, see B<unlocked_stdio>(3)."
1014 msgstr ""
1015 "これらの処理をロックせずに行いたいときは、 B<unlocked_stdio>(3)  を参照のこ"
1016 "と。"
1017
1018 #. type: Plain text
1019 #: build/C/man3/fflush.3:81
1020 msgid ""
1021 "Upon successful completion 0 is returned.  Otherwise, B<EOF> is returned and "
1022 "I<errno> is set to indicate the error."
1023 msgstr ""
1024 "成功すると 0 が返される。 その他の場合には B<EOF> が返され、 I<errno> が、エ"
1025 "ラーに対応した値に設定される。"
1026
1027 #. type: Plain text
1028 #: build/C/man3/fflush.3:86
1029 msgid "I<Stream> is not an open stream, or is not open for writing."
1030 msgstr ""
1031 "I<Stream> は開いているストリームではない。 あるいはストリームは書き込み用では"
1032 "ない。"
1033
1034 #. type: Plain text
1035 #: build/C/man3/fflush.3:93
1036 msgid ""
1037 "The function B<fflush>()  may also fail and set I<errno> for any of the "
1038 "errors specified for B<write>(2)."
1039 msgstr ""
1040 "B<fflush>()  関数は B<write>(2)  に関して規定されているエラーで失敗することも"
1041 "ある。 この場合 I<errno> もその値に設定される。"
1042
1043 #. type: Plain text
1044 #: build/C/man3/fflush.3:98
1045 msgid "The B<fflush>()  function is thread-safe."
1046 msgstr "関数 B<fflush>() はスレッドセーフである。"
1047
1048 #. type: Plain text
1049 #: build/C/man3/fflush.3:100
1050 msgid "C89, C99, POSIX.1-2001, POSIX.1-2008."
1051 msgstr "C89, C99, POSIX.1-2001, POSIX.1-2008."
1052
1053 #.  Verified on: Solaris 8.
1054 #. type: Plain text
1055 #: build/C/man3/fflush.3:104
1056 msgid ""
1057 "The standards do not specify the behavior for input streams.  Most other "
1058 "implementations behave the same as Linux."
1059 msgstr ""
1060 "標準では、入力ストリームに対する動作は規定されていない。 他のほとんどの実装"
1061 "は Linux と同じ動作をする。"
1062
1063 #. type: Plain text
1064 #: build/C/man3/fflush.3:113
1065 msgid ""
1066 "Note that B<fflush>()  only flushes the user-space buffers provided by the C "
1067 "library.  To ensure that the data is physically stored on disk the kernel "
1068 "buffers must be flushed too, for example, with B<sync>(2)  or B<fsync>(2)."
1069 msgstr ""
1070 "B<fflush>()  は、 C ライブラリが与えているユーザー空間のバッファしかフラッ"
1071 "シュしない。 データが物理的にディスクに保存されることを保証したければ、 カー"
1072 "ネルバッファもフラッシュしなければならない。 これには例えば B<sync>(2)  や "
1073 "B<fsync>(2)  を用いる。"
1074
1075 #. type: Plain text
1076 #: build/C/man3/fflush.3:121
1077 msgid ""
1078 "B<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), "
1079 "B<setbuf>(3), B<unlocked_stdio>(3)"
1080 msgstr ""
1081 "B<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), "
1082 "B<setbuf>(3), B<unlocked_stdio>(3)"
1083
1084 #. type: TH
1085 #: build/C/man3/fgetc.3:27
1086 #, no-wrap
1087 msgid "FGETC"
1088 msgstr "FGETC"
1089
1090 #. type: TH
1091 #: build/C/man3/fgetc.3:27
1092 #, no-wrap
1093 msgid "2013-12-31"
1094 msgstr "2013-12-31"
1095
1096 #. type: Plain text
1097 #: build/C/man3/fgetc.3:30
1098 msgid "fgetc, fgets, getc, getchar, ungetc - input of characters and strings"
1099 msgstr "fgetc, fgets, getc, getchar, ungetc - 文字と文字列の入力"
1100
1101 #. type: Plain text
1102 #: build/C/man3/fgetc.3:35
1103 #, no-wrap
1104 msgid "B<int fgetc(FILE *>I<stream>B<);>\n"
1105 msgstr "B<int fgetc(FILE *>I<stream>B<);>\n"
1106
1107 #. type: Plain text
1108 #: build/C/man3/fgetc.3:37
1109 #, no-wrap
1110 msgid "B<char *fgets(char *>I<s>B<, int >I<size>B<, FILE *>I<stream>B<);>\n"
1111 msgstr "B<char *fgets(char *>I<s>B<, int >I<size>B<, FILE *>I<stream>B<);>\n"
1112
1113 #. type: Plain text
1114 #: build/C/man3/fgetc.3:39
1115 #, no-wrap
1116 msgid "B<int getc(FILE *>I<stream>B<);>\n"
1117 msgstr "B<int getc(FILE *>I<stream>B<);>\n"
1118
1119 #. type: Plain text
1120 #: build/C/man3/fgetc.3:41
1121 #, no-wrap
1122 msgid "B<int getchar(void);>\n"
1123 msgstr "B<int getchar(void);>\n"
1124
1125 #. type: Plain text
1126 #: build/C/man3/fgetc.3:43
1127 #, no-wrap
1128 msgid "B<int ungetc(int >I<c>B<, FILE *>I<stream>B<);>\n"
1129 msgstr "B<int ungetc(int >I<c>B<, FILE *>I<stream>B<);>\n"
1130
1131 #. type: Plain text
1132 #: build/C/man3/fgetc.3:55
1133 msgid ""
1134 "B<fgetc>()  reads the next character from I<stream> and returns it as an "
1135 "I<unsigned char> cast to an I<int>, or B<EOF> on end of file or error."
1136 msgstr ""
1137 "B<fgetc>()  は、 I<stream> から次の文字を I<unsigned char> として読み、 "
1138 "I<int> にキャストして返す。ファイルの終わりやエラーとなった場合は B<EOF> を返"
1139 "す。"
1140
1141 #. type: Plain text
1142 #: build/C/man3/fgetc.3:62
1143 msgid ""
1144 "B<getc>()  is equivalent to B<fgetc>()  except that it may be implemented as "
1145 "a macro which evaluates I<stream> more than once."
1146 msgstr ""
1147 "B<getc>()  は B<fgetc>()  と同様だが、 I<stream> を複数回評価するマクロとして"
1148 "実装されているかもしれない。"
1149
1150 #. type: Plain text
1151 #: build/C/man3/fgetc.3:66
1152 msgid "B<getchar>()  is equivalent to B<getc(>I<stdin>B<)>."
1153 msgstr "B<getchar>()  は B<getc(>I<stdin>B<)> と同じである。"
1154
1155 #. type: Plain text
1156 #: build/C/man3/fgetc.3:80
1157 msgid ""
1158 "B<fgets>()  reads in at most one less than I<size> characters from I<stream> "
1159 "and stores them into the buffer pointed to by I<s>.  Reading stops after an "
1160 "B<EOF> or a newline.  If a newline is read, it is stored into the buffer.  A "
1161 "terminating null byte (\\(aq\\e0\\(aq)  is stored after the last character "
1162 "in the buffer."
1163 msgstr ""
1164 "B<fgets>()  は I<stream> から最大で I<size> - 1 個の文字を読み込み、 I<s> が"
1165 "指すバッファに格納する。読み込みは B<EOF> または改行文字を読み込んだ後で停止"
1166 "する。 読み込まれた改行文字はバッファに格納される。 終端のヌルバイト (\\(aq"
1167 "\\e0\\(aq)  が一つバッファの中の最後の文字の後に書き込まれる。"
1168
1169 #. type: Plain text
1170 #: build/C/man3/fgetc.3:91
1171 msgid ""
1172 "B<ungetc>()  pushes I<c> back to I<stream>, cast to I<unsigned char>, where "
1173 "it is available for subsequent read operations.  Pushed-back characters will "
1174 "be returned in reverse order; only one pushback is guaranteed."
1175 msgstr ""
1176 "B<ungetc>()  は、後の read 操作で読めるように、 I<c> を I<unsigned char> に"
1177 "キャストして I<stream> に書き戻す。 書き戻された文字は逆順に戻される; 書き戻"
1178 "しとして保証されているのは、一文字だけである。"
1179
1180 #. type: Plain text
1181 #: build/C/man3/fgetc.3:96
1182 msgid ""
1183 "Calls to the functions described here can be mixed with each other and with "
1184 "calls to other input functions from the I<stdio> library for the same input "
1185 "stream."
1186 msgstr ""
1187 "ここで述べた関数や I<stdio> ライブラリの入力関数を同じ入力ストリームに対して"
1188 "互いに混ぜて使うことができる。"
1189
1190 #. type: Plain text
1191 #: build/C/man3/fgetc.3:111
1192 msgid ""
1193 "B<fgetc>(), B<getc>()  and B<getchar>()  return the character read as an "
1194 "I<unsigned char> cast to an I<int> or B<EOF> on end of file or error."
1195 msgstr ""
1196 "B<fgetc>(), B<getc>(), B<getchar>()  は、文字を I<unsigned char> として読ん"
1197 "で I<int> にキャストして返す。ファイルの終わりやエラーの場合は B<EOF> を返"
1198 "す。"
1199
1200 #. type: Plain text
1201 #: build/C/man3/fgetc.3:117
1202 msgid ""
1203 "B<fgets>()  returns I<s> on success, and NULL on error or when end of file "
1204 "occurs while no characters have been read."
1205 msgstr ""
1206 "B<fgets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込んでいないのに"
1207 "ファイルの終わりになった 場合に NULL を返す。"
1208
1209 #. type: Plain text
1210 #: build/C/man3/fgetc.3:124
1211 msgid "B<ungetc>()  returns I<c> on success, or B<EOF> on error."
1212 msgstr "B<ungetc>()  は成功すると I<c> を返し、エラーの場合は B<EOF> を返す。"
1213
1214 #. type: Plain text
1215 #: build/C/man3/fgetc.3:126 build/C/man3/gets.3:60
1216 msgid "C89, C99, POSIX.1-2001."
1217 msgstr "C89, C99, POSIX.1-2001."
1218
1219 #. type: Plain text
1220 #: build/C/man3/fgetc.3:133
1221 msgid ""
1222 "It is not advisable to mix calls to input functions from the I<stdio> "
1223 "library with low-level calls to B<read>(2)  for the file descriptor "
1224 "associated with the input stream; the results will be undefined and very "
1225 "probably not what you want."
1226 msgstr ""
1227 "入力ストリームのファイルディスクリプタに対して、 I<stdio> ライブラリの入力関"
1228 "数と、低レベル呼び出しの B<read>(2)  を混ぜて呼び出す事は勧められない。 結果"
1229 "がどうなるかは分からず、おそらくあなたの 望んでいる結果にはならないだろう。"
1230
1231 #. type: Plain text
1232 #: build/C/man3/fgetc.3:150
1233 msgid ""
1234 "B<read>(2), B<write>(2), B<ferror>(3), B<fgetwc>(3), B<fgetws>(3), "
1235 "B<fopen>(3), B<fread>(3), B<fseek>(3), B<getline>(3), B<gets>(3), "
1236 "B<getwchar>(3), B<puts>(3), B<scanf>(3), B<ungetwc>(3), "
1237 "B<unlocked_stdio>(3), B<feature_test_macros>(7)"
1238 msgstr ""
1239 "B<read>(2), B<write>(2), B<ferror>(3), B<fgetwc>(3), B<fgetws>(3), "
1240 "B<fopen>(3), B<fread>(3), B<fseek>(3), B<getline>(3), B<gets>(3), "
1241 "B<getwchar>(3), B<puts>(3), B<scanf>(3), B<ungetwc>(3), "
1242 "B<unlocked_stdio>(3), B<feature_test_macros>(7)"
1243
1244 #. type: TH
1245 #: build/C/man3/fgetwc.3:18
1246 #, no-wrap
1247 msgid "FGETWC"
1248 msgstr "FGETWC"
1249
1250 #. type: TH
1251 #: build/C/man3/fgetwc.3:18 build/C/man3/fputwc.3:16 build/C/man3/popen.3:40
1252 #, no-wrap
1253 msgid "2013-04-19"
1254 msgstr "2013-04-19"
1255
1256 #. type: Plain text
1257 #: build/C/man3/fgetwc.3:21
1258 msgid "fgetwc, getwc - read a wide character from a FILE stream"
1259 msgstr "fgetwc, getwc - ワイド文字を FILE ストリームから読み込む"
1260
1261 #. type: Plain text
1262 #: build/C/man3/fgetwc.3:26 build/C/man3/fmemopen.3:22
1263 #: build/C/man3/fputwc.3:24 build/C/man3/unlocked_stdio.3:54
1264 #, no-wrap
1265 msgid "B<#include E<lt>wchar.hE<gt>>\n"
1266 msgstr "B<#include E<lt>wchar.hE<gt>>\n"
1267
1268 #. type: Plain text
1269 #: build/C/man3/fgetwc.3:29
1270 #, no-wrap
1271 msgid ""
1272 "B<wint_t fgetwc(FILE *>I<stream>B<);>\n"
1273 "B<wint_t getwc(FILE *>I<stream>B<);>\n"
1274 msgstr ""
1275 "B<wint_t fgetwc(FILE *>I<stream>B<);>\n"
1276 "B<wint_t getwc(FILE *>I<stream>B<);>\n"
1277
1278 #. type: Plain text
1279 #: build/C/man3/fgetwc.3:44
1280 msgid ""
1281 "The B<fgetwc>()  function is the wide-character equivalent of the "
1282 "B<fgetc>(3)  function.  It reads a wide character from I<stream> and returns "
1283 "it.  If the end of stream is reached, or if I<ferror(stream)> becomes true, "
1284 "it returns B<WEOF>.  If a wide-character conversion error occurs, it sets "
1285 "I<errno> to B<EILSEQ> and returns B<WEOF>."
1286 msgstr ""
1287 "B<fgetwc>()  関数は、 B<fgetc>(3)  に対応するワイド文字関数である。 この関数"
1288 "は I<stream> からワイド文字を 1 文字読み込み、これを返す。 ストリームの終端に"
1289 "達するか、I<ferror(stream)> が真になった場合には、 この関数は B<WEOF> を返"
1290 "す。 ワイド文字変換でエラーが発生した場合は、 I<errno> に B<EILSEQ> をセット"
1291 "し、 B<WEOF> を返す。"
1292
1293 #. type: Plain text
1294 #: build/C/man3/fgetwc.3:52
1295 msgid ""
1296 "The B<getwc>()  function or macro functions identically to B<fgetwc>().  It "
1297 "may be implemented as a macro, and may evaluate its argument more than "
1298 "once.  There is no reason ever to use it."
1299 msgstr ""
1300 "B<getwc>()  関数あるいはマクロは、 B<fgetwc>()  と全く同じ動作をする。 この関"
1301 "数はマクロとして実装されるかもしれないので、引き数が複数回評価さ れるかもしれ"
1302 "ない。この関数を使う理由はもはや存在しない。"
1303
1304 #. type: Plain text
1305 #: build/C/man3/fgetwc.3:64
1306 msgid ""
1307 "The B<fgetwc>()  function returns the next wide-character from the stream, "
1308 "or B<WEOF>.  In the event of an error, I<errno> is set to indicate the cause."
1309 msgstr ""
1310 "B<fgetwc>()  関数はストリームの次のワイド文字か、あるいは B<WEOF> を返す。 エ"
1311 "ラーが起こった場合、 I<errno> にエラーの原因を示す値が設定される。"
1312
1313 #. type: Plain text
1314 #: build/C/man3/fgetwc.3:66 build/C/man3/fputwc.3:65
1315 msgid "Apart from the usual ones, there is"
1316 msgstr "通常のエラーに加えて、以下のエラーがある:"
1317
1318 #. type: TP
1319 #: build/C/man3/fgetwc.3:66 build/C/man3/fputwc.3:65 build/C/man3/scanf.3:558
1320 #, no-wrap
1321 msgid "B<EILSEQ>"
1322 msgstr "B<EILSEQ>"
1323
1324 #. type: Plain text
1325 #: build/C/man3/fgetwc.3:70
1326 msgid ""
1327 "The data obtained from the input stream does not form a valid character."
1328 msgstr "入力ストリームから取得したデータが、正しい文字でない。"
1329
1330 #. type: Plain text
1331 #: build/C/man3/fgetwc.3:72 build/C/man3/fputwc.3:70
1332 msgid "C99, POSIX.1-2001."
1333 msgstr "C99, POSIX.1-2001."
1334
1335 #. type: Plain text
1336 #: build/C/man3/fgetwc.3:79
1337 msgid ""
1338 "The behavior of B<fgetwc>()  depends on the B<LC_CTYPE> category of the "
1339 "current locale."
1340 msgstr ""
1341 "B<fgetwc>()  の動作は、現在のロケールの B<LC_CTYPE> カテゴリに依存する。"
1342
1343 #. type: Plain text
1344 #: build/C/man3/fgetwc.3:87
1345 msgid ""
1346 "In the absence of additional information passed to the B<fopen>(3)  call, it "
1347 "is reasonable to expect that B<fgetwc>()  will actually read a multibyte "
1348 "sequence from the stream and then convert it to a wide character."
1349 msgstr ""
1350 "B<fopen>(3)  システムコールに渡す追加情報がない場合には、 B<fgetwc>()  が実"
1351 "際 にはマルチバイトシーケンスをストリームから読み込み、これをワイド文字に 変"
1352 "換すると期待することは適切である。"
1353
1354 #. type: Plain text
1355 #: build/C/man3/fgetwc.3:92
1356 msgid "B<fgetws>(3), B<fputwc>(3), B<ungetwc>(3), B<unlocked_stdio>(3)"
1357 msgstr "B<fgetws>(3), B<fputwc>(3), B<ungetwc>(3), B<unlocked_stdio>(3)"
1358
1359 #. type: TH
1360 #: build/C/man3/flockfile.3:25
1361 #, no-wrap
1362 msgid "FLOCKFILE"
1363 msgstr "FLOCKFILE"
1364
1365 #. type: TH
1366 #: build/C/man3/flockfile.3:25 build/C/man3/getline.3:26
1367 #: build/C/man2/link.2:32 build/C/man3/lseek64.3:25 build/C/man3/remove.3:31
1368 #: build/C/man2/rename.2:33 build/C/man3/setbuf.3:48 build/C/man2/symlink.2:33
1369 #: build/C/man2/unlink.2:33
1370 #, no-wrap
1371 msgid "2014-08-19"
1372 msgstr "2014-08-19"
1373
1374 #. type: Plain text
1375 #: build/C/man3/flockfile.3:28
1376 msgid "flockfile, ftrylockfile, funlockfile - lock FILE for stdio"
1377 msgstr "flockfile, ftrylockfile, funlockfile - 標準入出力 FILE のロックを行う"
1378
1379 #. type: Plain text
1380 #: build/C/man3/flockfile.3:33
1381 #, no-wrap
1382 msgid "B<void flockfile(FILE *>I<filehandle>B<);>\n"
1383 msgstr "B<void flockfile(FILE *>I<filehandle>B<);>\n"
1384
1385 #. type: Plain text
1386 #: build/C/man3/flockfile.3:35
1387 #, no-wrap
1388 msgid "B<int ftrylockfile(FILE *>I<filehandle>B<);>\n"
1389 msgstr "B<int ftrylockfile(FILE *>I<filehandle>B<);>\n"
1390
1391 #. type: Plain text
1392 #: build/C/man3/flockfile.3:37
1393 #, no-wrap
1394 msgid "B<void funlockfile(FILE *>I<filehandle>B<);>\n"
1395 msgstr "B<void funlockfile(FILE *>I<filehandle>B<);>\n"
1396
1397 #. type: Plain text
1398 #: build/C/man3/flockfile.3:46 build/C/man3/wprintf.3:43
1399 msgid "All functions shown above:"
1400 msgstr "上記の全ての関数:"
1401
1402 #. type: Plain text
1403 #: build/C/man3/flockfile.3:49
1404 msgid ""
1405 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE "
1406 "|| _POSIX_SOURCE"
1407 msgstr ""
1408 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE "
1409 "|| _POSIX_SOURCE"
1410
1411 #. type: Plain text
1412 #: build/C/man3/flockfile.3:63
1413 msgid ""
1414 "The stdio functions are thread-safe.  This is achieved by assigning to each "
1415 "I<FILE> object a lockcount and (if the lockcount is nonzero)  an owning "
1416 "thread.  For each library call, these functions wait until the I<FILE> "
1417 "object is no longer locked by a different thread, then lock it, do the "
1418 "requested I/O, and unlock the object again."
1419 msgstr ""
1420 "標準入出力関数はスレッドセーフである。これは、各 I<FILE> オブジェクトに対し、"
1421 "ロック数 (lockcount) と (ロック数が 0 でない場合は) 所有者スレッド (owner "
1422 "thread)  を管理することで実現される。 ライブラリの呼び出しが行われる毎に、標"
1423 "準入出力関数は I<FILE> オブジェクトが他のスレッドによってロックされていない状"
1424 "態になるまで待ち、 I<FILE> オブジェクトをロックし、要求されて入出力を行い、 "
1425 "オブジェクトのロックを解除する。"
1426
1427 #. type: Plain text
1428 #: build/C/man3/flockfile.3:69
1429 msgid ""
1430 "(Note: this locking has nothing to do with the file locking done by "
1431 "functions like B<flock>(2)  and B<lockf>(3).)"
1432 msgstr ""
1433 "(注: このロックは、 B<flock>(2)  や B<lockf>(3)  といった関数が行うロックとは"
1434 "全く無関係である。)"
1435
1436 #. type: Plain text
1437 #: build/C/man3/flockfile.3:77
1438 msgid ""
1439 "All this is invisible to the C-programmer, but there may be two reasons to "
1440 "wish for more detailed control.  On the one hand, maybe a series of I/O "
1441 "actions by one thread belongs together, and should not be interrupted by the "
1442 "I/O of some other thread.  On the other hand, maybe the locking overhead "
1443 "should be avoided for greater efficiency."
1444 msgstr ""
1445 "これらのことはすべて C プログラマには見えない部分で行われるが、 より細かい制"
1446 "御ができた方がよい理由が2つあるだろう。一つは、一つのスレッドが 行う一連の入"
1447 "出力動作は一緒に行われ、他のスレッドの入出力によって中断されない 方がよいとい"
1448 "うことであろう。もう一つは、効率を大きく上げるためには ロックのオーバヘッドを"
1449 "避ける必要があるということであろう。"
1450
1451 #. type: Plain text
1452 #: build/C/man3/flockfile.3:94
1453 msgid ""
1454 "To this end, a thread can explicitly lock the I<FILE> object, then do its "
1455 "series of I/O actions, then unlock.  This prevents other threads from coming "
1456 "in between.  If the reason for doing this was to achieve greater efficiency, "
1457 "one does the I/O with the nonlocking versions of the stdio functions: with "
1458 "B<getc_unlocked>(3)  and B<putc_unlocked>(3)  instead of B<getc>(3)  and "
1459 "B<putc>(3)."
1460 msgstr ""
1461 "この目的を実現するために、 I<FILE> オブジェクトのロック、一連の入出力動作の実"
1462 "行、 ロックの解除をスレッドが明示的に指示することができる。 これにより、他の"
1463 "スレッドが途中で入出力を行うのを防止する。 このようなことを行う理由が効率の向"
1464 "上であるならば、 ロックを行わないバージョンの標準入出力関数を使うこともでき"
1465 "る。 例えば、 B<getc>(3)  や B<putc>(3)  の代わりに B<getc_unlocked>(3)  や "
1466 "B<putc_unlocked>(3)  を使用する。"
1467
1468 #. type: Plain text
1469 #: build/C/man3/flockfile.3:105
1470 msgid ""
1471 "The B<flockfile>()  function waits for I<*filehandle> to be no longer locked "
1472 "by a different thread, then makes the current thread owner of "
1473 "I<*filehandle>, and increments the lockcount."
1474 msgstr ""
1475 "B<flockfile>()  関数は、I<*filehandle> が他のスレッドにロックされていな い状"
1476 "態になるまで待ったのち、現在のスレッドを I<*filehandle> のオーナに設 定し、"
1477 "ロック数を加算する。"
1478
1479 #. type: Plain text
1480 #: build/C/man3/flockfile.3:109
1481 msgid "The B<funlockfile>()  function decrements the lock count."
1482 msgstr "B<funlockfile>()  関数は、ロック数を減算する。"
1483
1484 #. type: Plain text
1485 #: build/C/man3/flockfile.3:120
1486 msgid ""
1487 "The B<ftrylockfile>()  function is a nonblocking version of B<flockfile>().  "
1488 "It does nothing in case some other thread owns I<*filehandle>, and it "
1489 "obtains ownership and increments the lockcount otherwise."
1490 msgstr ""
1491 "B<ftrylockfile>()  関数は B<flockfile>()  のブロッキングを行わない バージョン"
1492 "である。他のスレッドが I<*filehandle> をロックしている時は 何も行わず、そうで"
1493 "ない場合は I<*filehandle> の所有権を獲得し、 ロック数を加算する。"
1494
1495 #. type: Plain text
1496 #: build/C/man3/flockfile.3:125
1497 msgid ""
1498 "The B<ftrylockfile>()  function returns zero for success (the lock was "
1499 "obtained), and nonzero for failure."
1500 msgstr ""
1501 "B<ftrylockfile>()  関数はロックに成功すると 0 を返し、 失敗した場合は 0 以外"
1502 "の値を返す。"
1503
1504 #. type: Plain text
1505 #: build/C/man3/flockfile.3:127
1506 msgid "None."
1507 msgstr "なし。"
1508
1509 #. type: Plain text
1510 #: build/C/man3/flockfile.3:135
1511 msgid ""
1512 "The B<flockfile>(), B<ftrylockfile>(), and B<funlockfile>()  functions are "
1513 "thread-safe."
1514 msgstr ""
1515 "関数 B<flockfile>(), B<ftrylockfile>(), B<funlockfile>() はスレッドセーフであ"
1516 "る。"
1517
1518 #. type: Plain text
1519 #: build/C/man3/flockfile.3:137 build/C/man3/popen.3:174
1520 msgid "POSIX.1-2001."
1521 msgstr "POSIX.1-2001."
1522
1523 #. type: SH
1524 #: build/C/man3/flockfile.3:137
1525 #, no-wrap
1526 msgid "AVAILABILITY"
1527 msgstr "可用性"
1528
1529 #. type: Plain text
1530 #: build/C/man3/flockfile.3:141
1531 msgid ""
1532 "These functions are available when B<_POSIX_THREAD_SAFE_FUNCTIONS> is "
1533 "defined."
1534 msgstr ""
1535 "B<_POSIX_THREAD_SAFE_FUNCTIONS> が定義されているときにこれらの関数を使用する"
1536 "ことができる。"
1537
1538 #. type: Plain text
1539 #: build/C/man3/flockfile.3:143
1540 msgid "B<unlocked_stdio>(3)"
1541 msgstr "B<unlocked_stdio>(3)"
1542
1543 #. type: TH
1544 #: build/C/man3/fmemopen.3:10
1545 #, no-wrap
1546 msgid "FMEMOPEN"
1547 msgstr "FMEMOPEN"
1548
1549 #. type: TH
1550 #: build/C/man3/fmemopen.3:10 build/C/man7/symlink.7:37
1551 #, no-wrap
1552 msgid "2014-04-06"
1553 msgstr "2014-04-06"
1554
1555 #. type: Plain text
1556 #: build/C/man3/fmemopen.3:13
1557 msgid "fmemopen, open_memstream, open_wmemstream - open memory as stream"
1558 msgstr ""
1559 "fmemopen, open_memstream, open_wmemstream - メモリをストリームとしてオープン"
1560 "する"
1561
1562 #. type: Plain text
1563 #: build/C/man3/fmemopen.3:18
1564 #, no-wrap
1565 msgid "B<FILE *fmemopen(void *>I<buf>B<, size_t >I<size>B<, const char *>I<mode>B<);>\n"
1566 msgstr "B<FILE *fmemopen(void *>I<buf>B<, size_t >I<size>B<, const char *>I<mode>B<);>\n"
1567
1568 #. type: Plain text
1569 #: build/C/man3/fmemopen.3:20
1570 #, no-wrap
1571 msgid "B<FILE *open_memstream(char **>I<ptr>B<, size_t *>I<sizeloc>B<);>\n"
1572 msgstr "B<FILE *open_memstream(char **>I<ptr>B<, size_t *>I<sizeloc>B<);>\n"
1573
1574 #. type: Plain text
1575 #: build/C/man3/fmemopen.3:24
1576 #, no-wrap
1577 msgid "B<FILE *open_wmemstream(wchar_t **>I<ptr>B<, size_t *>I<sizeloc>B<);>\n"
1578 msgstr "B<FILE *open_wmemstream(wchar_t **>I<ptr>B<, size_t *>I<sizeloc>B<);>\n"
1579
1580 #. type: Plain text
1581 #: build/C/man3/fmemopen.3:34
1582 msgid "B<fmemopen>(), B<open_memstream>(), B<open_wmemstream>():"
1583 msgstr "B<fmemopen>(), B<open_memstream>(), B<open_wmemstream>():"
1584
1585 #. type: Plain text
1586 #: build/C/man3/fmemopen.3:57
1587 msgid ""
1588 "The B<fmemopen>()  function opens a stream that permits the access specified "
1589 "by I<mode>.  The stream allows I/O to be performed on the string or memory "
1590 "buffer pointed to by I<buf>.  This buffer must be at least I<size> bytes "
1591 "long."
1592 msgstr ""
1593 "B<fmemopen>()  関数は、ストリームをオープンし、そのストリームに I<mode> で指"
1594 "定されたアクセス許可を設定する。 そのストリームを通じて、 I<buf> で指定された"
1595 "文字列やメモリバッファへの読み書きができる。 このバッファは少なくとも "
1596 "I<size> バイトの長さでなければならない。"
1597
1598 #. type: Plain text
1599 #: build/C/man3/fmemopen.3:77
1600 msgid ""
1601 "The argument I<mode> is the same as for B<fopen>(3).  If I<mode> specifies "
1602 "an append mode, then the initial file position is set to the location of the "
1603 "first null byte (\\(aq\\e0\\(aq) in the buffer; otherwise the initial file "
1604 "position is set to the start of the buffer.  Since glibc 2.9, the letter "
1605 "\\(aqb\\(aq may be specified as the second character in I<mode>.  This "
1606 "provides \"binary\" mode: writes don't implicitly add a terminating null "
1607 "byte, and B<fseek>(3)  B<SEEK_END> is relative to the end of the buffer (i."
1608 "e., the value specified by the I<size> argument), rather than the current "
1609 "string length."
1610 msgstr ""
1611 "引き数 I<mode> は B<fopen>(3) の場合と同じである。 I<mode> で追記モード\n"
1612 "(append mode) が指定された場合、ファイル位置の初期値は バッファ中の\n"
1613 "最初のヌルバイト (\\(aq\\e0\\(aq) の位置に設定される。\n"
1614 "それ以外の場合は、ファイル位置の初期値はバッファの先頭になる。 \n"
1615 "glibc 2.9 以降では、文字 \\(aqb\\(aq を I<mode> の二番目の文字として指定\n"
1616 "することができる。 この文字は「バイナリ」モードを指定するものである。\n"
1617 "このモードでは、書き込み時に文字列終端のヌルバイトが黙って追加 される\n"
1618 "ことはない。また、 B<fseek>(3) B<SEEK_END> は、文字列の長さからの相対値\n"
1619 "ではなく、バッファの末尾 (I<size> で指定した値) からの相対値となる。"
1620
1621 #. type: Plain text
1622 #: build/C/man3/fmemopen.3:89
1623 msgid ""
1624 "When a stream that has been opened for writing is flushed (B<fflush>(3))  or "
1625 "closed (B<fclose>(3)), a null byte is written at the end of the buffer if "
1626 "there is space.  The caller should ensure that an extra byte is available in "
1627 "the buffer (and that I<size> counts that byte)  to allow for this."
1628 msgstr ""
1629 "書き込み用にオープンされたストリームをフラッシュ (B<fflush>(3))  やクローズ "
1630 "(B<fclose>(3))  した時に、 (バッファに空きがあれば) ヌルバイトがバッファの末"
1631 "尾に書き込まれる。 このようにするためには、呼び出し元は バッファに 1バイト余"
1632 "裕を作る (I<size> にこの 1バイトを含めた値を指定する) 必要がある。"
1633
1634 #.  See http://sourceware.org/bugzilla/show_bug.cgi?id=1995
1635 #.  and
1636 #.  http://sources.redhat.com/ml/libc-alpha/2006-04/msg00064.html
1637 #. type: Plain text
1638 #: build/C/man3/fmemopen.3:107
1639 msgid ""
1640 "Attempts to write more than I<size> bytes to the buffer result in an error.  "
1641 "(By default, such errors will be visible only when the I<stdio> buffer is "
1642 "flushed.  Disabling buffering with I<setbuf(fp,\\ NULL)> may be useful to "
1643 "detect errors at the time of an output operation.  Alternatively, the caller "
1644 "can explicitly set I<buf> as the stdio stream buffer, at the same time "
1645 "informing stdio of the buffer's size, using I<setbuffer(fp, buf, size)>.)"
1646 msgstr ""
1647 "バッファに I<size> バイトよりたくさん書き込もうとした場合には、エラーとな"
1648 "る。 (デフォルトでは、このようなエラーが見えるのは I<stdio> バッファがフラッ"
1649 "シュされた時だけである。 I<setbuf(fp,\\ NULL)> を使ってバッファリングを無効に"
1650 "する方法は、 出力操作を行った時点でエラーを検出するのに役立つ。 別の方法とし"
1651 "ては、 I<setbuffer(fp, buf, size)> を使って、呼び出し側が明示的に stdio スト"
1652 "リームバッファとして I<buf> を指定し、バッファの指定時にバッファのサイズを "
1653 "stdio に教える方法がある。)"
1654
1655 #. type: Plain text
1656 #: build/C/man3/fmemopen.3:115
1657 msgid ""
1658 "In a stream opened for reading, null bytes (\\(aq\\e0\\(aq) in the buffer do "
1659 "not cause read operations to return an end-of-file indication.  A read from "
1660 "the buffer will only indicate end-of-file when the file pointer advances "
1661 "I<size> bytes past the start of the buffer."
1662 msgstr ""
1663 "読み出し用にオープンされたストリームでは、 バッファ内にヌルバイト (\\(aq"
1664 "\\e0\\(aq) があっても 読み出し操作がファイル末尾 (end-of-file) を返すことはな"
1665 "い。 バッファからの読み出しでファイル末尾が返るのは、 ファイルポインタがバッ"
1666 "ファの先頭から I<size> バイトを越えて先に進もうとした場合だけである。"
1667
1668 #. type: Plain text
1669 #: build/C/man3/fmemopen.3:130
1670 msgid ""
1671 "If I<buf> is specified as NULL, then B<fmemopen>()  dynamically allocates a "
1672 "buffer I<size> bytes long.  This is useful for an application that wants to "
1673 "write data to a temporary buffer and then read it back again.  The buffer is "
1674 "automatically freed when the stream is closed.  Note that the caller has no "
1675 "way to obtain a pointer to the temporary buffer allocated by this call (but "
1676 "see B<open_memstream>()  below)."
1677 msgstr ""
1678 "I<buf> に NULL が指定された場合、 B<fmemopen>()  は動的に I<size> バイトの長"
1679 "さのバッファを確保する。 この方法は、一時バッファにデータの書き込みを行ってか"
1680 "ら、 その内容を再度読み出すようなアプリケーションで有用である。 このバッファ"
1681 "はストリームがクローズされるときに自動的に解放される。 呼び出し元からはこの関"
1682 "数が割り当てた一時バッファへのポインタ値を 知る方法は存在しない点に注意 (下記"
1683 "の B<open_memstream>()  も参照)。"
1684
1685 #. type: Plain text
1686 #: build/C/man3/fmemopen.3:141
1687 msgid ""
1688 "The B<open_memstream>()  function opens a stream for writing to a buffer.  "
1689 "The buffer is dynamically allocated (as with B<malloc>(3)), and "
1690 "automatically grows as required.  After closing the stream, the caller "
1691 "should B<free>(3)  this buffer."
1692 msgstr ""
1693 "B<open_memstream>()  関数は、バッファへの書き込み用にストリームをオープンす"
1694 "る。 バッファは (B<malloc>(3)  を使って) 動的に割り当てられ、必要に応じて自動"
1695 "的に伸長する。 ストリームをクローズした後で、呼び出し元はこのバッファを "
1696 "B<free>(3)  すべきである。"
1697
1698 #. type: Plain text
1699 #: build/C/man3/fmemopen.3:156
1700 msgid ""
1701 "When the stream is closed (B<fclose>(3))  or flushed (B<fflush>(3)), the "
1702 "locations pointed to by I<ptr> and I<sizeloc> are updated to contain, "
1703 "respectively, a pointer to the buffer and the current size of the buffer.  "
1704 "These values remain valid only as long as the caller performs no further "
1705 "output on the stream.  If further output is performed, then the stream must "
1706 "again be flushed before trying to access these variables."
1707 msgstr ""
1708 "このストリームが クローズ (B<fclose>(3))  されたりフラッシュ (B<fflush>(3))  "
1709 "された時に、 I<ptr> と I<sizeloc> の値はそれぞれバッファへのポインタとそのサ"
1710 "イズに更新される。 これらの値は、呼び出し元がそのストリームに新たな書き込み"
1711 "を 行わない場合に限り有効である。 ストリームに書き込みを行った際には、これら"
1712 "の変数を参照する前に ストリームを再度フラッシュしなければならない。"
1713
1714 #. type: Plain text
1715 #: build/C/man3/fmemopen.3:162
1716 msgid ""
1717 "A null byte is maintained at the end of the buffer.  This byte is I<not> "
1718 "included in the size value stored at I<sizeloc>."
1719 msgstr ""
1720 "バッファ末尾のヌルバイトは保持される。 このヌルバイトは I<sizeloc> に格納され"
1721 "るサイズには「含まれない」。"
1722
1723 #. type: Plain text
1724 #: build/C/man3/fmemopen.3:170
1725 msgid ""
1726 "The stream's file position can be changed with B<fseek>(3)  or "
1727 "B<fseeko>(3).  Moving the file position past the end of the data already "
1728 "written fills the intervening space with zeros."
1729 msgstr ""
1730 "ストリームのファイル位置は B<fseek>(3)  や B<fseeko>(3)  で変更できる。 すで"
1731 "にデータが書き込まれた領域の末尾より先にファイル位置を動かすと、 その間の領域"
1732 "は 0 で埋められる。"
1733
1734 #. type: Plain text
1735 #: build/C/man3/fmemopen.3:176
1736 msgid ""
1737 "The B<open_wmemstream>()  is similar to B<open_memstream>(), but operates on "
1738 "wide characters instead of bytes."
1739 msgstr ""
1740 "B<open_wmemstream>()  は B<open_memstream>()  と同様だが、バイトではなくワイ"
1741 "ド文字に対して操作を行う点が異なる。"
1742
1743 #. type: Plain text
1744 #: build/C/man3/fmemopen.3:188
1745 msgid ""
1746 "Upon successful completion B<fmemopen>(), B<open_memstream>()  and "
1747 "B<open_wmemstream>()  return a I<FILE> pointer.  Otherwise, NULL is returned "
1748 "and I<errno> is set to indicate the error."
1749 msgstr ""
1750 "成功して終了した場合には、 B<fmemopen>(), B<open_memstream>(), "
1751 "B<open_wmemstream>()  は I<FILE> ポインタを返す。 失敗した場合は、 NULL を返"
1752 "し、 I<errno> にエラーを示す値をセットする。"
1753
1754 #. type: SH
1755 #: build/C/man3/fmemopen.3:188 build/C/man3/fmtmsg.3:222
1756 #: build/C/man3/fseeko.3:100 build/C/man2/link.2:334 build/C/man2/open.2:1008
1757 #: build/C/man2/open_by_handle_at.2:349 build/C/man2/pipe.2:154
1758 #: build/C/man2/readlink.2:212 build/C/man2/readv.2:209
1759 #: build/C/man2/rename.2:397 build/C/man2/symlink.2:224
1760 #: build/C/man2/unlink.2:269
1761 #, no-wrap
1762 msgid "VERSIONS"
1763 msgstr "バージョン"
1764
1765 #. type: Plain text
1766 #: build/C/man3/fmemopen.3:195
1767 msgid ""
1768 "B<fmemopen>()  and B<open_memstream>()  were already available in glibc 1.0."
1769 "x.  B<open_wmemstream>()  is available since glibc 2.4."
1770 msgstr ""
1771 "B<fmemopen>()  と B<open_memstream>()  は glibc 1.0.x ですでに利用可能であっ"
1772 "た。 B<open_wmemstream>()  は glibc 2.4 以降で利用可能である。"
1773
1774 #. type: Plain text
1775 #: build/C/man3/fmemopen.3:199
1776 msgid ""
1777 "POSIX.1-2008.  These functions are not specified in POSIX.1-2001, and are "
1778 "not widely available on other systems."
1779 msgstr ""
1780 "POSIX.1-2008.  これらの関数は POSIX.1-2001 では規定れていないが、 Linux 以外"
1781 "のシステムで広く利用可能である。"
1782
1783 #.  http://austingroupbugs.net/view.php?id=396
1784 #. type: Plain text
1785 #: build/C/man3/fmemopen.3:207
1786 msgid ""
1787 "POSIX.1-2008 specifies that \\(aqb\\(aq in I<mode> shall be ignored.  "
1788 "However, Technical Corrigendum 1 adjusts the standard to allow "
1789 "implementation-specific treatment for this case, thus permitting the glibc "
1790 "treatment of \\(aqb\\(aq."
1791 msgstr ""
1792 "POSIX.1-2008 では I<mode> の \\(aqb\\(aq は無視されるべきだと規定されて\n"
1793 "いる。一方、Technical Corrigendum (正誤表) 1 では、I<mode> の\n"
1794 "\\(aqb\\(aq が指定された場合の扱いは実装依存であることを許容するように\n"
1795 "標準規格が修正されており、glibc の \\(aqb\\(aq の扱いは許されている。"
1796
1797 #. type: Plain text
1798 #: build/C/man3/fmemopen.3:213
1799 msgid ""
1800 "There is no file descriptor associated with the file stream returned by "
1801 "these functions (i.e., B<fileno>(3)  will return an error if called on the "
1802 "returned stream)."
1803 msgstr ""
1804 "これらの関数が返すファイルストリームに対応するファイル ディスクリプタはない "
1805 "(つまり、返されたストリームに対して B<fileno>(3)  を呼び出すとエラーが返るこ"
1806 "とになる)。"
1807
1808 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=1996
1809 #. type: Plain text
1810 #: build/C/man3/fmemopen.3:220
1811 msgid ""
1812 "In glibc before version 2.7, seeking past the end of a stream created by "
1813 "B<open_memstream>()  does not enlarge the buffer; instead the B<fseek>(3)  "
1814 "call fails, returning -1."
1815 msgstr ""
1816 "バージョン 2.7 より前の glibc では、 B<open_memstream>()  で作成されたスト"
1817 "リームの末尾より先にファイル位置を動かしても、 バッファが伸長されず、 "
1818 "B<fseek>(3)  が失敗し -1 が返る。"
1819
1820 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=11216
1821 #. type: Plain text
1822 #: build/C/man3/fmemopen.3:231
1823 msgid ""
1824 "If I<size> is specified as zero, B<fmemopen>()  fails with the error "
1825 "B<EINVAL>.  It would be more consistent if this case successfully created a "
1826 "stream that then returned end of file on the first attempt at reading.  "
1827 "Furthermore, POSIX.1-2008 does not specify a failure for this case."
1828 msgstr ""
1829 "I<size> に 0 が指定された場合、 B<fmemopen>() はエラー B<EINVAL> で失敗\n"
1830 "する。この場合にはストリームの作成に成功して、最初の読み出しを行った際に\n"
1831 "EOF (end of file) が返される方が、ストリームの扱いの一貫性が増すだろう。\n"
1832 "また、 POSIX.1-2008 ではこの場合のエラーは規定されていない。"
1833
1834 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=13152
1835 #. type: Plain text
1836 #: build/C/man3/fmemopen.3:239
1837 msgid ""
1838 "Specifying append mode (\"a\" or \"a+\") for B<fmemopen>()  sets the initial "
1839 "file position to the first null byte, but (if the file offset is reset to a "
1840 "location other than the end of the stream)  does not force subsequent writes "
1841 "to append at the end of the stream."
1842 msgstr ""
1843 "B<fmemopen>() に追記モード (\"a\" や \"a+\") を指定すると、\n"
1844 "ファイル位置の初期値は最初のヌルバイトに設定されるが、(ファイル\n"
1845 "オフセットをストリームの末尾以外の位置に再設定した場合)それ以降の\n"
1846 "書き込みではストリームの末尾への追記が行われる訳ではない。"
1847
1848 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=13151
1849 #. type: Plain text
1850 #: build/C/man3/fmemopen.3:255
1851 msgid ""
1852 "If the I<mode> argument to B<fmemopen>()  specifies append (\"a\" or \"a+"
1853 "\"), and the I<size> argument does not cover a null byte in I<buf>, then, "
1854 "according to POSIX.1-2008, the initial file position should be set to the "
1855 "next byte after the end of the buffer.  However, in this case the glibc "
1856 "B<fmemopen>()  sets the file position to -1."
1857 msgstr ""
1858 "B<fmemopen>() の I<mode> 引き数に追記モード (\"a\" や \"a+\") を指定し、\n"
1859 "I<size> 引き数で指定した範囲の I<buf> 内にヌルバイトがない場合、\n"
1860 "POSIX.1-2008 では、ファイル位置の初期値はバッファの末尾の直後の\n"
1861 "バイトに設定すべきとされている。しかし、glibc の B<fmemopen>() では\n"
1862 "この場合ファイル位置は -1 に設定される。"
1863
1864 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12836
1865 #. type: Plain text
1866 #: build/C/man3/fmemopen.3:268
1867 msgid ""
1868 "To specify binary mode for B<fmemopen>()  the \\(aqb\\(aq must be the "
1869 "I<second> character in I<mode>.  Thus, for example, \"wb+\" has the desired "
1870 "effect, but \"w+b\" does not.  This is inconsistent with the treatment of "
1871 "I<mode> by B<fopen>(3)."
1872 msgstr ""
1873 "B<fmemopen>() でバイナリモードを指定するには、\n"
1874 "\\(aqb\\(aq は I<mode> の I<2 文字目> でなければならない。\n"
1875 "例えば、 \"wb+\" は意図通りの効果になるが、 \"w+b\" はそうではない。\n"
1876 "これは B<fopen>(3) の I<mode> の扱いとは異なる。"
1877
1878 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=6544
1879 #. type: Plain text
1880 #: build/C/man3/fmemopen.3:276
1881 msgid ""
1882 "The glibc 2.9 addition of \"binary\" mode for B<fmemopen>()  silently "
1883 "changed the ABI: previously, B<fmemopen>()  ignored \\(aqb\\(aq in I<mode>."
1884 msgstr ""
1885 "glibc 2.9 での B<fmemopen>() の「バイナリ」モードの追加は、\n"
1886 "ABI (Application Binary Interface) が黙って変更された。\n"
1887 "それ以前の B<fmemopen>() では I<mode> 内の \\(aqb\\(aq は無視されていた。"
1888
1889 #. type: SH
1890 #: build/C/man3/fmemopen.3:276 build/C/man3/fmtmsg.3:256
1891 #: build/C/man3/fopencookie.3:247 build/C/man3/getline.3:144
1892 #: build/C/man2/open_by_handle_at.2:439 build/C/man2/pipe.2:165
1893 #: build/C/man3/printf.3:995 build/C/man2/readlink.2:269
1894 #: build/C/man2/readv.2:280 build/C/man3/scanf.3:704
1895 #, no-wrap
1896 msgid "EXAMPLE"
1897 msgstr "例"
1898
1899 #. type: Plain text
1900 #: build/C/man3/fmemopen.3:286
1901 msgid ""
1902 "The program below uses B<fmemopen>()  to open an input buffer, and "
1903 "B<open_memstream>()  to open a dynamically sized output buffer.  The program "
1904 "scans its input string (taken from the program's first command-line "
1905 "argument) reading integers, and writes the squares of these integers to the "
1906 "output buffer.  An example of the output produced by this program is the "
1907 "following:"
1908 msgstr ""
1909 "このプログラムは B<fmemopen>()  を使って出力バッファをオープンし、 "
1910 "B<open_memstream>()  を使って動的にサイズが変化する出力バッファをオープンして"
1911 "いる。 (プログラムの第一コマンドライン引き数から取った) 入力文字列を スキャン"
1912 "して整数を読み込み、これらの整数の二乗を出力バッファに書き出す。 このプログラ"
1913 "ムの実行例は以下のようになる。"
1914
1915 #. type: Plain text
1916 #: build/C/man3/fmemopen.3:291
1917 #, no-wrap
1918 msgid ""
1919 "$B< ./a.out \\(aq1 23 43\\(aq>\n"
1920 "size=11; ptr=1 529 1849\n"
1921 msgstr ""
1922 "$B< ./a.out \\(aq1 23 43\\(aq>\n"
1923 "size=11; ptr=1 529 1849\n"
1924
1925 #. type: SS
1926 #: build/C/man3/fmemopen.3:293 build/C/man3/fopencookie.3:271
1927 #: build/C/man2/pipe.2:181
1928 #, no-wrap
1929 msgid "Program source"
1930 msgstr "プログラムのソース"
1931
1932 #. type: Plain text
1933 #: build/C/man3/fmemopen.3:300
1934 #, no-wrap
1935 msgid ""
1936 "#define _GNU_SOURCE\n"
1937 "#include E<lt>string.hE<gt>\n"
1938 "#include E<lt>stdio.hE<gt>\n"
1939 "#include E<lt>stdlib.hE<gt>\n"
1940 msgstr ""
1941 "#define _GNU_SOURCE\n"
1942 "#include E<lt>string.hE<gt>\n"
1943 "#include E<lt>stdio.hE<gt>\n"
1944 "#include E<lt>stdlib.hE<gt>\n"
1945
1946 #. type: Plain text
1947 #: build/C/man3/fmemopen.3:303
1948 #, no-wrap
1949 msgid ""
1950 "#define handle_error(msg) \\e\n"
1951 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1952 msgstr ""
1953 "#define handle_error(msg) \\e\n"
1954 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1955
1956 #. type: Plain text
1957 #: build/C/man3/fmemopen.3:311
1958 #, no-wrap
1959 msgid ""
1960 "int\n"
1961 "main(int argc, char *argv[])\n"
1962 "{\n"
1963 "    FILE *out, *in;\n"
1964 "    int v, s;\n"
1965 "    size_t size;\n"
1966 "    char *ptr;\n"
1967 msgstr ""
1968 "int\n"
1969 "main(int argc, char *argv[])\n"
1970 "{\n"
1971 "    FILE *out, *in;\n"
1972 "    int v, s;\n"
1973 "    size_t size;\n"
1974 "    char *ptr;\n"
1975
1976 #. type: Plain text
1977 #: build/C/man3/fmemopen.3:316
1978 #, no-wrap
1979 msgid ""
1980 "    if (argc != 2) {\n"
1981 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
1982 "        exit(EXIT_FAILURE);\n"
1983 "    }\n"
1984 msgstr ""
1985 "    if (argc != 2) {\n"
1986 "        fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
1987 "        exit(EXIT_FAILURE);\n"
1988 "    }\n"
1989
1990 #. type: Plain text
1991 #: build/C/man3/fmemopen.3:320
1992 #, no-wrap
1993 msgid ""
1994 "    in = fmemopen(argv[1], strlen(argv[1]), \"r\");\n"
1995 "    if (in == NULL)\n"
1996 "        handle_error(\"fmemopen\");\n"
1997 msgstr ""
1998 "    in = fmemopen(argv[1], strlen(argv[1]), \"r\");\n"
1999 "    if (in == NULL)\n"
2000 "        handle_error(\"fmemopen\");\n"
2001
2002 #. type: Plain text
2003 #: build/C/man3/fmemopen.3:324
2004 #, no-wrap
2005 msgid ""
2006 "    out = open_memstream(&ptr, &size);\n"
2007 "    if (out == NULL)\n"
2008 "        handle_error(\"open_memstream\");\n"
2009 msgstr ""
2010 "    out = open_memstream(&ptr, &size);\n"
2011 "    if (out == NULL)\n"
2012 "        handle_error(\"open_memstream\");\n"
2013
2014 #. type: Plain text
2015 #: build/C/man3/fmemopen.3:329
2016 #, no-wrap
2017 msgid ""
2018 "    for (;;) {\n"
2019 "        s = fscanf(in, \"%d\", &v);\n"
2020 "        if (s E<lt>= 0)\n"
2021 "            break;\n"
2022 msgstr ""
2023 "    for (;;) {\n"
2024 "        s = fscanf(in, \"%d\", &v);\n"
2025 "        if (s E<lt>= 0)\n"
2026 "            break;\n"
2027
2028 #. type: Plain text
2029 #: build/C/man3/fmemopen.3:340
2030 #, no-wrap
2031 msgid ""
2032 "        s = fprintf(out, \"%d \", v * v);\n"
2033 "        if (s == -1)\n"
2034 "            handle_error(\"fprintf\");\n"
2035 "    }\n"
2036 "    fclose(in);\n"
2037 "    fclose(out);\n"
2038 "    printf(\"size=%zu; ptr=%s\\en\", size, ptr);\n"
2039 "    free(ptr);\n"
2040 "    exit(EXIT_SUCCESS);\n"
2041 "}\n"
2042 msgstr ""
2043 "        s = fprintf(out, \"%d \", v * v);\n"
2044 "        if (s == -1)\n"
2045 "            handle_error(\"fprintf\");\n"
2046 "    }\n"
2047 "    fclose(in);\n"
2048 "    fclose(out);\n"
2049 "    printf(\"size=%zu; ptr=%s\\en\", size, ptr);\n"
2050 "    free(ptr);\n"
2051 "    exit(EXIT_SUCCESS);\n"
2052 "}\n"
2053
2054 #. type: Plain text
2055 #: build/C/man3/fmemopen.3:344
2056 msgid "B<fopen>(3), B<fopencookie>(3)"
2057 msgstr "B<fopen>(3), B<fopencookie>(3)"
2058
2059 #. type: TH
2060 #: build/C/man3/fmtmsg.3:13
2061 #, no-wrap
2062 msgid "FMTMSG"
2063 msgstr "FMTMSG"
2064
2065 #. type: Plain text
2066 #: build/C/man3/fmtmsg.3:16
2067 msgid "fmtmsg - print formatted error messages"
2068 msgstr "fmtmsg - 整形されたエラーメッセージを表示する"
2069
2070 #. type: Plain text
2071 #: build/C/man3/fmtmsg.3:19
2072 #, no-wrap
2073 msgid "B<#include E<lt>fmtmsg.hE<gt>>\n"
2074 msgstr "B<#include E<lt>fmtmsg.hE<gt>>\n"
2075
2076 #. type: Plain text
2077 #: build/C/man3/fmtmsg.3:21
2078 #, no-wrap
2079 msgid "B<int fmtmsg(long >I<classification>B<, const char *>I<label>B<,>\n"
2080 msgstr "B<int fmtmsg(long >I<classification>B<, const char *>I<label>B<,>\n"
2081
2082 #. type: Plain text
2083 #: build/C/man3/fmtmsg.3:23
2084 #, no-wrap
2085 msgid "B<           int >I<severity>B<, const char *>I<text>B<,>\n"
2086 msgstr "B<           int >I<severity>B<, const char *>I<text>B<,>\n"
2087
2088 #. type: Plain text
2089 #: build/C/man3/fmtmsg.3:25
2090 #, no-wrap
2091 msgid "B<           const char *>I<action>B<, const char *>I<tag>B<);>\n"
2092 msgstr "B<           const char *>I<action>B<, const char *>I<tag>B<);>\n"
2093
2094 #. type: Plain text
2095 #: build/C/man3/fmtmsg.3:36
2096 msgid ""
2097 "This function displays a message described by its arguments on the "
2098 "device(s)  specified in the I<classification> argument.  For messages "
2099 "written to I<stderr>, the format depends on the B<MSGVERB> environment "
2100 "variable."
2101 msgstr ""
2102 "この関数は、引き数で記述されたメッセージを、 I<classification> 引き数で指定さ"
2103 "れたデバイス上に表示する。 I<stderr> に書き出されるメッセージのフォーマット"
2104 "は、 B<MSGVERB> 環境変数に依存する。"
2105
2106 #. type: Plain text
2107 #: build/C/man3/fmtmsg.3:43
2108 msgid ""
2109 "The I<label> argument identifies the source of the message.  The string must "
2110 "consist of two colon separated parts where the first part has not more than "
2111 "10 and the second part not more than 14 characters."
2112 msgstr ""
2113 "I<label> 引き数はメッセージの発生源を識別する。 この文字列はコロンで区切られ"
2114 "た 2 つの部分から構成されていなければならない。 1 つ目の部分は 10 文字以内で"
2115 "なければならず、 2 つ目の部分は 14 文字以内でなければならない。"
2116
2117 #. type: Plain text
2118 #: build/C/man3/fmtmsg.3:47
2119 msgid "The I<text> argument describes the condition of the error."
2120 msgstr "I<text> 引き数にはエラー条件を記述する。"
2121
2122 #. type: Plain text
2123 #: build/C/man3/fmtmsg.3:52
2124 msgid ""
2125 "The I<action> argument describes possible steps to recover from the error.  "
2126 "If it is printed, it is prefixed by \"TO FIX: \"."
2127 msgstr ""
2128 "I<action> 引き数にはエラーから回復するために利用可能なステップを記述する。 こ"
2129 "れが表示される場合、\"TO FIX: \" が前に付く。"
2130
2131 #. type: Plain text
2132 #: build/C/man3/fmtmsg.3:60
2133 msgid ""
2134 "The I<tag> argument is a reference to the online documentation where more "
2135 "information can be found.  It should contain the I<label> value and a unique "
2136 "identification number."
2137 msgstr ""
2138 "I<tag> 引き数はより多くの情報を見つけるためのオンラインドキュメントへの参照で"
2139 "ある。 これは I<label> 値とユニークな識別番号を含んでいるべきである。"
2140
2141 #. type: SS
2142 #: build/C/man3/fmtmsg.3:60
2143 #, no-wrap
2144 msgid "Dummy arguments"
2145 msgstr "ダミー引き数"
2146
2147 #. type: Plain text
2148 #: build/C/man3/fmtmsg.3:79
2149 msgid ""
2150 "Each of the arguments can have a dummy value.  The dummy classification "
2151 "value B<MM_NULLMC> (0L) does not specify any output, so nothing is printed.  "
2152 "The dummy severity value B<NO_SEV> (0) says that no severity is supplied.  "
2153 "The values B<MM_NULLLBL>, B<MM_NULLTXT>, B<MM_NULLACT>, B<MM_NULLTAG> are "
2154 "synonyms for I<((char\\ *)\\ 0)>, the empty string, and B<MM_NULLSEV> is a "
2155 "synonym for B<NO_SEV>."
2156 msgstr ""
2157 "各引き数にはダミーの値を入れることができる。 ダミーの I<classification> 値 "
2158 "B<MM_NULLMC> (0L) は出力を何も指定しない。そのため何も表示されない。 ダミー"
2159 "の I<severity> 値 B<NO_SEV> (0) は重大度 (severity) が与えられていないことを"
2160 "表す。 値 B<MM_NULLLBL>, B<MM_NULLTXT>, B<MM_NULLACT>, B<MM_NULLTAG> は "
2161 "I<((char\\ *)\\ 0)> と空文字列の別名であり、 B<MM_NULLSEV> は B<NO_SEV> の別"
2162 "名である。"
2163
2164 #. type: SS
2165 #: build/C/man3/fmtmsg.3:79
2166 #, no-wrap
2167 msgid "The classification argument"
2168 msgstr "classification 引き数"
2169
2170 #. type: Plain text
2171 #: build/C/man3/fmtmsg.3:83
2172 msgid ""
2173 "The I<classification> argument is the sum of values describing 4 types of "
2174 "information."
2175 msgstr "I<classification> 引き数は 4 種類の情報を記述する値の和である。"
2176
2177 #. type: Plain text
2178 #: build/C/man3/fmtmsg.3:86
2179 msgid "The first value defines the output channel."
2180 msgstr "最初の値は出力チャンネルを定義する。"
2181
2182 #. type: TP
2183 #: build/C/man3/fmtmsg.3:86
2184 #, no-wrap
2185 msgid "B<MM_PRINT>"
2186 msgstr "B<MM_PRINT>"
2187
2188 #. type: Plain text
2189 #: build/C/man3/fmtmsg.3:90
2190 msgid "Output to I<stderr>."
2191 msgstr "I<stderr> に出力する。"
2192
2193 #. type: TP
2194 #: build/C/man3/fmtmsg.3:90
2195 #, no-wrap
2196 msgid "B<MM_CONSOLE>"
2197 msgstr "B<MM_CONSOLE>"
2198
2199 #. type: Plain text
2200 #: build/C/man3/fmtmsg.3:93
2201 msgid "Output to the system console."
2202 msgstr "システムコンソールに出力する。"
2203
2204 #. type: TP
2205 #: build/C/man3/fmtmsg.3:93
2206 #, no-wrap
2207 msgid "B<MM_PRINT | MM_CONSOLE>"
2208 msgstr "B<MM_PRINT | MM_CONSOLE>"
2209
2210 #. type: Plain text
2211 #: build/C/man3/fmtmsg.3:96
2212 msgid "Output to both."
2213 msgstr "両方に出力する。"
2214
2215 #. type: Plain text
2216 #: build/C/man3/fmtmsg.3:98
2217 msgid "The second value is the source of the error:"
2218 msgstr "2 番目の値はエラーの発生源である:"
2219
2220 #. type: TP
2221 #: build/C/man3/fmtmsg.3:98
2222 #, no-wrap
2223 msgid "B<MM_HARD>"
2224 msgstr "B<MM_HARD>"
2225
2226 #. type: Plain text
2227 #: build/C/man3/fmtmsg.3:101
2228 msgid "A hardware error occurred."
2229 msgstr "ハードウェアエラーが起こった。"
2230
2231 #. type: TP
2232 #: build/C/man3/fmtmsg.3:101
2233 #, no-wrap
2234 msgid "B<MM_FIRM>"
2235 msgstr "B<MM_FIRM>"
2236
2237 #. type: Plain text
2238 #: build/C/man3/fmtmsg.3:104
2239 msgid "A firmware error occurred."
2240 msgstr "ファームウェアエラーが起こった。"
2241
2242 #. type: TP
2243 #: build/C/man3/fmtmsg.3:104
2244 #, no-wrap
2245 msgid "B<MM_SOFT>"
2246 msgstr "B<MM_SOFT>"
2247
2248 #. type: Plain text
2249 #: build/C/man3/fmtmsg.3:107
2250 msgid "A software error occurred."
2251 msgstr "ソフトウェアエラーが起こった。"
2252
2253 #. type: Plain text
2254 #: build/C/man3/fmtmsg.3:109
2255 msgid "The third value encodes the detector of the problem:"
2256 msgstr "3 番目の値は問題の検知を行ったものをエンコードする:"
2257
2258 #. type: TP
2259 #: build/C/man3/fmtmsg.3:109
2260 #, no-wrap
2261 msgid "B<MM_APPL>"
2262 msgstr "B<MM_APPL>"
2263
2264 #. type: Plain text
2265 #: build/C/man3/fmtmsg.3:112
2266 msgid "It is detected by an application."
2267 msgstr "アプリケーションによって検知された。"
2268
2269 #. type: TP
2270 #: build/C/man3/fmtmsg.3:112
2271 #, no-wrap
2272 msgid "B<MM_UTIL>"
2273 msgstr "B<MM_UTIL>"
2274
2275 #. type: Plain text
2276 #: build/C/man3/fmtmsg.3:115
2277 msgid "It is detected by a utility."
2278 msgstr "ユーティリティによって検知された。"
2279
2280 #. type: TP
2281 #: build/C/man3/fmtmsg.3:115
2282 #, no-wrap
2283 msgid "B<MM_OPSYS>"
2284 msgstr "B<MM_OPSYS>"
2285
2286 #. type: Plain text
2287 #: build/C/man3/fmtmsg.3:118
2288 msgid "It is detected by the operating system."
2289 msgstr "オペレーティングシステムによって検知された。"
2290
2291 #. type: Plain text
2292 #: build/C/man3/fmtmsg.3:120
2293 msgid "The fourth value shows the severity of the incident:"
2294 msgstr "4 番目の値は問題の重大度を表す:"
2295
2296 #. type: TP
2297 #: build/C/man3/fmtmsg.3:120
2298 #, no-wrap
2299 msgid "B<MM_RECOVER>"
2300 msgstr "B<MM_RECOVER>"
2301
2302 #. type: Plain text
2303 #: build/C/man3/fmtmsg.3:123
2304 msgid "It is a recoverable error."
2305 msgstr "回復可能なエラーである。"
2306
2307 #. type: TP
2308 #: build/C/man3/fmtmsg.3:123
2309 #, no-wrap
2310 msgid "B<MM_NRECOV>"
2311 msgstr "B<MM_NRECOV>"
2312
2313 #. type: Plain text
2314 #: build/C/man3/fmtmsg.3:126
2315 msgid "It is a nonrecoverable error."
2316 msgstr "回復不可能なエラーである。"
2317
2318 #. type: SS
2319 #: build/C/man3/fmtmsg.3:126
2320 #, no-wrap
2321 msgid "The severity argument"
2322 msgstr "severity 引き数"
2323
2324 #. type: Plain text
2325 #: build/C/man3/fmtmsg.3:130
2326 msgid "The I<severity> argument can take one of the following values:"
2327 msgstr "I<severity> 引き数は以下の 1 つの値をとることができる。"
2328
2329 #. type: TP
2330 #: build/C/man3/fmtmsg.3:130
2331 #, no-wrap
2332 msgid "B<MM_NOSEV>"
2333 msgstr "B<MM_NOSEV>"
2334
2335 #. type: Plain text
2336 #: build/C/man3/fmtmsg.3:133
2337 msgid "No severity is printed."
2338 msgstr "重大度は表示されない。"
2339
2340 #. type: TP
2341 #: build/C/man3/fmtmsg.3:133
2342 #, no-wrap
2343 msgid "B<MM_HALT>"
2344 msgstr "B<MM_HALT>"
2345
2346 #. type: Plain text
2347 #: build/C/man3/fmtmsg.3:136
2348 msgid "This value is printed as HALT."
2349 msgstr "この値は HALT として表示される。"
2350
2351 #. type: TP
2352 #: build/C/man3/fmtmsg.3:136
2353 #, no-wrap
2354 msgid "B<MM_ERROR>"
2355 msgstr "B<MM_ERROR>"
2356
2357 #. type: Plain text
2358 #: build/C/man3/fmtmsg.3:139
2359 msgid "This value is printed as ERROR."
2360 msgstr "この値は ERROR として表示される。"
2361
2362 #. type: TP
2363 #: build/C/man3/fmtmsg.3:139
2364 #, no-wrap
2365 msgid "B<MM_WARNING>"
2366 msgstr "B<MM_WARNING>"
2367
2368 #. type: Plain text
2369 #: build/C/man3/fmtmsg.3:142
2370 msgid "This value is printed as WARNING."
2371 msgstr "この値は WARNING として表示される。"
2372
2373 #. type: TP
2374 #: build/C/man3/fmtmsg.3:142
2375 #, no-wrap
2376 msgid "B<MM_INFO>"
2377 msgstr "B<MM_INFO>"
2378
2379 #. type: Plain text
2380 #: build/C/man3/fmtmsg.3:145
2381 msgid "This value is printed as INFO."
2382 msgstr "この値は INFO として表示される。"
2383
2384 #. type: Plain text
2385 #: build/C/man3/fmtmsg.3:152
2386 msgid ""
2387 "The numeric values are between 0 and 4.  Using B<addseverity>(3)  or the "
2388 "environment variable B<SEV_LEVEL> you can add more levels and strings to "
2389 "print."
2390 msgstr ""
2391 "数値の場合は 0 から 4 である。 B<addseverity>(3)  または環境変数 "
2392 "B<SEV_LEVEL> を使うことにより、表示するレベルと文字列を更に追加できる。"
2393
2394 #. type: Plain text
2395 #: build/C/man3/fmtmsg.3:154
2396 msgid "The function can return 4 values:"
2397 msgstr "関数は 4 つの値を返す:"
2398
2399 #. type: TP
2400 #: build/C/man3/fmtmsg.3:154
2401 #, no-wrap
2402 msgid "B<MM_OK>"
2403 msgstr "B<MM_OK>"
2404
2405 #. type: Plain text
2406 #: build/C/man3/fmtmsg.3:157
2407 msgid "Everything went smooth."
2408 msgstr "全てがうまくいった。"
2409
2410 #. type: TP
2411 #: build/C/man3/fmtmsg.3:157
2412 #, no-wrap
2413 msgid "B<MM_NOTOK>"
2414 msgstr "B<MM_NOTOK>"
2415
2416 #. type: Plain text
2417 #: build/C/man3/fmtmsg.3:160
2418 msgid "Complete failure."
2419 msgstr "完全に失敗した。"
2420
2421 #. type: TP
2422 #: build/C/man3/fmtmsg.3:160
2423 #, no-wrap
2424 msgid "B<MM_NOMSG>"
2425 msgstr "B<MM_NOMSG>"
2426
2427 #. type: Plain text
2428 #: build/C/man3/fmtmsg.3:164
2429 msgid "Error writing to I<stderr>."
2430 msgstr "I<stderr> に書き込むときにエラーが起こった。"
2431
2432 #. type: TP
2433 #: build/C/man3/fmtmsg.3:164
2434 #, no-wrap
2435 msgid "B<MM_NOCON>"
2436 msgstr "B<MM_NOCON>"
2437
2438 #. type: Plain text
2439 #: build/C/man3/fmtmsg.3:167
2440 msgid "Error writing to the console."
2441 msgstr "コンソールに書き込むときにエラーが起こった。"
2442
2443 #. type: SH
2444 #: build/C/man3/fmtmsg.3:167
2445 #, no-wrap
2446 msgid "ENVIRONMENT"
2447 msgstr "環境変数"
2448
2449 #. type: Plain text
2450 #: build/C/man3/fmtmsg.3:178
2451 msgid ""
2452 "The environment variable B<MSGVERB> (\"message verbosity\") can be used to "
2453 "suppress parts of the output to I<stderr>.  (It does not influence output to "
2454 "the console.)  When this variable is defined, is non-NULL, and is a colon-"
2455 "separated list of valid keywords, then only the parts of the message "
2456 "corresponding to these keywords is printed.  Valid keywords are \"label\", "
2457 "\"severity\", \"text\", \"action\" and \"tag\"."
2458 msgstr ""
2459 "環境変数 B<MSGVERB> (\"message verbosity\") は I<stderr> への出力の一部を抑制"
2460 "するのに使うことができる。 (コンソールへの出力には影響しない。)  この変数が定"
2461 "義されて、NULL でなく、 コロンで区切られた有効なキーワードのリストである場"
2462 "合、 キーワードに対応するメッセージの一部のみが表示される。 有効なキーワード"
2463 "は \"label\", \"severity\", \"text\", \"action\", \"tag\" である。"
2464
2465 #. type: Plain text
2466 #: build/C/man3/fmtmsg.3:190
2467 msgid ""
2468 "The environment variable B<SEV_LEVEL> can be used to introduce new severity "
2469 "levels.  By default, only the five severity levels described above are "
2470 "available.  Any other numeric value would make B<fmtmsg>()  print nothing.  "
2471 "If the user puts B<SEV_LEVEL> with a format like"
2472 msgstr ""
2473 "環境変数 B<SEV_LEVEL> は新しい重大度レベルを導入するのに使用できる。 デフォル"
2474 "トでは、上記の 5 つの重大度レベルのみが利用可能である。 他の数値の場合、 "
2475 "B<fmtmsg>()  は何も表示しない。 B<fmtmsg>()  を初めて呼び出す前に、ユーザが "
2476 "B<SEV_LEVEL> を"
2477
2478 #. type: Plain text
2479 #: build/C/man3/fmtmsg.3:193
2480 msgid "SEV_LEVEL=[description[:description[:...]]]"
2481 msgstr "SEV_LEVEL=[description[:description[:...]]]"
2482
2483 #. type: Plain text
2484 #: build/C/man3/fmtmsg.3:198
2485 msgid ""
2486 "in the environment of the process before the first call to B<fmtmsg>(), "
2487 "where each description is of the form"
2488 msgstr ""
2489 "のような形式でプロセスの環境に設定すると、 B<fmtmsg>()  は (標準のレベル 0-4 "
2490 "に加えて) level に指定された値も受け付け、 そのようなレベルの問題が発生すると"
2491 "指定された printstring を表示する。 各 description は"
2492
2493 #. type: Plain text
2494 #: build/C/man3/fmtmsg.3:201
2495 msgid "severity-keyword,level,printstring"
2496 msgstr "severity-keyword,level,printstring"
2497
2498 #. type: Plain text
2499 #: build/C/man3/fmtmsg.3:208
2500 msgid ""
2501 "then B<fmtmsg>()  will also accept the indicated values for the level (in "
2502 "addition to the standard levels 0-4), and use the indicated printstring when "
2503 "such a level occurs."
2504 msgstr "という形式である。"
2505
2506 #. type: Plain text
2507 #: build/C/man3/fmtmsg.3:222
2508 msgid ""
2509 "The severity-keyword part is not used by B<fmtmsg>()  but it has to be "
2510 "present.  The level part is a string representation of a number.  The "
2511 "numeric value must be a number greater than 4.  This value must be used in "
2512 "the severity argument of B<fmtmsg>()  to select this class.  It is not "
2513 "possible to overwrite any of the predefined classes.  The printstring is the "
2514 "string printed when a message of this class is processed by B<fmtmsg>()."
2515 msgstr ""
2516 "severity-keyword 部は B<fmtmsg>()  に使用されないが、存在しなければならな"
2517 "い。 level 部は数値を文字列で表したものである。 数値は 4 より大きい値でなけれ"
2518 "ばならない。 この値は B<fmtmsg>()  の severity 引き数で使用されなければなら"
2519 "ず、この重大度を選択する。 前もって宣言された重大度を上書きすることはできな"
2520 "い。 printstring は、 この重大度のメッセージが B<fmtmsg>()  によって生成され"
2521 "た場合に表示される文字列である。"
2522
2523 #. type: Plain text
2524 #: build/C/man3/fmtmsg.3:225
2525 msgid "B<fmtmsg>()  is provided in glibc since version 2.1."
2526 msgstr "B<fmtmsg>()  は、バージョン 2.1 以降の glibc で提供されている。"
2527
2528 #. type: Plain text
2529 #: build/C/man3/fmtmsg.3:231
2530 msgid ""
2531 "Before glibc 2.16, the B<fmtmsg>()  function uses a static variable that is "
2532 "not protected, so it is not thread-safe."
2533 msgstr ""
2534 "glibc 2.16 より前のバージョンでは、 B<fmtmsg>() 関数は、 保護されていない静的"
2535 "な変数を使うため、 スレッドセーフではない。"
2536
2537 #.  Modified in commit 7724defcf8873116fe4efab256596861eef21a94
2538 #. type: Plain text
2539 #: build/C/man3/fmtmsg.3:237
2540 msgid ""
2541 "Since glibc 2.16, the B<fmtmsg>()  function uses a lock to protect the "
2542 "static variable, so it is thread-safe."
2543 msgstr ""
2544 "glibc 2.16 以降では、 B<fmtmsg>() 関数はロックを使って静的な変数を保護してお"
2545 "り、 スレッドセーフである。"
2546
2547 #. type: Plain text
2548 #: build/C/man3/fmtmsg.3:252
2549 msgid ""
2550 "The functions B<fmtmsg>()  and B<addseverity>(3), and environment variables "
2551 "B<MSGVERB> and B<SEV_LEVEL> come from System V.  The function B<fmtmsg>()  "
2552 "and the environment variable B<MSGVERB> are described in POSIX.1-2001."
2553 msgstr ""
2554 "関数 B<fmtmsg>()  と B<addseverity>(3)  と環境変数 B<MSGVERB> と "
2555 "B<SEV_LEVEL> は System V に由来している。 関数 B<fmtmsg>()  と環境変数 "
2556 "B<MSGVERB> は POSIX.1-2001 に記述されている。"
2557
2558 #. type: Plain text
2559 #: build/C/man3/fmtmsg.3:256
2560 msgid ""
2561 "System V and UnixWare man pages tell us that these functions have been "
2562 "replaced by \"pfmt() and addsev()\" or by \"pfmt(), vpfmt(), lfmt(), and "
2563 "vlfmt()\", and will be removed later."
2564 msgstr ""
2565 "System V と UnixWare の man ページには、 「これらの関数は \"pfmt() と "
2566 "addsev()\" または \"pfmt(), vpfmt(), lfmt(), vlfmt()\" で置き換えられてお"
2567 "り、 将来は削除される予定である」と書かれている。"
2568
2569 #. type: Plain text
2570 #: build/C/man3/fmtmsg.3:261
2571 #, no-wrap
2572 msgid ""
2573 "#include E<lt>stdio.hE<gt>\n"
2574 "#include E<lt>stdlib.hE<gt>\n"
2575 "#include E<lt>fmtmsg.hE<gt>\n"
2576 msgstr ""
2577 "#include E<lt>stdio.hE<gt>\n"
2578 "#include E<lt>stdlib.hE<gt>\n"
2579 "#include E<lt>fmtmsg.hE<gt>\n"
2580
2581 #. type: Plain text
2582 #: build/C/man3/fmtmsg.3:267
2583 #, no-wrap
2584 msgid ""
2585 "int\n"
2586 "main(void)\n"
2587 "{\n"
2588 "    long class = MM_PRINT | MM_SOFT | MM_OPSYS | MM_RECOVER;\n"
2589 "    int err;\n"
2590 msgstr ""
2591 "int\n"
2592 "main(void)\n"
2593 "{\n"
2594 "    long class = MM_PRINT | MM_SOFT | MM_OPSYS | MM_RECOVER;\n"
2595 "    int err;\n"
2596
2597 #. type: Plain text
2598 #: build/C/man3/fmtmsg.3:288
2599 #, no-wrap
2600 msgid ""
2601 "    err = fmtmsg(class, \"util-linux:mount\", MM_ERROR,\n"
2602 "                \"unknown mount option\", \"See mount(8).\",\n"
2603 "                \"util-linux:mount:017\");\n"
2604 "    switch (err) {\n"
2605 "    case MM_OK:\n"
2606 "        break;\n"
2607 "    case MM_NOTOK:\n"
2608 "        printf(\"Nothing printed\\en\");\n"
2609 "        break;\n"
2610 "    case MM_NOMSG:\n"
2611 "        printf(\"Nothing printed to stderr\\en\");\n"
2612 "        break;\n"
2613 "    case MM_NOCON:\n"
2614 "        printf(\"No console output\\en\");\n"
2615 "        break;\n"
2616 "    default:\n"
2617 "        printf(\"Unknown error from fmtmsg()\\en\");\n"
2618 "    }\n"
2619 "    exit(EXIT_SUCCESS);\n"
2620 "}\n"
2621 msgstr ""
2622 "    err = fmtmsg(class, \"util-linux:mount\", MM_ERROR,\n"
2623 "                \"unknown mount option\", \"See mount(8).\",\n"
2624 "                \"util-linux:mount:017\");\n"
2625 "    switch (err) {\n"
2626 "    case MM_OK:\n"
2627 "      break;\n"
2628 "    case MM_NOTOK:\n"
2629 "        printf(\"Nothing printed\\en\");\n"
2630 "        break;\n"
2631 "    case MM_NOMSG:\n"
2632 "        printf(\"Nothing printed to stderr\\en\");\n"
2633 "        break;\n"
2634 "    case MM_NOCON:\n"
2635 "        printf(\"No console output\\en\");\n"
2636 "        break;\n"
2637 "    default:\n"
2638 "        printf(\"Unknown error from fmtmsg()\\en\");\n"
2639 "    }\n"
2640 "    exit(EXIT_SUCCESS);\n"
2641 "}\n"
2642
2643 #. type: Plain text
2644 #: build/C/man3/fmtmsg.3:291
2645 msgid "The output should be:"
2646 msgstr "出力は"
2647
2648 #. type: Plain text
2649 #: build/C/man3/fmtmsg.3:295
2650 #, no-wrap
2651 msgid ""
2652 "    util-linux:mount: ERROR: unknown mount option\n"
2653 "    TO FIX: See mount(8).  util-linux:mount:017\n"
2654 msgstr ""
2655 "    util-linux:mount: ERROR: unknown mount option\n"
2656 "    TO FIX: See mount(8).  util-linux:mount:017\n"
2657
2658 #. type: Plain text
2659 #: build/C/man3/fmtmsg.3:298
2660 msgid "and after"
2661 msgstr "のようになり、"
2662
2663 #. type: Plain text
2664 #: build/C/man3/fmtmsg.3:301
2665 #, no-wrap
2666 msgid "    MSGVERB=text:action; export MSGVERB\n"
2667 msgstr "    MSGVERB=text:action; export MSGVERB\n"
2668
2669 #. type: Plain text
2670 #: build/C/man3/fmtmsg.3:304
2671 msgid "the output becomes:"
2672 msgstr "を実行すると、次のようになる。"
2673
2674 #. type: Plain text
2675 #: build/C/man3/fmtmsg.3:308
2676 #, no-wrap
2677 msgid ""
2678 "    unknown mount option\n"
2679 "    TO FIX: See mount(8).\n"
2680 msgstr ""
2681 "    unknown mount option\n"
2682 "    TO FIX: See mount(8).\n"
2683
2684 #. type: Plain text
2685 #: build/C/man3/fmtmsg.3:312
2686 msgid "B<addseverity>(3), B<perror>(3)"
2687 msgstr "B<addseverity>(3), B<perror>(3)"
2688
2689 #. type: TH
2690 #: build/C/man3/fopen.3:44
2691 #, no-wrap
2692 msgid "FOPEN"
2693 msgstr "FOPEN"
2694
2695 #. type: TH
2696 #: build/C/man3/fopen.3:44
2697 #, no-wrap
2698 msgid "2012-04-22"
2699 msgstr "2012-04-22"
2700
2701 #. type: Plain text
2702 #: build/C/man3/fopen.3:47
2703 msgid "fopen, fdopen, freopen - stream open functions"
2704 msgstr "fopen, fdopen, freopen - ストリームを開く関数"
2705
2706 #. type: Plain text
2707 #: build/C/man3/fopen.3:52
2708 #, no-wrap
2709 msgid "B<FILE *fopen(const char *>I<path>B<, const char *>I<mode>B<);>\n"
2710 msgstr "B<FILE *fopen(const char *>I<path>B<, const char *>I<mode>B<);>\n"
2711
2712 #. type: Plain text
2713 #: build/C/man3/fopen.3:54
2714 #, no-wrap
2715 msgid "B<FILE *fdopen(int >I<fd>B<, const char *>I<mode>B<);>\n"
2716 msgstr "B<FILE *fdopen(int >I<fd>B<, const char *>I<mode>B<);>\n"
2717
2718 #. type: Plain text
2719 #: build/C/man3/fopen.3:56
2720 #, no-wrap
2721 msgid "B<FILE *freopen(const char *>I<path>B<, const char *>I<mode>B<, FILE *>I<stream>B<);>\n"
2722 msgstr "B<FILE *freopen(const char *>I<path>B<, const char *>I<mode>B<, FILE *>I<stream>B<);>\n"
2723
2724 #. type: Plain text
2725 #: build/C/man3/fopen.3:65
2726 msgid ""
2727 "B<fdopen>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
2728 msgstr ""
2729 "B<fdopen>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
2730
2731 #. type: Plain text
2732 #: build/C/man3/fopen.3:71
2733 msgid ""
2734 "The B<fopen>()  function opens the file whose name is the string pointed to "
2735 "by I<path> and associates a stream with it."
2736 msgstr ""
2737 "B<fopen>()  関数は、 I<path> で指定された名前のファイルを開き、ストリームと結"
2738 "びつける。"
2739
2740 #. type: Plain text
2741 #: build/C/man3/fopen.3:76
2742 msgid ""
2743 "The argument I<mode> points to a string beginning with one of the following "
2744 "sequences (possibly followed by additional characters, as described below):"
2745 msgstr ""
2746 "引数 I<mode> は、以下に続く文字のひとつから始まる文字列へのポインタであ\n"
2747 "る (以下の述べる、追加の文字が後に続くこともある):"
2748
2749 #. type: TP
2750 #: build/C/man3/fopen.3:76
2751 #, no-wrap
2752 msgid "B<r>"
2753 msgstr "B<r>"
2754
2755 #. type: Plain text
2756 #: build/C/man3/fopen.3:80
2757 msgid ""
2758 "Open text file for reading.  The stream is positioned at the beginning of "
2759 "the file."
2760 msgstr ""
2761 "テキストファイルを読み出すために開く。 ストリームはファイルの先頭に位置され"
2762 "る。"
2763
2764 #. type: TP
2765 #: build/C/man3/fopen.3:80
2766 #, no-wrap
2767 msgid "B<r+>"
2768 msgstr "B<r+>"
2769
2770 #. type: Plain text
2771 #: build/C/man3/fopen.3:84
2772 msgid ""
2773 "Open for reading and writing.  The stream is positioned at the beginning of "
2774 "the file."
2775 msgstr ""
2776 "読み出しおよび書き込みするために開く。 ストリームはファイルの先頭に位置され"
2777 "る。"
2778
2779 #. type: TP
2780 #: build/C/man3/fopen.3:84
2781 #, no-wrap
2782 msgid "B<w>"
2783 msgstr "B<w>"
2784
2785 #. type: Plain text
2786 #: build/C/man3/fopen.3:88
2787 msgid ""
2788 "Truncate file to zero length or create text file for writing.  The stream is "
2789 "positioned at the beginning of the file."
2790 msgstr ""
2791 "ファイルを書き込みのために開く。 ファイルが既に存在する場合には長さゼロに切り"
2792 "詰める。 ファイルがなかった場合には新たに作成する。 ストリームはファイルの先"
2793 "頭に位置される。"
2794
2795 #. type: TP
2796 #: build/C/man3/fopen.3:88
2797 #, no-wrap
2798 msgid "B<w+>"
2799 msgstr "B<w+>"
2800
2801 #. type: Plain text
2802 #: build/C/man3/fopen.3:94
2803 msgid ""
2804 "Open for reading and writing.  The file is created if it does not exist, "
2805 "otherwise it is truncated.  The stream is positioned at the beginning of the "
2806 "file."
2807 msgstr ""
2808 "読み出しおよび書き込みのために開く。 ファイルが存在していない場合には新たに作"
2809 "成する。 存在している場合には長さゼロに切り詰められる。 ストリームはファイル"
2810 "の先頭に位置される。"
2811
2812 #. type: TP
2813 #: build/C/man3/fopen.3:94 build/C/man3/scanf.3:447
2814 #, no-wrap
2815 msgid "B<a>"
2816 msgstr "B<a>"
2817
2818 #. type: Plain text
2819 #: build/C/man3/fopen.3:99
2820 msgid ""
2821 "Open for appending (writing at end of file).  The file is created if it does "
2822 "not exist.  The stream is positioned at the end of the file."
2823 msgstr ""
2824 "追加 (ファイルの最後に書き込む) のために開く。 ファイルが存在していない場合に"
2825 "は新たに作成する。 ストリームはファイルの最後に位置される。"
2826
2827 #. type: TP
2828 #: build/C/man3/fopen.3:99
2829 #, no-wrap
2830 msgid "B<a+>"
2831 msgstr "B<a+>"
2832
2833 #. type: Plain text
2834 #: build/C/man3/fopen.3:105
2835 msgid ""
2836 "Open for reading and appending (writing at end of file).  The file is "
2837 "created if it does not exist.  The initial file position for reading is at "
2838 "the beginning of the file, but output is always appended to the end of the "
2839 "file."
2840 msgstr ""
2841 "読み出しおよび追加 (ファイルの最後に書き込む) のために開く。 ファイルが存在し"
2842 "ていない場合には新たに作成する。 読み出しの初期ファイル位置はファイルの先頭で"
2843 "あるが、 書き込みは常にファイルの最後に追加される。"
2844
2845 #. type: Plain text
2846 #: build/C/man3/fopen.3:118
2847 msgid ""
2848 "The I<mode> string can also include the letter \\(aqb\\(aq either as a last "
2849 "character or as a character between the characters in any of the two-"
2850 "character strings described above.  This is strictly for compatibility with "
2851 "C89 and has no effect; the \\(aqb\\(aq is ignored on all POSIX conforming "
2852 "systems, including Linux.  (Other systems may treat text files and binary "
2853 "files differently, and adding the \\(aqb\\(aq may be a good idea if you do I/"
2854 "O to a binary file and expect that your program may be ported to non-UNIX "
2855 "environments.)"
2856 msgstr ""
2857 "I<mode> 文字列には文字 \\(aqb\\(aq を追加指定することができ、 I<mode> 文字列"
2858 "の最後の文字として指定する。 上記のうち 2 文字のモードの場合には 2 つの文字の"
2859 "間に指定することもできる。 これは C89 との互換性のためだけに用意された もので"
2860 "あり、関数の実行に対してはいかなる影響も持たない。 すなわち、Linux を含む全て"
2861 "の POSIX 準拠システムでは、 この \\(aqb\\(aq は無視される。 (その他のシステム"
2862 "ではテキストファイルとバイナリファイルを別々に扱うものもあるので、 もしバイナ"
2863 "リファイルの入出力を行い、 そのプログラムが非 UNIX 環境へ移植されると予測する"
2864 "なら、 \\(aqb\\(aqを付けておくのは良い考えである)"
2865
2866 #. type: Plain text
2867 #: build/C/man3/fopen.3:121
2868 msgid "See NOTES below for details of glibc extensions for I<mode>."
2869 msgstr "I<mode> の glibc による拡張の詳細については下記の「注意」を参照。"
2870
2871 #. type: Plain text
2872 #: build/C/man3/fopen.3:126
2873 msgid ""
2874 "Any created files will have mode B<S_IRUSR> | B<S_IWUSR> | B<S_IRGRP> | "
2875 "B<S_IWGRP> | B<S_IROTH> | B<S_IWOTH> (0666), as modified by the process's "
2876 "umask value (see B<umask>(2))."
2877 msgstr ""
2878 "すべての生成されたファイルは、 B<S_IRUSR> | B<S_IWUSR> | B<S_IRGRP> | "
2879 "B<S_IWGRP> | B<S_IROTH> | B<S_IWOTH> (0666) のモードを そのプロセスの umask "
2880 "値によって修正したモードを持つ (B<umask>(2)  を見よ)。"
2881
2882 #. type: Plain text
2883 #: build/C/man3/fopen.3:141
2884 msgid ""
2885 "Reads and writes may be intermixed on read/write streams in any order.  Note "
2886 "that ANSI C requires that a file positioning function intervene between "
2887 "output and input, unless an input operation encounters end-of-file.  (If "
2888 "this condition is not met, then a read is allowed to return the result of "
2889 "writes other than the most recent.)  Therefore it is good practice (and "
2890 "indeed sometimes necessary under Linux) to put an B<fseek>(3)  or "
2891 "B<fgetpos>(3)  operation between write and read operations on such a "
2892 "stream.  This operation may be an apparent no-op (as in I<fseek(..., 0L, "
2893 "SEEK_CUR)> called for its synchronizing side effect)."
2894 msgstr ""
2895 "読み出し/書き込みストリームに対しては任意の順序で読み書きを行うことができ"
2896 "る。 ただし ANSI C では、 (入力操作がファイルの末尾に到達した場合を除いて)  "
2897 "出力と入力の間にはファイルの位置決め関数を 挟まなければならないことになってい"
2898 "ることに注意されたい (この条件を満足しない場合には、読み込み操作は、 最後に書"
2899 "き込まれたものでなく、以前に書き込まれた 値を返すことを許されている)。 した"
2900 "がって、このようなストリームでの読み書き操作の間には B<fseek>(3)  または "
2901 "B<fgetpos>(3)  操作を挟んでおくと良いだろう (Linux では本当に必要となることも"
2902 "ときどきある)。 この操作は見かけ上何もしない操作 (no-op) でも良い (例えば "
2903 "I<fseek(..., 0L, SEEK_CUR)> を その副次的効果である同期のためだけに呼べば良"
2904 "い)。"
2905
2906 #. type: Plain text
2907 #: build/C/man3/fopen.3:146
2908 msgid ""
2909 "Opening a file in append mode (B<a> as the first character of I<mode>)  "
2910 "causes all subsequent write operations to this stream to occur at end-of-"
2911 "file, as if preceded the call:"
2912 msgstr ""
2913 "ファイルを追加モード (I<mode> の最初の文字を B<a> にする) で開くと、\n"
2914 "このストリームに対する書き込み操作は全て (先に以下の呼び出しを行った\n"
2915 "かのように) ファイルの末尾で行われる。"
2916
2917 #. type: Plain text
2918 #: build/C/man3/fopen.3:149
2919 #, no-wrap
2920 msgid "    fseek(stream, 0, SEEK_END);\n"
2921 msgstr "    fseek(stream, 0, SEEK_END);\n"
2922
2923 #. type: Plain text
2924 #: build/C/man3/fopen.3:171
2925 msgid ""
2926 "The B<fdopen>()  function associates a stream with the existing file "
2927 "descriptor, I<fd>.  The I<mode> of the stream (one of the values \"r\", \"r+"
2928 "\", \"w\", \"w+\", \"a\", \"a+\")  must be compatible with the mode of the "
2929 "file descriptor.  The file position indicator of the new stream is set to "
2930 "that belonging to I<fd>, and the error and end-of-file indicators are "
2931 "cleared.  Modes \"w\" or \"w+\" do not cause truncation of the file.  The "
2932 "file descriptor is not dup'ed, and will be closed when the stream created by "
2933 "B<fdopen>()  is closed.  The result of applying B<fdopen>()  to a shared "
2934 "memory object is undefined."
2935 msgstr ""
2936 "B<fdopen>()  関数は、既存のファイル記述子 I<fd> にストリームを結びつける。 ス"
2937 "トリームの I<mode> (\"r\", \"r+\", \"w\", \"w+\", \"a\", \"a+\" のいずれか) "
2938 "は ファイル記述子のモードと互換のものでなければならない。 新しいストリームの"
2939 "ファイル位置指示子は I<fd> に属している値に設定される。 error と end-of-file "
2940 "の各指示子はクリアされる。 \"w\" および \"w+\" モードでのファイルの切り詰めは"
2941 "行われない。 ファイル記述子の複製は行なわれない。 B<fdopen>()  で作成されたス"
2942 "トリームが閉じられたときにファイル記述子も 閉じられる。 共有メモリのオブジェ"
2943 "クトへ B<fdopen>()  を行ったときの結果は定義されていない。"
2944
2945 #. type: Plain text
2946 #: build/C/man3/fopen.3:189
2947 msgid ""
2948 "The B<freopen>()  function opens the file whose name is the string pointed "
2949 "to by I<path> and associates the stream pointed to by I<stream> with it.  "
2950 "The original stream (if it exists) is closed.  The I<mode> argument is used "
2951 "just as in the B<fopen>()  function.  The primary use of the B<freopen>()  "
2952 "function is to change the file associated with a standard text stream "
2953 "(I<stderr>, I<stdin>, or I<stdout>)."
2954 msgstr ""
2955 "B<freopen>()  関数は I<path> で名前が指定されたファイルを開き、 I<stream> で"
2956 "指定されたストリームに、そのファイルを結びつける。 もとのストリームは (もし存"
2957 "在する場合には) 閉じられる。 I<mode> 引数は B<fopen>()  関数と同じ形で使われ"
2958 "る。 B<freopen>()  関数の主な用途は、標準テキストストリーム (I<stderr>, "
2959 "I<stdin>, I<stdout>)  と対応付けられているファイルを変更することである。"
2960
2961 #. type: Plain text
2962 #: build/C/man3/fopen.3:201
2963 msgid ""
2964 "Upon successful completion B<fopen>(), B<fdopen>()  and B<freopen>()  return "
2965 "a I<FILE> pointer.  Otherwise, NULL is returned and I<errno> is set to "
2966 "indicate the error."
2967 msgstr ""
2968 "B<fopen>(), B<fdopen>(), B<freopen>()  は成功すると I<FILE> 型のポインタを返"
2969 "す。 失敗すると NULL が返され、 I<errno> がエラーを示す値にセットされる。"
2970
2971 #. type: TP
2972 #: build/C/man3/fopen.3:202 build/C/man3/fseek.3:142
2973 #: build/C/man3/getline.3:128 build/C/man2/link.2:282 build/C/man2/llseek.2:77
2974 #: build/C/man2/lseek.2:192 build/C/man2/open.2:825 build/C/man2/open.2:833
2975 #: build/C/man2/open.2:838 build/C/man2/open_by_handle_at.2:273
2976 #: build/C/man2/open_by_handle_at.2:277 build/C/man2/open_by_handle_at.2:325
2977 #: build/C/man2/pipe.2:143 build/C/man2/read.2:126 build/C/man2/read.2:137
2978 #: build/C/man2/readlink.2:169 build/C/man2/readlink.2:178
2979 #: build/C/man2/readv.2:200 build/C/man2/rename.2:251
2980 #: build/C/man2/rename.2:376 build/C/man2/rename.2:385 build/C/man2/rmdir.2:67
2981 #: build/C/man3/scanf.3:565 build/C/man2/unlink.2:252 build/C/man2/write.2:154
2982 #, no-wrap
2983 msgid "B<EINVAL>"
2984 msgstr "B<EINVAL>"
2985
2986 #. type: Plain text
2987 #: build/C/man3/fopen.3:212
2988 msgid ""
2989 "The I<mode> provided to B<fopen>(), B<fdopen>(), or B<freopen>()  was "
2990 "invalid."
2991 msgstr ""
2992 "B<fopen>(), B<fdopen>(), B<freopen>()  で与えられた I<mode> が不適切である。"
2993
2994 #. type: Plain text
2995 #: build/C/man3/fopen.3:222
2996 msgid ""
2997 "The B<fopen>(), B<fdopen>()  and B<freopen>()  functions may also fail and "
2998 "set I<errno> for any of the errors specified for the routine B<malloc>(3)."
2999 msgstr ""
3000 "B<fopen>(), B<fdopen>(), B<freopen>()  関数は B<malloc>(3)  ルーチンで規定さ"
3001 "れているエラーでも失敗することがあり、 その時は対応する値に I<errno> をセット"
3002 "する。"
3003
3004 #. type: Plain text
3005 #: build/C/man3/fopen.3:229
3006 msgid ""
3007 "The B<fopen>()  function may also fail and set I<errno> for any of the "
3008 "errors specified for the routine B<open>(2)."
3009 msgstr ""
3010 "B<fopen>()  関数は B<open>(2)  ルーチンで規定されているエラーでも失敗すること"
3011 "があり、 その時は対応する値に I<errno> をセットする。"
3012
3013 #. type: Plain text
3014 #: build/C/man3/fopen.3:236
3015 msgid ""
3016 "The B<fdopen>()  function may also fail and set I<errno> for any of the "
3017 "errors specified for the routine B<fcntl>(2)."
3018 msgstr ""
3019 "B<fdopen>()  関数は B<fcntl>(2)  ルーチンで規定されているエラーでも失敗するこ"
3020 "とがあり、 その時は対応する値に I<errno> をセットする。"
3021
3022 #. type: Plain text
3023 #: build/C/man3/fopen.3:246
3024 msgid ""
3025 "The B<freopen>()  function may also fail and set I<errno> for any of the "
3026 "errors specified for the routines B<open>(2), B<fclose>(3), and B<fflush>(3)."
3027 msgstr ""
3028 "B<freopen>()  関数は B<open>(2), B<fclose>(3), B<fflush>(3)  各ルーチンで規定"
3029 "されているエラーでも失敗することがあり、 その時は対応する値に I<errno> をセッ"
3030 "トする。"
3031
3032 #. type: Plain text
3033 #: build/C/man3/fopen.3:255
3034 msgid ""
3035 "The B<fopen>()  and B<freopen>()  functions conform to C89.  The "
3036 "B<fdopen>()  function conforms to POSIX.1-1990."
3037 msgstr ""
3038 "B<fopen>()  関数と B<freopen>()  関数は C89に準拠している。 B<fdopen>()  関数"
3039 "は POSIX.1-1990 に準拠している。"
3040
3041 #. type: SS
3042 #: build/C/man3/fopen.3:256 build/C/man2/link.2:385
3043 #: build/C/man2/readlink.2:256 build/C/man2/rename.2:415
3044 #: build/C/man2/symlink.2:247 build/C/man2/unlink.2:282
3045 #, no-wrap
3046 msgid "Glibc notes"
3047 msgstr "glibc での注意"
3048
3049 #. type: Plain text
3050 #: build/C/man3/fopen.3:259
3051 msgid ""
3052 "The GNU C library allows the following extensions for the string specified "
3053 "in I<mode>:"
3054 msgstr ""
3055 "GNU C ライブラリでは、 I<mode> に指定できる文字列として、以下の拡張が行われて"
3056 "いる:"
3057
3058 #. type: TP
3059 #: build/C/man3/fopen.3:259
3060 #, no-wrap
3061 msgid "B<c> (since glibc 2.3.3)"
3062 msgstr "B<c> (glibc 2.3.3 以降)"
3063
3064 #. type: Plain text
3065 #: build/C/man3/fopen.3:266
3066 msgid ""
3067 "Do not make the open operation, or subsequent read and write operations, "
3068 "thread cancellation points.  This flag is ignored for B<fdopen>()."
3069 msgstr ""
3070 "open 操作、それに続く read/write 操作の、 スレッドの取り消しポイント\n"
3071 "(cancellation points) を作成しない。\n"
3072 "このフラグは B<fdopen>() では無視される。"
3073
3074 #. type: TP
3075 #: build/C/man3/fopen.3:266
3076 #, no-wrap
3077 msgid "B<e> (since glibc 2.7)"
3078 msgstr "B<e> (glibc 2.7 以降)"
3079
3080 #. type: Plain text
3081 #: build/C/man3/fopen.3:276
3082 msgid ""
3083 "Open the file with the B<O_CLOEXEC> flag.  See B<open>(2)  for more "
3084 "information.  This flag is ignored for B<fdopen>()."
3085 msgstr ""
3086 "B<O_CLOEXEC> フラグを有効にしてファイルをオープンする。詳細は\n"
3087 "B<open>(2) を参照。このフラグは B<fdopen>() では無視される。"
3088
3089 #. type: TP
3090 #: build/C/man3/fopen.3:276
3091 #, no-wrap
3092 msgid "B<m> (since glibc 2.3)"
3093 msgstr "B<m> (glibc 2.3 以降)"
3094
3095 #.  As at glibc 2.4:
3096 #. type: Plain text
3097 #: build/C/man3/fopen.3:288
3098 msgid ""
3099 "Attempt to access the file using B<mmap>(2), rather than I/O system calls "
3100 "(B<read>(2), B<write>(2)).  Currently, use of B<mmap>(2)  is attempted only "
3101 "for a file opened for reading."
3102 msgstr ""
3103 "I/O システムコール (B<read>(2), B<write>(2))  ではなく、 B<mmap>(2)  を使って"
3104 "ファイルにアクセスしようとする。 B<mmap>(2)  を使おうとするのは、読み出し用に"
3105 "オープンするファイルについてだけである。"
3106
3107 #. type: TP
3108 #: build/C/man3/fopen.3:288 build/C/man3/scanf.3:421
3109 #, no-wrap
3110 msgid "B<x>"
3111 msgstr "B<x>"
3112
3113 #.  Since glibc 2.0?
3114 #.  FIXME . C11 specifies this flag
3115 #. type: Plain text
3116 #: build/C/man3/fopen.3:305
3117 msgid ""
3118 "Open the file exclusively (like the B<O_EXCL> flag of B<open>(2)).  If the "
3119 "file already exists, B<fopen>()  fails, and sets I<errno> to B<EEXIST>.  "
3120 "This flag is ignored for B<fdopen>()."
3121 msgstr ""
3122 "ファイルを排他的にオープンする (B<open>(2)  の B<O_EXCL> フラグと同様)。 ファ"
3123 "イルがすでに存在する場合、 B<fopen>()  は失敗し、 I<errno> に B<EEXIST> が"
3124 "セットされる。 このフラグは B<fdopen>()  では無視される。"
3125
3126 #. type: Plain text
3127 #: build/C/man3/fopen.3:313
3128 msgid ""
3129 "In addition to the above characters, B<fopen>()  and B<freopen>()  support "
3130 "the following syntax in I<mode>:"
3131 msgstr ""
3132 "上記の文字に加えて、\n"
3133 "B<fopen>() と B<freopen>() では I<mode> に\n"
3134 "以下の書式を 指定することができる。"
3135
3136 #. type: Plain text
3137 #: build/C/man3/fopen.3:315
3138 msgid "B< ,ccs=>I<string>"
3139 msgstr "B< ,ccs=>I<string>"
3140
3141 #. type: Plain text
3142 #: build/C/man3/fopen.3:331
3143 msgid ""
3144 "The given I<string> is taken as the name of a coded character set and the "
3145 "stream is marked as wide-oriented.  Thereafter, internal conversion "
3146 "functions convert I/O to and from the character set I<string>.  If the B<,"
3147 "ccs=>I<string> syntax is not specified, then the wide-orientation of the "
3148 "stream is determined by the first file operation.  If that operation is a "
3149 "wide-character operation, the stream is marked wide-oriented, and functions "
3150 "to convert to the coded character set are loaded."
3151 msgstr ""
3152 "指定された I<string> は、符号化文字集合の名前と解釈され、\n"
3153 "ストリームではワイド文字のストリームとして扱われる。\n"
3154 "内部変換関数で入出力時に文字集合 I<string> との変換が行われる。\n"
3155 "書式 B<,ccs=>I<string> が指定されない場合は、\n"
3156 "ストリームをワイド文字のストリームとして扱うかは\n"
3157 "最初のファイル操作時に決定される。\n"
3158 "最初のファイル操作がワイド文字操作であった場合は、\n"
3159 "そのストリームはワイド文字のストリームとして扱われ、\n"
3160 "符号化文字集合との変換を行う関数が読み込まれる。"
3161
3162 #.  FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12685
3163 #. type: Plain text
3164 #: build/C/man3/fopen.3:348
3165 msgid ""
3166 "When parsing for individual flag characters in I<mode> (i.e., the characters "
3167 "preceding the \"ccs\" specification), the glibc implementation of "
3168 "B<fopen>()  and B<freopen>()  limits the number of characters examined in "
3169 "I<mode> to 7 (or, in glibc versions before 2.14, to 6, which was not enough "
3170 "to include possible specifications such as \"rb+cmxe\").  The current "
3171 "implementation of B<fdopen>()  parses at most 5 characters in I<mode>."
3172 msgstr ""
3173 "I<mode> の個々のフラグ文字 (\"ccs\" 指定の前の文字) を解釈する際に、\n"
3174 "glibc の B<fopen>() と B<freopen>() の実装では、\n"
3175 "I<mode> の確認を最大 7 文字しか行わないという制限がある\n"
3176 "(バージョン 2.14 より前の glibc では最大 6 文字だが、\n"
3177 "6 文字では \"rb+cmxe\" などの指定を行うには不十分であった)。\n"
3178 "B<fdopen>() の現在の実装では最大 5 文字の I<mode> しか解釈されない。"
3179
3180 #. type: Plain text
3181 #: build/C/man3/fopen.3:354
3182 msgid ""
3183 "B<open>(2), B<fclose>(3), B<fileno>(3), B<fmemopen>(3), B<fopencookie>(3)"
3184 msgstr ""
3185 "B<open>(2), B<fclose>(3), B<fileno>(3), B<fmemopen>(3), B<fopencookie>(3)"
3186
3187 #. type: TH
3188 #: build/C/man3/fopencookie.3:26
3189 #, no-wrap
3190 msgid "FOPENCOOKIE"
3191 msgstr "FOPENCOOKIE"
3192
3193 #. type: TH
3194 #: build/C/man3/fopencookie.3:26
3195 #, no-wrap
3196 msgid "2013-03-17"
3197 msgstr "2013-03-17"
3198
3199 #. type: TH
3200 #: build/C/man3/fopencookie.3:26 build/C/man2/link.2:32
3201 #: build/C/man2/llseek.2:28 build/C/man2/lseek.2:47 build/C/man3/lseek64.3:25
3202 #: build/C/man2/open.2:51 build/C/man2/open_by_handle_at.2:25
3203 #: build/C/man2/pipe.2:36 build/C/man2/read.2:35 build/C/man2/readlink.2:44
3204 #: build/C/man2/readv.2:32 build/C/man2/rename.2:33 build/C/man2/rmdir.2:30
3205 #: build/C/man3/setbuf.3:48 build/C/man3/stdin.3:13 build/C/man2/symlink.2:33
3206 #: build/C/man7/symlink.7:37 build/C/man2/unlink.2:33 build/C/man2/write.2:39
3207 #, no-wrap
3208 msgid "Linux"
3209 msgstr "Linux"
3210
3211 #. type: Plain text
3212 #: build/C/man3/fopencookie.3:29
3213 msgid "fopencookie - opening a custom stream"
3214 msgstr ""
3215
3216 #. type: Plain text
3217 #: build/C/man3/fopencookie.3:36
3218 #, no-wrap
3219 msgid ""
3220 "B<FILE *fopencookie(void *>I<cookie>B<, const char *>I<mode>B<,>\n"
3221 "B<                  cookie_io_functions_t >I<io_funcs>B<);>\n"
3222 msgstr ""
3223 "B<FILE *fopencookie(void *>I<cookie>B<, const char *>I<mode>B<,>\n"
3224 "B<                  cookie_io_functions_t >I<io_funcs>B<);>\n"
3225
3226 #. type: Plain text
3227 #: build/C/man3/fopencookie.3:49
3228 msgid ""
3229 "The B<fopencookie>()  function allows the programmer to create a custom "
3230 "implementation for a standard I/O stream.  This implementation can store the "
3231 "stream's data at a location of its own choosing; for example, "
3232 "B<fopencookie>()  is used to implement B<fmemopen>(3), which provides a "
3233 "stream interface to data that is stored in a buffer in memory."
3234 msgstr ""
3235
3236 #. type: Plain text
3237 #: build/C/man3/fopencookie.3:51
3238 msgid "In order to create a custom stream the programmer must:"
3239 msgstr ""
3240
3241 #. type: IP
3242 #: build/C/man3/fopencookie.3:51 build/C/man3/fopencookie.3:54
3243 #: build/C/man3/fopencookie.3:65 build/C/man2/lseek.2:168
3244 #: build/C/man2/lseek.2:170 build/C/man2/lseek.2:173 build/C/man2/lseek.2:175
3245 #: build/C/man2/lseek.2:177 build/C/man2/open.2:527 build/C/man2/open.2:535
3246 #: build/C/man2/open.2:541 build/C/man2/open.2:547 build/C/man2/open.2:553
3247 #: build/C/man2/open.2:566 build/C/man2/open.2:688 build/C/man2/open.2:696
3248 #: build/C/man2/open_by_handle_at.2:138 build/C/man2/open_by_handle_at.2:146
3249 #: build/C/man2/open_by_handle_at.2:157 build/C/man2/open_by_handle_at.2:170
3250 #: build/C/man2/pipe.2:95 build/C/man2/pipe.2:105 build/C/man2/pipe.2:115
3251 #: build/C/man3/scanf.3:658 build/C/man3/scanf.3:663
3252 #: build/C/man7/symlink.7:290 build/C/man7/symlink.7:300
3253 #: build/C/man7/symlink.7:330 build/C/man7/symlink.7:390
3254 #: build/C/man7/symlink.7:419 build/C/man7/symlink.7:448
3255 #: build/C/man7/symlink.7:479 build/C/man7/symlink.7:492
3256 #, no-wrap
3257 msgid "*"
3258 msgstr "*"
3259
3260 #. type: Plain text
3261 #: build/C/man3/fopencookie.3:54
3262 msgid ""
3263 "Implement four \"hook\" functions that are used internally by the standard I/"
3264 "O library when performing I/O on the stream."
3265 msgstr ""
3266
3267 #. type: Plain text
3268 #: build/C/man3/fopencookie.3:65
3269 msgid ""
3270 "Define a \"cookie\" data type, a structure that provides bookkeeping "
3271 "information (e.g., where to store data) used by the aforementioned hook "
3272 "functions.  The standard I/O package knows nothing about the contents of "
3273 "this cookie (thus it is typed as I<void\\ *> when passed to "
3274 "B<fopencookie>()), but automatically supplies the cookie as the first "
3275 "argument when calling the hook functions."
3276 msgstr ""
3277
3278 #. type: Plain text
3279 #: build/C/man3/fopencookie.3:70
3280 msgid ""
3281 "Call B<fopencookie>()  to open a new stream and associate the cookie and "
3282 "hook functions with that stream."
3283 msgstr ""
3284
3285 #. type: Plain text
3286 #: build/C/man3/fopencookie.3:78
3287 msgid ""
3288 "The B<fopencookie>()  function serves a purpose similar to B<fopen>(3): it "
3289 "opens a new stream and returns a pointer to a I<FILE> object that is used to "
3290 "operate on that stream."
3291 msgstr ""
3292
3293 #. type: Plain text
3294 #: build/C/man3/fopencookie.3:85
3295 msgid ""
3296 "The I<cookie> argument is a pointer to the caller's cookie structure that is "
3297 "to be associated with the new stream.  This pointer is supplied as the first "
3298 "argument when the standard I/O library invokes any of the hook functions "
3299 "described below."
3300 msgstr ""
3301
3302 #. type: Plain text
3303 #: build/C/man3/fopencookie.3:101
3304 msgid ""
3305 "The I<mode> argument serves the same purpose as for B<fopen>(3).  The "
3306 "following modes are supported: I<r>, I<w>, I<a>, I<r+>, I<w+>, and I<a+>.  "
3307 "See B<fopen>(3)  for details."
3308 msgstr ""
3309
3310 #. type: Plain text
3311 #: build/C/man3/fopencookie.3:107
3312 msgid ""
3313 "The I<io_funcs> argument is a structure that contains four fields pointing "
3314 "to the programmer-defined hook functions that are used to implement this "
3315 "stream.  The structure is defined as follows"
3316 msgstr ""
3317
3318 #. type: Plain text
3319 #: build/C/man3/fopencookie.3:116
3320 #, no-wrap
3321 msgid ""
3322 "typedef struct {\n"
3323 "    cookie_read_function_t  *read;\n"
3324 "    cookie_write_function_t *write;\n"
3325 "    cookie_seek_function_t  *seek;\n"
3326 "    cookie_close_function_t *close;\n"
3327 "} cookie_io_functions_t;\n"
3328 msgstr ""
3329 "typedef struct {\n"
3330 "    cookie_read_function_t  *read;\n"
3331 "    cookie_write_function_t *write;\n"
3332 "    cookie_seek_function_t  *seek;\n"
3333 "    cookie_close_function_t *close;\n"
3334 "} cookie_io_functions_t;\n"
3335
3336 #. type: Plain text
3337 #: build/C/man3/fopencookie.3:120
3338 msgid "The four fields are as follows:"
3339 msgstr ""
3340
3341 #. type: TP
3342 #: build/C/man3/fopencookie.3:120
3343 #, no-wrap
3344 msgid "I<cookie_read_function_t *read>"
3345 msgstr "I<cookie_read_function_t *read>"
3346
3347 #. type: Plain text
3348 #: build/C/man3/fopencookie.3:124
3349 msgid ""
3350 "This function implements read operations for the stream.  When called, it "
3351 "receives three arguments:"
3352 msgstr ""
3353
3354 #. type: Plain text
3355 #: build/C/man3/fopencookie.3:126
3356 #, no-wrap
3357 msgid "    ssize_t read(void *cookie, char *buf, size_t size);\n"
3358 msgstr "    ssize_t read(void *cookie, char *buf, size_t size);\n"
3359
3360 #. type: Plain text
3361 #: build/C/man3/fopencookie.3:141
3362 msgid ""
3363 "The I<buf> and I<size> arguments are, respectively, a buffer into which "
3364 "input data can be placed and the size of that buffer.  As its function "
3365 "result, the I<read> function should return the number of bytes copied into "
3366 "I<buf>, 0 on end of file, or -1 on error.  The I<read> function should "
3367 "update the stream offset appropriately."
3368 msgstr ""
3369
3370 #. type: Plain text
3371 #: build/C/man3/fopencookie.3:146
3372 msgid ""
3373 "If I<*read> is a null pointer, then reads from the custom stream always "
3374 "return end of file."
3375 msgstr ""
3376
3377 #. type: TP
3378 #: build/C/man3/fopencookie.3:146
3379 #, no-wrap
3380 msgid "I<cookie_write_function_t *write>"
3381 msgstr "I<cookie_write_function_t *write>"
3382
3383 #. type: Plain text
3384 #: build/C/man3/fopencookie.3:150
3385 msgid ""
3386 "This function implements write operations for the stream.  When called, it "
3387 "receives three arguments:"
3388 msgstr ""
3389
3390 #. type: Plain text
3391 #: build/C/man3/fopencookie.3:152
3392 #, no-wrap
3393 msgid "    ssize_t write(void *cookie, const char *buf, size_t size);\n"
3394 msgstr "    ssize_t write(void *cookie, const char *buf, size_t size);\n"
3395
3396 #. type: Plain text
3397 #: build/C/man3/fopencookie.3:168
3398 msgid ""
3399 "The I<buf> and I<size> arguments are, respectively, a buffer of data to be "
3400 "output to the stream and the size of that buffer.  As its function result, "
3401 "the I<write> function should return the number of bytes copied from I<buf>, "
3402 "or 0 on error.  (The function must not return a negative value.)  The "
3403 "I<write> function should update the stream offset appropriately."
3404 msgstr ""
3405
3406 #. type: Plain text
3407 #: build/C/man3/fopencookie.3:173
3408 msgid "If I<*write> is a null pointer, then output to the stream is discarded."
3409 msgstr ""
3410
3411 #. type: TP
3412 #: build/C/man3/fopencookie.3:173
3413 #, no-wrap
3414 msgid "I<cookie_seek_function_t *seek>"
3415 msgstr "I<cookie_seek_function_t *seek>"
3416
3417 #. type: Plain text
3418 #: build/C/man3/fopencookie.3:177
3419 msgid ""
3420 "This function implements seek operations on the stream.  When called, it "
3421 "receives three arguments:"
3422 msgstr ""
3423
3424 #. type: Plain text
3425 #: build/C/man3/fopencookie.3:179
3426 #, no-wrap
3427 msgid "    int seek(void *cookie, off64_t *offset, int whence);\n"
3428 msgstr "    int seek(void *cookie, off64_t *offset, int whence);\n"
3429
3430 #. type: Plain text
3431 #: build/C/man3/fopencookie.3:185
3432 msgid ""
3433 "The I<*offset> argument specifies the new file offset depending on which of "
3434 "the following three values is supplied in I<whence>:"
3435 msgstr ""
3436
3437 #. type: TP
3438 #: build/C/man3/fopencookie.3:186 build/C/man2/lseek.2:67
3439 #, no-wrap
3440 msgid "B<SEEK_SET>"
3441 msgstr "B<SEEK_SET>"
3442
3443 #. type: Plain text
3444 #: build/C/man3/fopencookie.3:191
3445 msgid ""
3446 "The stream offset should be set I<*offset> bytes from the start of the "
3447 "stream."
3448 msgstr ""
3449
3450 #. type: TP
3451 #: build/C/man3/fopencookie.3:191 build/C/man2/lseek.2:72
3452 #, no-wrap
3453 msgid "B<SEEK_CUR>"
3454 msgstr "B<SEEK_CUR>"
3455
3456 #. type: Plain text
3457 #: build/C/man3/fopencookie.3:195
3458 msgid "I<*offset> should be added to the current stream offset."
3459 msgstr ""
3460
3461 #. type: TP
3462 #: build/C/man3/fopencookie.3:195 build/C/man2/lseek.2:77
3463 #, no-wrap
3464 msgid "B<SEEK_END>"
3465 msgstr "B<SEEK_END>"
3466
3467 #. type: Plain text
3468 #: build/C/man3/fopencookie.3:199
3469 msgid ""
3470 "The stream offset should be set to the size of the stream plus I<*offset>."
3471 msgstr ""
3472
3473 #. type: Plain text
3474 #: build/C/man3/fopencookie.3:206
3475 msgid ""
3476 "Before returning, the I<seek> function should update I<*offset> to indicate "
3477 "the new stream offset."
3478 msgstr ""
3479
3480 #. type: Plain text
3481 #: build/C/man3/fopencookie.3:210
3482 msgid ""
3483 "As its function result, the I<seek> function should return 0 on success, and "
3484 "-1 on error."
3485 msgstr ""
3486
3487 #. type: Plain text
3488 #: build/C/man3/fopencookie.3:215
3489 msgid ""
3490 "If I<*seek> is a null pointer, then it is not possible to perform seek "
3491 "operations on the stream."
3492 msgstr ""
3493
3494 #. type: TP
3495 #: build/C/man3/fopencookie.3:215
3496 #, no-wrap
3497 msgid "I<cookie_close_function_t *close>"
3498 msgstr "I<cookie_close_function_t *close>"
3499
3500 #. type: Plain text
3501 #: build/C/man3/fopencookie.3:221
3502 msgid ""
3503 "This function closes the stream.  The hook function can do things such as "
3504 "freeing buffers allocated for the stream.  When called, it receives one "
3505 "argument:"
3506 msgstr ""
3507
3508 #. type: Plain text
3509 #: build/C/man3/fopencookie.3:223
3510 #, no-wrap
3511 msgid "    int close(void *cookie);\n"
3512 msgstr "    int close(void *cookie);\n"
3513
3514 #. type: Plain text
3515 #: build/C/man3/fopencookie.3:228
3516 msgid ""
3517 "The I<cookie> argument is the cookie that the programmer supplied when "
3518 "calling B<fopencookie>()."
3519 msgstr ""
3520
3521 #. type: Plain text
3522 #: build/C/man3/fopencookie.3:234
3523 msgid ""
3524 "As its function result, the I<close> function should return 0 on success, "
3525 "and B<EOF> on error."
3526 msgstr ""
3527
3528 #. type: Plain text
3529 #: build/C/man3/fopencookie.3:238
3530 msgid ""
3531 "If I<*close> is NULL, then no special action is performed when the stream is "
3532 "closed."
3533 msgstr ""
3534
3535 #.  .SH ERRORS
3536 #.  It's not clear if errno ever gets set...
3537 #. type: Plain text
3538 #: build/C/man3/fopencookie.3:245
3539 msgid ""
3540 "On success B<fopencookie>()  returns a pointer to the new stream.  On error, "
3541 "NULL is returned."
3542 msgstr ""
3543
3544 #. type: Plain text
3545 #: build/C/man3/fopencookie.3:247
3546 msgid "This function is a nonstandard GNU extension."
3547 msgstr ""
3548
3549 #. type: Plain text
3550 #: build/C/man3/fopencookie.3:256
3551 msgid ""
3552 "The program below implements a custom stream whose functionality is similar "
3553 "(but not identical) to that available via B<fmemopen>(3).  It implements a "
3554 "stream whose data is stored in a memory buffer.  The program writes its "
3555 "command-line arguments to the stream, and then seeks through the stream "
3556 "reading two out of every five characters and writing them to standard "
3557 "output.  The following shell session demonstrates the use of the program:"
3558 msgstr ""
3559
3560 #. type: Plain text
3561 #: build/C/man3/fopencookie.3:264
3562 #, no-wrap
3563 msgid ""
3564 "$B< ./a.out \\(aqhello world\\(aq>\n"
3565 "/he/\n"
3566 "/ w/\n"
3567 "/d/\n"
3568 "Reached end of file\n"
3569 msgstr ""
3570 "$B< ./a.out \\(aqhello world\\(aq>\n"
3571 "/he/\n"
3572 "/ w/\n"
3573 "/d/\n"
3574 "Reached end of file\n"
3575
3576 #. type: Plain text
3577 #: build/C/man3/fopencookie.3:271
3578 msgid ""
3579 "Note that a more general version of the program below could be improved to "
3580 "more robustly handle various error situations (e.g., opening a stream with a "
3581 "cookie that already has an open stream; closing a stream that has already "
3582 "been closed)."
3583 msgstr ""
3584
3585 #. type: Plain text
3586 #: build/C/man3/fopencookie.3:280
3587 #, no-wrap
3588 msgid ""
3589 "#define _GNU_SOURCE\n"
3590 "#include E<lt>sys/types.hE<gt>\n"
3591 "#include E<lt>stdio.hE<gt>\n"
3592 "#include E<lt>stdlib.hE<gt>\n"
3593 "#include E<lt>unistd.hE<gt>\n"
3594 "#include E<lt>string.hE<gt>\n"
3595 msgstr ""
3596 "#define _GNU_SOURCE\n"
3597 "#include E<lt>sys/types.hE<gt>\n"
3598 "#include E<lt>stdio.hE<gt>\n"
3599 "#include E<lt>stdlib.hE<gt>\n"
3600 "#include E<lt>unistd.hE<gt>\n"
3601 "#include E<lt>string.hE<gt>\n"
3602
3603 #. type: Plain text
3604 #: build/C/man3/fopencookie.3:282
3605 #, no-wrap
3606 msgid "#define INIT_BUF_SIZE 4\n"
3607 msgstr "#define INIT_BUF_SIZE 4\n"
3608
3609 #. type: Plain text
3610 #: build/C/man3/fopencookie.3:289
3611 #, no-wrap
3612 msgid ""
3613 "struct memfile_cookie {\n"
3614 "    char   *buf;        /* Dynamically sized buffer for data */\n"
3615 "    size_t  allocated;  /* Size of buf */\n"
3616 "    size_t  endpos;     /* Number of characters in buf */\n"
3617 "    off_t   offset;     /* Current file offset in buf */\n"
3618 "};\n"
3619 msgstr ""
3620 "struct memfile_cookie {\n"
3621 "    char   *buf;        /* Dynamically sized buffer for data */\n"
3622 "    size_t  allocated;  /* Size of buf */\n"
3623 "    size_t  endpos;     /* Number of characters in buf */\n"
3624 "    off_t   offset;     /* Current file offset in buf */\n"
3625 "};\n"
3626
3627 #. type: Plain text
3628 #: build/C/man3/fopencookie.3:295
3629 #, no-wrap
3630 msgid ""
3631 "ssize_t\n"
3632 "memfile_write(void *c, const char *buf, size_t size)\n"
3633 "{\n"
3634 "    char *new_buff;\n"
3635 "    struct memfile_cookie *cookie = c;\n"
3636 msgstr ""
3637 "ssize_t\n"
3638 "memfile_write(void *c, const char *buf, size_t size)\n"
3639 "{\n"
3640 "    char *new_buff;\n"
3641 "    struct memfile_cookie *cookie = c;\n"
3642
3643 #. type: Plain text
3644 #: build/C/man3/fopencookie.3:297
3645 #, no-wrap
3646 msgid "    /* Buffer too small? Keep doubling size until big enough */\n"
3647 msgstr "    /* Buffer too small? Keep doubling size until big enough */\n"
3648
3649 #. type: Plain text
3650 #: build/C/man3/fopencookie.3:307
3651 #, no-wrap
3652 msgid ""
3653 "    while (size + cookie-E<gt>offset E<gt> cookie-E<gt>allocated) {\n"
3654 "        new_buff = realloc(cookie-E<gt>buf, cookie-E<gt>allocated * 2);\n"
3655 "        if (new_buff == NULL) {\n"
3656 "            return -1;\n"
3657 "        } else {\n"
3658 "            cookie-E<gt>allocated *= 2;\n"
3659 "            cookie-E<gt>buf = new_buff;\n"
3660 "        }\n"
3661 "    }\n"
3662 msgstr ""
3663 "    while (size + cookie-E<gt>offset E<gt> cookie-E<gt>allocated) {\n"
3664 "        new_buff = realloc(cookie-E<gt>buf, cookie-E<gt>allocated * 2);\n"
3665 "        if (new_buff == NULL) {\n"
3666 "            return -1;\n"
3667 "        } else {\n"
3668 "            cookie-E<gt>allocated *= 2;\n"
3669 "            cookie-E<gt>buf = new_buff;\n"
3670 "        }\n"
3671 "    }\n"
3672
3673 #. type: Plain text
3674 #: build/C/man3/fopencookie.3:309
3675 #, no-wrap
3676 msgid "    memcpy(cookie-E<gt>buf + cookie-E<gt>offset, buf, size);\n"
3677 msgstr "    memcpy(cookie-E<gt>buf + cookie-E<gt>offset, buf, size);\n"
3678
3679 #. type: Plain text
3680 #: build/C/man3/fopencookie.3:313
3681 #, no-wrap
3682 msgid ""
3683 "    cookie-E<gt>offset += size;\n"
3684 "    if (cookie-E<gt>offset E<gt> cookie-E<gt>endpos)\n"
3685 "        cookie-E<gt>endpos = cookie-E<gt>offset;\n"
3686 msgstr ""
3687 "    cookie-E<gt>offset += size;\n"
3688 "    if (cookie-E<gt>offset E<gt> cookie-E<gt>endpos)\n"
3689 "        cookie-E<gt>endpos = cookie-E<gt>offset;\n"
3690
3691 #. type: Plain text
3692 #: build/C/man3/fopencookie.3:316
3693 #, no-wrap
3694 msgid ""
3695 "    return size;\n"
3696 "}\n"
3697 msgstr ""
3698 "    return size;\n"
3699 "}\n"
3700
3701 #. type: Plain text
3702 #: build/C/man3/fopencookie.3:322
3703 #, no-wrap
3704 msgid ""
3705 "ssize_t\n"
3706 "memfile_read(void *c, char *buf, size_t size)\n"
3707 "{\n"
3708 "    ssize_t xbytes;\n"
3709 "    struct memfile_cookie *cookie = c;\n"
3710 msgstr ""
3711 "ssize_t\n"
3712 "memfile_read(void *c, char *buf, size_t size)\n"
3713 "{\n"
3714 "    ssize_t xbytes;\n"
3715 "    struct memfile_cookie *cookie = c;\n"
3716
3717 #. type: Plain text
3718 #: build/C/man3/fopencookie.3:324
3719 #, no-wrap
3720 msgid "    /* Fetch minimum of bytes requested and bytes available */\n"
3721 msgstr "    /* Fetch minimum of bytes requested and bytes available */\n"
3722
3723 #. type: Plain text
3724 #: build/C/man3/fopencookie.3:330
3725 #, no-wrap
3726 msgid ""
3727 "    xbytes = size;\n"
3728 "    if (cookie-E<gt>offset + size E<gt> cookie-E<gt>endpos)\n"
3729 "        xbytes = cookie-E<gt>endpos - cookie-E<gt>offset;\n"
3730 "    if (xbytes E<lt> 0)     /* offset may be past endpos */\n"
3731 "       xbytes = 0;\n"
3732 msgstr ""
3733 "    xbytes = size;\n"
3734 "    if (cookie-E<gt>offset + size E<gt> cookie-E<gt>endpos)\n"
3735 "        xbytes = cookie-E<gt>endpos - cookie-E<gt>offset;\n"
3736 "    if (xbytes E<lt> 0)     /* offset may be past endpos */\n"
3737 "       xbytes = 0;\n"
3738
3739 #. type: Plain text
3740 #: build/C/man3/fopencookie.3:332
3741 #, no-wrap
3742 msgid "    memcpy(buf, cookie-E<gt>buf + cookie-E<gt>offset, xbytes);\n"
3743 msgstr "    memcpy(buf, cookie-E<gt>buf + cookie-E<gt>offset, xbytes);\n"
3744
3745 #. type: Plain text
3746 #: build/C/man3/fopencookie.3:336
3747 #, no-wrap
3748 msgid ""
3749 "    cookie-E<gt>offset += xbytes;\n"
3750 "    return xbytes;\n"
3751 "}\n"
3752 msgstr ""
3753 "    cookie-E<gt>offset += xbytes;\n"
3754 "    return xbytes;\n"
3755 "}\n"
3756
3757 #. type: Plain text
3758 #: build/C/man3/fopencookie.3:342
3759 #, no-wrap
3760 msgid ""
3761 "int\n"
3762 "memfile_seek(void *c, off64_t *offset, int whence)\n"
3763 "{\n"
3764 "    off64_t new_offset;\n"
3765 "    struct memfile_cookie *cookie = c;\n"
3766 msgstr ""
3767 "int\n"
3768 "memfile_seek(void *c, off64_t *offset, int whence)\n"
3769 "{\n"
3770 "    off64_t new_offset;\n"
3771 "    struct memfile_cookie *cookie = c;\n"
3772
3773 #. type: Plain text
3774 #: build/C/man3/fopencookie.3:351
3775 #, no-wrap
3776 msgid ""
3777 "    if (whence == SEEK_SET)\n"
3778 "        new_offset = *offset;\n"
3779 "    else if (whence == SEEK_END)\n"
3780 "        new_offset = cookie-E<gt>endpos + *offset;\n"
3781 "    else if (whence == SEEK_CUR)\n"
3782 "        new_offset = cookie-E<gt>offset + *offset;\n"
3783 "    else\n"
3784 "        return -1;\n"
3785 msgstr ""
3786 "    if (whence == SEEK_SET)\n"
3787 "        new_offset = *offset;\n"
3788 "    else if (whence == SEEK_END)\n"
3789 "        new_offset = cookie-E<gt>endpos + *offset;\n"
3790 "    else if (whence == SEEK_CUR)\n"
3791 "        new_offset = cookie-E<gt>offset + *offset;\n"
3792 "    else\n"
3793 "        return -1;\n"
3794
3795 #. type: Plain text
3796 #: build/C/man3/fopencookie.3:354
3797 #, no-wrap
3798 msgid ""
3799 "    if (new_offset E<lt> 0)\n"
3800 "        return -1;\n"
3801 msgstr ""
3802 "    if (new_offset E<lt> 0)\n"
3803 "        return -1;\n"
3804
3805 #. type: Plain text
3806 #: build/C/man3/fopencookie.3:359
3807 #, no-wrap
3808 msgid ""
3809 "    cookie-E<gt>offset = new_offset;\n"
3810 "    *offset = new_offset;\n"
3811 "    return 0;\n"
3812 "}\n"
3813 msgstr ""
3814 "    cookie-E<gt>offset = new_offset;\n"
3815 "    *offset = new_offset;\n"
3816 "    return 0;\n"
3817 "}\n"
3818
3819 #. type: Plain text
3820 #: build/C/man3/fopencookie.3:364
3821 #, no-wrap
3822 msgid ""
3823 "int\n"
3824 "memfile_close(void *c)\n"
3825 "{\n"
3826 "    struct memfile_cookie *cookie = c;\n"
3827 msgstr ""
3828 "int\n"
3829 "memfile_close(void *c)\n"
3830 "{\n"
3831 "    struct memfile_cookie *cookie = c;\n"
3832
3833 #. type: Plain text
3834 #: build/C/man3/fopencookie.3:368
3835 #, no-wrap
3836 msgid ""
3837 "    free(cookie-E<gt>buf);\n"
3838 "    cookie-E<gt>allocated = 0;\n"
3839 "    cookie-E<gt>buf = NULL;\n"
3840 msgstr ""
3841 "    free(cookie-E<gt>buf);\n"
3842 "    cookie-E<gt>allocated = 0;\n"
3843 "    cookie-E<gt>buf = NULL;\n"
3844
3845 #. type: Plain text
3846 #: build/C/man3/fopencookie.3:371
3847 #, no-wrap
3848 msgid ""
3849 "    return 0;\n"
3850 "}\n"
3851 msgstr ""
3852 "    return 0;\n"
3853 "}\n"
3854
3855 #. type: Plain text
3856 #: build/C/man3/fopencookie.3:387
3857 #, no-wrap
3858 msgid ""
3859 "int\n"
3860 "main(int argc, char *argv[])\n"
3861 "{\n"
3862 "    cookie_io_functions_t  memfile_func = {\n"
3863 "        .read  = memfile_read,\n"
3864 "        .write = memfile_write,\n"
3865 "        .seek  = memfile_seek,\n"
3866 "        .close = memfile_close\n"
3867 "    };\n"
3868 "    FILE *fp;\n"
3869 "    struct memfile_cookie mycookie;\n"
3870 "    ssize_t nread;\n"
3871 "    long p;\n"
3872 "    int j;\n"
3873 "    char buf[1000];\n"
3874 msgstr ""
3875 "int\n"
3876 "main(int argc, char *argv[])\n"
3877 "{\n"
3878 "    cookie_io_functions_t  memfile_func = {\n"
3879 "        .read  = memfile_read,\n"
3880 "        .write = memfile_write,\n"
3881 "        .seek  = memfile_seek,\n"
3882 "        .close = memfile_close\n"
3883 "    };\n"
3884 "    FILE *fp;\n"
3885 "    struct memfile_cookie mycookie;\n"
3886 "    ssize_t nread;\n"
3887 "    long p;\n"
3888 "    int j;\n"
3889 "    char buf[1000];\n"
3890
3891 #. type: Plain text
3892 #: build/C/man3/fopencookie.3:389
3893 #, no-wrap
3894 msgid "    /* Set up the cookie before calling fopencookie() */\n"
3895 msgstr "    /* Set up the cookie before calling fopencookie() */\n"
3896
3897 #. type: Plain text
3898 #: build/C/man3/fopencookie.3:395
3899 #, no-wrap
3900 msgid ""
3901 "    mycookie.buf = malloc(INIT_BUF_SIZE);\n"
3902 "    if (mycookie.buf == NULL) {\n"
3903 "        perror(\"malloc\");\n"
3904 "        exit(EXIT_FAILURE);\n"
3905 "    }\n"
3906 msgstr ""
3907 "    mycookie.buf = malloc(INIT_BUF_SIZE);\n"
3908 "    if (mycookie.buf == NULL) {\n"
3909 "        perror(\"malloc\");\n"
3910 "        exit(EXIT_FAILURE);\n"
3911 "    }\n"
3912
3913 #. type: Plain text
3914 #: build/C/man3/fopencookie.3:399
3915 #, no-wrap
3916 msgid ""
3917 "    mycookie.allocated = INIT_BUF_SIZE;\n"
3918 "    mycookie.offset = 0;\n"
3919 "    mycookie.endpos = 0;\n"
3920 msgstr ""
3921 "    mycookie.allocated = INIT_BUF_SIZE;\n"
3922 "    mycookie.offset = 0;\n"
3923 "    mycookie.endpos = 0;\n"
3924
3925 #. type: Plain text
3926 #: build/C/man3/fopencookie.3:405
3927 #, no-wrap
3928 msgid ""
3929 "    fp = fopencookie(&mycookie,\"w+\", memfile_func);\n"
3930 "    if (fp == NULL) {\n"
3931 "        perror(\"fopencookie\");\n"
3932 "        exit(EXIT_FAILURE);\n"
3933 "    }\n"
3934 msgstr ""
3935 "    fp = fopencookie(&mycookie,\"w+\", memfile_func);\n"
3936 "    if (fp == NULL) {\n"
3937 "        perror(\"fopencookie\");\n"
3938 "        exit(EXIT_FAILURE);\n"
3939 "    }\n"
3940
3941 #. type: Plain text
3942 #: build/C/man3/fopencookie.3:407
3943 #, no-wrap
3944 msgid "    /* Write command-line arguments to our file */\n"
3945 msgstr "    /* Write command-line arguments to our file */\n"
3946
3947 #. type: Plain text
3948 #: build/C/man3/fopencookie.3:413
3949 #, no-wrap
3950 msgid ""
3951 "    for (j = 1; j E<lt> argc; j++)\n"
3952 "        if (fputs(argv[j], fp) == EOF) {\n"
3953 "            perror(\"fputs\");\n"
3954 "            exit(EXIT_FAILURE);\n"
3955 "        }\n"
3956 msgstr ""
3957 "    for (j = 1; j E<lt> argc; j++)\n"
3958 "        if (fputs(argv[j], fp) == EOF) {\n"
3959 "            perror(\"fputs\");\n"
3960 "            exit(EXIT_FAILURE);\n"
3961 "        }\n"
3962
3963 #. type: Plain text
3964 #: build/C/man3/fopencookie.3:415
3965 #, no-wrap
3966 msgid "    /* Read two bytes out of every five, until EOF */\n"
3967 msgstr "    /* Read two bytes out of every five, until EOF */\n"
3968
3969 #. type: Plain text
3970 #: build/C/man3/fopencookie.3:430
3971 #, no-wrap
3972 msgid ""
3973 "    for (p = 0; ; p += 5) {\n"
3974 "        if (fseek(fp, p, SEEK_SET) == -1) {\n"
3975 "            perror(\"fseek\");\n"
3976 "            exit(EXIT_FAILURE);\n"
3977 "        }\n"
3978 "        nread = fread(buf, 1, 2, fp);\n"
3979 "        if (nread == -1) {\n"
3980 "            perror(\"fread\");\n"
3981 "            exit(EXIT_FAILURE);\n"
3982 "        }\n"
3983 "        if (nread == 0) {\n"
3984 "            printf(\"Reached end of file\\en\");\n"
3985 "            break;\n"
3986 "        }\n"
3987 msgstr ""
3988 "    for (p = 0; ; p += 5) {\n"
3989 "        if (fseek(fp, p, SEEK_SET) == -1) {\n"
3990 "            perror(\"fseek\");\n"
3991 "            exit(EXIT_FAILURE);\n"
3992 "        }\n"
3993 "        nread = fread(buf, 1, 2, fp);\n"
3994 "        if (nread == -1) {\n"
3995 "            perror(\"fread\");\n"
3996 "            exit(EXIT_FAILURE);\n"
3997 "        }\n"
3998 "        if (nread == 0) {\n"
3999 "            printf(\"Reached end of file\\en\");\n"
4000 "            break;\n"
4001 "        }\n"
4002
4003 #. type: Plain text
4004 #: build/C/man3/fopencookie.3:433
4005 #, no-wrap
4006 msgid ""
4007 "        printf(\"/%.*s/\\en\", nread, buf);\n"
4008 "    }\n"
4009 msgstr ""
4010 "        printf(\"/%.*s/\\en\", nread, buf);\n"
4011 "    }\n"
4012
4013 #. type: Plain text
4014 #: build/C/man3/fopencookie.3:436 build/C/man2/open_by_handle_at.2:579
4015 #: build/C/man2/open_by_handle_at.2:719 build/C/man2/readlink.2:327
4016 #, no-wrap
4017 msgid ""
4018 "    exit(EXIT_SUCCESS);\n"
4019 "}\n"
4020 msgstr ""
4021 "    exit(EXIT_SUCCESS);\n"
4022 "}\n"
4023
4024 #. type: Plain text
4025 #: build/C/man3/fopencookie.3:442
4026 msgid "B<fclose>(3), B<fmemopen>(3), B<fopen>(3), B<fseek>(3)"
4027 msgstr "B<fclose>(3), B<fmemopen>(3), B<fopen>(3), B<fseek>(3)"
4028
4029 #. type: TH
4030 #: build/C/man3/fpurge.3:25
4031 #, no-wrap
4032 msgid "FPURGE"
4033 msgstr "FPURGE"
4034
4035 #. type: TH
4036 #: build/C/man3/fpurge.3:25
4037 #, no-wrap
4038 msgid "2001-12-15"
4039 msgstr "2001-12-15"
4040
4041 #. type: Plain text
4042 #: build/C/man3/fpurge.3:28
4043 msgid "fpurge, __fpurge - purge a stream"
4044 msgstr "fpurge, __fpurge - ストリームを一掃 (purge) する"
4045
4046 #. type: Plain text
4047 #: build/C/man3/fpurge.3:32
4048 #, no-wrap
4049 msgid ""
4050 "/* unsupported */\n"
4051 "B<#include E<lt>stdio.hE<gt>>\n"
4052 msgstr ""
4053 "/* unsupported */\n"
4054 "B<#include E<lt>stdio.hE<gt>>\n"
4055
4056 #. type: Plain text
4057 #: build/C/man3/fpurge.3:34
4058 #, no-wrap
4059 msgid "B<int fpurge(FILE *>I<stream>B<);>\n"
4060 msgstr "B<int fpurge(FILE *>I<stream>B<);>\n"
4061
4062 #. type: Plain text
4063 #: build/C/man3/fpurge.3:37
4064 #, no-wrap
4065 msgid ""
4066 "/* supported */\n"
4067 "B<#include E<lt>stdio.hE<gt>>\n"
4068 msgstr ""
4069 "/* supported */\n"
4070 "B<#include E<lt>stdio.hE<gt>>\n"
4071
4072 #. type: Plain text
4073 #: build/C/man3/fpurge.3:39
4074 #, no-wrap
4075 msgid "B<#include E<lt>stdio_ext.hE<gt>>\n"
4076 msgstr "B<#include E<lt>stdio_ext.hE<gt>>\n"
4077
4078 #. type: Plain text
4079 #: build/C/man3/fpurge.3:41
4080 #, no-wrap
4081 msgid "B<void  __fpurge(FILE *>I<stream>B<);>\n"
4082 msgstr "B<void  __fpurge(FILE *>I<stream>B<);>\n"
4083
4084 #. type: Plain text
4085 #: build/C/man3/fpurge.3:54
4086 msgid ""
4087 "The function B<fpurge>()  clears the buffers of the given stream.  For "
4088 "output streams this discards any unwritten output.  For input streams this "
4089 "discards any input read from the underlying object but not yet obtained via "
4090 "B<getc>(3); this includes any text pushed back via B<ungetc>(3).  See also "
4091 "B<fflush>(3)."
4092 msgstr ""
4093 "B<fpurge>()  関数は、与えられたストリームのバッファをクリアする。 出力スト"
4094 "リームでこれを行うと、書き出されていない出力は捨てられる。 入力ストリームでこ"
4095 "れを行うと、 下層にあるオブジェクトから読み込まれ B<getc>(3)  による取得を"
4096 "待っている入力が、すべて捨てられる。 これには B<ungetc>(3)  によって戻された"
4097 "テキストも含まれる。 B<fflush>(3)  も参照のこと。"
4098
4099 #. type: Plain text
4100 #: build/C/man3/fpurge.3:58
4101 msgid ""
4102 "The function B<__fpurge>()  does precisely the same, but without returning a "
4103 "value."
4104 msgstr "B<__fpurge>()  関数も全く同じことを行うが、ただし返り値を返さない。"
4105
4106 #. type: Plain text
4107 #: build/C/man3/fpurge.3:65
4108 msgid ""
4109 "Upon successful completion B<fpurge>()  returns 0.  On error, it returns -1 "
4110 "and sets I<errno> appropriately."
4111 msgstr ""
4112 "成功すると B<fpurge>()  は 0 を返す。 エラーが起こると -1 を返し、 I<errno> "
4113 "を適切な値に設定する。"
4114
4115 #. type: Plain text
4116 #: build/C/man3/fpurge.3:70
4117 msgid "I<stream> is not an open stream."
4118 msgstr "I<stream> がオープンされていない。"
4119
4120 #. type: Plain text
4121 #: build/C/man3/fpurge.3:78
4122 msgid ""
4123 "These functions are nonstandard and not portable.  The function B<fpurge>()  "
4124 "was introduced in 4.4BSD and is not available under Linux.  The function "
4125 "B<__fpurge>()  was introduced in Solaris, and is present in glibc 2.1.95 and "
4126 "later."
4127 msgstr ""
4128 "これらの関数は標準ではなく、よって移植性もない。 B<fpurge>()  関数は 4.4BSD "
4129 "で導入されたが、Linux では利用できない。 B<__fpurge>()  関数は Solaris で導入"
4130 "され、glibc 2.1.95 以降には存在している。"
4131
4132 #. type: Plain text
4133 #: build/C/man3/fpurge.3:80
4134 msgid "Usually it is a mistake to want to discard input buffers."
4135 msgstr "通常は入力バッファを捨てようとするのは間違っている。"
4136
4137 #.  .BR fclean (3),
4138 #. type: Plain text
4139 #: build/C/man3/fpurge.3:85
4140 msgid "B<fflush>(3), B<setbuf>(3), B<stdio_ext>(3)"
4141 msgstr "B<fflush>(3), B<setbuf>(3), B<stdio_ext>(3)"
4142
4143 #. type: TH
4144 #: build/C/man3/fputwc.3:16
4145 #, no-wrap
4146 msgid "FPUTWC"
4147 msgstr "FPUTWC"
4148
4149 #. type: Plain text
4150 #: build/C/man3/fputwc.3:19
4151 msgid "fputwc, putwc - write a wide character to a FILE stream"
4152 msgstr "fputwc, putwc - ワイド文字を FILE ストリームに書き込む"
4153
4154 #. type: Plain text
4155 #: build/C/man3/fputwc.3:27
4156 #, no-wrap
4157 msgid ""
4158 "B<wint_t fputwc(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
4159 "B<wint_t putwc(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
4160 msgstr ""
4161 "B<wint_t fputwc(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
4162 "B<wint_t putwc(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
4163
4164 #. type: Plain text
4165 #: build/C/man3/fputwc.3:43
4166 msgid ""
4167 "The B<fputwc>()  function is the wide-character equivalent of the "
4168 "B<fputc>(3)  function.  It writes the wide character I<wc> to I<stream>.  If "
4169 "I<ferror(stream)> becomes true, it returns B<WEOF>.  If a wide-character "
4170 "conversion error occurs, it sets I<errno> to B<EILSEQ> and returns B<WEOF>.  "
4171 "Otherwise, it returns I<wc>."
4172 msgstr ""
4173 "B<fputwc>()  関数は、 B<fputc>(3)  に対応するワイド文字関数である。この 関数"
4174 "は、ワイド文字 I<wc> を I<stream> に書き込む。 I<ferror(stream)> が真になる"
4175 "と、この関数は B<WEOF> を返す。 ワイド文字変換でエラーが発生した場合は、 "
4176 "I<errno> に B<EILSEQ> をセットし、 B<WEOF> を返す。 それ以外の場合では、この"
4177 "関数は I<wc> を返す。"
4178
4179 #. type: Plain text
4180 #: build/C/man3/fputwc.3:51
4181 msgid ""
4182 "The B<putwc>()  function or macro functions identically to B<fputwc>().  It "
4183 "may be implemented as a macro, and may evaluate its argument more than "
4184 "once.  There is no reason ever to use it."
4185 msgstr ""
4186 "B<putwc>()  関数あるいはマクロは、 B<fputwc>()  と全く同じ動作をする。 この関"
4187 "数はマクロとして実装されるかもしれないので、引き数が複数回評価さ れるかもしれ"
4188 "ない。この関数を使う理由はもはや存在しない。"
4189
4190 #. type: Plain text
4191 #: build/C/man3/fputwc.3:63
4192 msgid ""
4193 "The B<fputwc>()  function returns I<wc> if no error occurred, or B<WEOF> to "
4194 "indicate an error.  In the event of an error, I<errno> is set to indicate "
4195 "the cause."
4196 msgstr ""
4197 "B<fputwc>()  関数は、エラーが起きなければ I<wc> を返す。エラーの場合には "
4198 "B<WEOF> が返り、 I<errno> にエラーの原因を示す値が設定される。"
4199
4200 #. type: Plain text
4201 #: build/C/man3/fputwc.3:68
4202 msgid "Conversion of I<wc> to the stream's encoding fails."
4203 msgstr "I<wc> からストリームの符号への変換に失敗した。"
4204
4205 #. type: Plain text
4206 #: build/C/man3/fputwc.3:77
4207 msgid ""
4208 "The behavior of B<fputwc>()  depends on the B<LC_CTYPE> category of the "
4209 "current locale."
4210 msgstr "B<fputwc>()  の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存する。"
4211
4212 #. type: Plain text
4213 #: build/C/man3/fputwc.3:85
4214 msgid ""
4215 "In the absence of additional information passed to the B<fopen>(3)  call, it "
4216 "is reasonable to expect that B<fputwc>()  will actually write the multibyte "
4217 "sequence corresponding to the wide character I<wc>."
4218 msgstr ""
4219 "B<fopen>(3)  システムコールに渡す追加情報がない場合には、 B<fputwc>()  は 実"
4220 "際にはワイド文字 I<wc> に対応するマルチバイトシーケンスを書き込むと 期待して"
4221 "よい。"
4222
4223 #. type: Plain text
4224 #: build/C/man3/fputwc.3:89
4225 msgid "B<fgetwc>(3), B<fputws>(3), B<unlocked_stdio>(3)"
4226 msgstr "B<fgetwc>(3), B<fputws>(3), B<unlocked_stdio>(3)"
4227
4228 #. type: TH
4229 #: build/C/man3/fread.3:45
4230 #, no-wrap
4231 msgid "FREAD"
4232 msgstr "FREAD"
4233
4234 #. type: TH
4235 #: build/C/man3/fread.3:45
4236 #, no-wrap
4237 msgid "2012-03-30"
4238 msgstr "2012-03-30"
4239
4240 #. type: Plain text
4241 #: build/C/man3/fread.3:48
4242 msgid "fread, fwrite - binary stream input/output"
4243 msgstr "fread, fwrite - バイナリストリームの入出力"
4244
4245 #. type: Plain text
4246 #: build/C/man3/fread.3:54
4247 #, no-wrap
4248 msgid "B<size_t fread(void *>I<ptr>B<, size_t >I<size>B<, size_t >I<nmemb>B<, FILE *>I<stream>B<);>\n"
4249 msgstr "B<size_t fread(void *>I<ptr>B<, size_t >I<size>B<, size_t >I<nmemb>B<, FILE *>I<stream>B<);>\n"
4250
4251 #. type: Plain text
4252 #: build/C/man3/fread.3:57
4253 #, no-wrap
4254 msgid ""
4255 "B<size_t fwrite(const void *>I<ptr>B<, size_t >I<size>B<, size_t >I<nmemb>B<,>\n"
4256 "B<              FILE *>I<stream>B<);>\n"
4257 msgstr ""
4258 "B<size_t fwrite(const void *>I<ptr>B<, size_t >I<size>B<, size_t >I<nmemb>B<,>\n"
4259 "B<              FILE *>I<stream>B<);>\n"
4260
4261 #. type: Plain text
4262 #: build/C/man3/fread.3:69
4263 msgid ""
4264 "The function B<fread>()  reads I<nmemb> elements of data, each I<size> bytes "
4265 "long, from the stream pointed to by I<stream>, storing them at the location "
4266 "given by I<ptr>."
4267 msgstr ""
4268 "B<fread>()  関数は I<stream> ポインタで指定されたストリームから I<nmemb> 個の"
4269 "データを読み込み、 I<ptr> で与えられた場所に格納する。 個々のデータは "
4270 "I<size> バイトの長さを持つ。"
4271
4272 #. type: Plain text
4273 #: build/C/man3/fread.3:80
4274 msgid ""
4275 "The function B<fwrite>()  writes I<nmemb> elements of data, each I<size> "
4276 "bytes long, to the stream pointed to by I<stream>, obtaining them from the "
4277 "location given by I<ptr>."
4278 msgstr ""
4279 "B<fwrite>()  関数は I<ptr> で指定された場所から得た I<nmemb> 個のデータを、 "
4280 "I<stream> ポインタで指定されたストリームに書き込む。 個々のデータは I<size> "
4281 "バイトの長さを持つ。"
4282
4283 #. type: Plain text
4284 #: build/C/man3/fread.3:96
4285 msgid ""
4286 "On success, B<fread>()  and B<fwrite>()  return the number of I<items> read "
4287 "or written.  This number equals the number of bytes transferred only when "
4288 "I<size> is 1.  If an error occurs, or the end of the file is reached, the "
4289 "return value is a short item count (or zero)."
4290 msgstr ""
4291 "成功すると、 B<fread>() と B<fwrite>() は読み書きを行った要素の個数を返す。\n"
4292 "I<size> が 1 の場合は、この数字は転送されたバイト数と等しい。\n"
4293 "エラーが生じた場合や、ファイルの末尾 (end-of-file) に達した場合、\n"
4294 "返り値は指定した個数よりも小さい値 (または 0) となる。"
4295
4296 #. type: Plain text
4297 #: build/C/man3/fread.3:103
4298 msgid ""
4299 "B<fread>()  does not distinguish between end-of-file and error, and callers "
4300 "must use B<feof>(3)  and B<ferror>(3)  to determine which occurred."
4301 msgstr ""
4302 "B<fread>()  は end-of-file とエラーを区別しないので、 どちらが生じたかを判断"
4303 "するためには、 呼び出し側で B<feof>(3)  と B<ferror>(3)  とを使用しなければな"
4304 "らない。"
4305
4306 #. type: Plain text
4307 #: build/C/man3/fread.3:105
4308 msgid "C89, POSIX.1-2001."
4309 msgstr "C89, POSIX.1-2001."
4310
4311 #. type: Plain text
4312 #: build/C/man3/fread.3:111
4313 msgid "B<read>(2), B<write>(2), B<feof>(3), B<ferror>(3), B<unlocked_stdio>(3)"
4314 msgstr ""
4315 "B<read>(2), B<write>(2), B<feof>(3), B<ferror>(3), B<unlocked_stdio>(3)"
4316
4317 #. type: TH
4318 #: build/C/man3/fseek.3:42
4319 #, no-wrap
4320 msgid "FSEEK"
4321 msgstr "FSEEK"
4322
4323 #. type: TH
4324 #: build/C/man3/fseek.3:42 build/C/man3/perror.3:31
4325 #, no-wrap
4326 msgid "2014-05-28"
4327 msgstr "2014-05-28"
4328
4329 #. type: Plain text
4330 #: build/C/man3/fseek.3:45
4331 msgid "fgetpos, fseek, fsetpos, ftell, rewind - reposition a stream"
4332 msgstr "fgetpos, fseek, fsetpos, ftell, rewind - ストリームの位置を変更する"
4333
4334 #. type: Plain text
4335 #: build/C/man3/fseek.3:49
4336 msgid "B<int fseek(FILE *>I<stream>B<, long >I<offset>B<, int >I<whence>B<);>"
4337 msgstr "B<int fseek(FILE *>I<stream>B<, long >I<offset>B<, int >I<whence>B<);>"
4338
4339 #. type: Plain text
4340 #: build/C/man3/fseek.3:51
4341 msgid "B<long ftell(FILE *>I<stream>B<);>"
4342 msgstr "B<long ftell(FILE *>I<stream>B<);>"
4343
4344 #. type: Plain text
4345 #: build/C/man3/fseek.3:53
4346 msgid "B<void rewind(FILE *>I<stream>B<);>"
4347 msgstr "B<void rewind(FILE *>I<stream>B<);>"
4348
4349 #. type: Plain text
4350 #: build/C/man3/fseek.3:55
4351 msgid "B<int fgetpos(FILE *>I<stream>B<, fpos_t *>I<pos>B<);>"
4352 msgstr "B<int fgetpos(FILE *>I<stream>B<, fpos_t *>I<pos>B<);>"
4353
4354 #. type: Plain text
4355 #: build/C/man3/fseek.3:57
4356 msgid "B<int fsetpos(FILE *>I<stream>B<, const fpos_t *>I<pos>B<);>"
4357 msgstr "B<int fsetpos(FILE *>I<stream>B<, const fpos_t *>I<pos>B<);>"
4358
4359 #. type: Plain text
4360 #: build/C/man3/fseek.3:81
4361 msgid ""
4362 "The B<fseek>()  function sets the file position indicator for the stream "
4363 "pointed to by I<stream>.  The new position, measured in bytes, is obtained "
4364 "by adding I<offset> bytes to the position specified by I<whence>.  If "
4365 "I<whence> is set to B<SEEK_SET>, B<SEEK_CUR>, or B<SEEK_END>, the offset is "
4366 "relative to the start of the file, the current position indicator, or end-of-"
4367 "file, respectively.  A successful call to the B<fseek>()  function clears "
4368 "the end-of-file indicator for the stream and undoes any effects of the "
4369 "B<ungetc>(3)  function on the same stream."
4370 msgstr ""
4371 "B<fseek>()  関数は I<stream> によって指定されたストリームにおいて、ファイル位"
4372 "置表示子 (file position indicator) をセットする。新たな位置 (バイト単位)  は "
4373 "I<whence> で指定された位置に I<offset> バイトを加えることによって与えられ"
4374 "る。 I<whence> が B<SEEK_SET>, B<SEEK_CUR>, B<SEEK_END> のどれかになっている"
4375 "場合は、それぞれファイルの先頭、現在の位置表示子、 ファイルの末尾からのオフ"
4376 "セットが取られる。 B<fseek>()  関数の呼び出しが成功すると、ストリームの end-"
4377 "of-file 表示子は クリアされ、それまでに B<ungetc>(3)  関数で戻したデータはな"
4378 "かったことになる。"
4379
4380 #. type: Plain text
4381 #: build/C/man3/fseek.3:87
4382 msgid ""
4383 "The B<ftell>()  function obtains the current value of the file position "
4384 "indicator for the stream pointed to by I<stream>."
4385 msgstr ""
4386 "B<ftell>()  関数は I<stream> によって指定されたストリームにおける、ファイル位"
4387 "置表示子 の現時点での値を与える。"
4388
4389 #. type: Plain text
4390 #: build/C/man3/fseek.3:94
4391 msgid ""
4392 "The B<rewind>()  function sets the file position indicator for the stream "
4393 "pointed to by I<stream> to the beginning of the file.  It is equivalent to:"
4394 msgstr ""
4395 "B<rewind>()  関数は I<stream> によって指定されたストリームにおいて、ファイル"
4396 "位置表示子 をファイルの先頭にセットする。この関数は以下と等価である。"
4397
4398 #. type: Plain text
4399 #: build/C/man3/fseek.3:97
4400 msgid "(void) fseek(stream, 0L, SEEK_SET)"
4401 msgstr "(void) fseek(stream, 0L, SEEK_SET)"
4402
4403 #. type: Plain text
4404 #: build/C/man3/fseek.3:101
4405 msgid ""
4406 "except that the error indicator for the stream is also cleared (see "
4407 "B<clearerr>(3))."
4408 msgstr ""
4409 "ただし B<rewind>()  ではストリームに対するエラー表示子 (error indicator) も同"
4410 "時に クリアされる ( B<clearerr>(3)  を見よ)。"
4411
4412 #. type: Plain text
4413 #: build/C/man3/fseek.3:121
4414 msgid ""
4415 "The B<fgetpos>()  and B<fsetpos>()  functions are alternate interfaces "
4416 "equivalent to B<ftell>()  and B<fseek>()  (with I<whence> set to "
4417 "B<SEEK_SET>), setting and storing the current value of the file offset into "
4418 "or from the object referenced by I<pos>.  On some non-UNIX systems, an "
4419 "I<fpos_t> object may be a complex object and these routines may be the only "
4420 "way to portably reposition a text stream."
4421 msgstr ""
4422 "B<fgetpos>()  関数と B<fsetpos>()  関数は、それぞれ B<ftell>()  と "
4423 "B<fseek>()  で I<whence> に B<SEEK_SET> を指定した場合と同様の機能を、異なる"
4424 "インターフェースで提供する。 B<fgetpos>()  はファイルオフセットの現在の値を "
4425 "I<pos> が参照するオブジェクトに保存し、 B<fsetpos>()  はファイルオフセットを "
4426 "I<pos> に設定する。 UNIX 以外のシステムにおいては、 I<fpos_t> が構造体などの"
4427 "複雑なオブジェクトになっていて、これらのルーチンがテキス トストリームでファイ"
4428 "ル位置を変更する方法のうち、移植性のある唯一のもの になっている場合もある。"
4429
4430 #. type: Plain text
4431 #: build/C/man3/fseek.3:136
4432 msgid ""
4433 "The B<rewind>()  function returns no value.  Upon successful completion, "
4434 "B<fgetpos>(), B<fseek>(), B<fsetpos>()  return 0, and B<ftell>()  returns "
4435 "the current offset.  Otherwise, -1 is returned and I<errno> is set to "
4436 "indicate the error."
4437 msgstr ""
4438 "B<rewind>()  は返り値を持たない。 B<fgetpos>(), B<fseek>(), B<fsetpos>()  は"
4439 "成功すると 0 を返す。 B<ftell>()  は現在のオフセットを返す。失敗した場合は返"
4440 "り値は -1 となり、 I<errno> にエラーを示す値がセットされる。"
4441
4442 #. type: Plain text
4443 #: build/C/man3/fseek.3:142
4444 msgid "The I<stream> specified is not a seekable stream."
4445 msgstr "指定した I<stream> がシークできない。"
4446
4447 #. type: Plain text
4448 #: build/C/man3/fseek.3:154
4449 msgid ""
4450 "The I<whence> argument to B<fseek>()  was not B<SEEK_SET>, B<SEEK_END>, or "
4451 "B<SEEK_CUR>.  Or: the resulting file offset would be negative."
4452 msgstr ""
4453 "B<fseek>()  関数に対して与えた I<whence> 引数が B<SEEK_SET>, B<SEEK_END>, "
4454 "B<SEEK_CUR> 以外の値であった。 または、更新後のファイルオフセットが負になって"
4455 "しまう。"
4456
4457 #. type: Plain text
4458 #: build/C/man3/fseek.3:169
4459 msgid ""
4460 "The functions B<fgetpos>(), B<fseek>(), B<fsetpos>(), and B<ftell>()  may "
4461 "also fail and set I<errno> for any of the errors specified for the routines "
4462 "B<fflush>(3), B<fstat>(2), B<lseek>(2), and B<malloc>(3)."
4463 msgstr ""
4464 "B<fgetpos>(), B<fseek>(), B<fsetpos>(), B<ftell>()  は、それぞれ "
4465 "B<fflush>(3), B<fstat>(2), B<lseek>(2), B<malloc>(3)  などのルーチンを呼び出"
4466 "す際に失敗する可能性がある。この場合は それぞれ対応した I<errno> が設定され"
4467 "る。"
4468
4469 #. type: Plain text
4470 #: build/C/man3/fseek.3:174
4471 msgid "B<lseek>(2), B<fseeko>(3)"
4472 msgstr "B<lseek>(2), B<fseeko>(3)"
4473
4474 #. type: TH
4475 #: build/C/man3/fseeko.3:25
4476 #, no-wrap
4477 msgid "FSEEKO"
4478 msgstr "FSEEKO"
4479
4480 #. type: TH
4481 #: build/C/man3/fseeko.3:25
4482 #, no-wrap
4483 msgid "2014-10-02"
4484 msgstr "2014-10-02"
4485
4486 #. type: Plain text
4487 #: build/C/man3/fseeko.3:28
4488 msgid "fseeko, ftello - seek to or report file position"
4489 msgstr "fseeko, ftello - ファイル位置を探す/報告する"
4490
4491 #. type: Plain text
4492 #: build/C/man3/fseeko.3:33
4493 #, no-wrap
4494 msgid "B<int fseeko(FILE *>I<stream>B<, off_t >I<offset>B<, int >I<whence>B<);>\n"
4495 msgstr "B<int fseeko(FILE *>I<stream>B<, off_t >I<offset>B<, int >I<whence>B<);>\n"
4496
4497 #. type: Plain text
4498 #: build/C/man3/fseeko.3:36
4499 #, no-wrap
4500 msgid ""
4501 "B<off_t ftello(FILE *>I<stream>B<);>\n"
4502 "\n"
4503 msgstr ""
4504 "B<off_t ftello(FILE *>I<stream>B<);>\n"
4505 "\n"
4506
4507 #. type: Plain text
4508 #: build/C/man3/fseeko.3:45
4509 msgid "B<fseeko>(), B<ftello>():"
4510 msgstr "B<fseeko>(), B<ftello>():"
4511
4512 #. type: Plain text
4513 #: build/C/man3/fseeko.3:50
4514 msgid ""
4515 "_FILE_OFFSET_BITS\\ ==\\ 64 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || "
4516 "_XOPEN_SOURCE\\ E<gt>=\\ 600"
4517 msgstr ""
4518 "_FILE_OFFSET_BITS\\ ==\\ 64 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || "
4519 "_XOPEN_SOURCE\\ E<gt>=\\ 600"
4520
4521 #. type: Plain text
4522 #: build/C/man3/fseeko.3:52
4523 msgid "(defining the obsolete _LARGEFILE_SOURCE macro also works)"
4524 msgstr "(廃止予定のマクロ _LARGEFILE_SOURCE を指定しても動作する)"
4525
4526 #. type: Plain text
4527 #: build/C/man3/fseeko.3:75
4528 msgid ""
4529 "The B<fseeko>()  and B<ftello>()  functions are identical to B<fseek>(3)  "
4530 "and B<ftell>(3)  (see B<fseek>(3)), respectively, except that the I<offset> "
4531 "argument of B<fseeko>()  and the return value of B<ftello>()  is of type "
4532 "I<off_t> instead of I<long>."
4533 msgstr ""
4534 "B<fseeko>()  関数および B<ftello>()  関数は、 それぞれ B<fseek>(3)  および "
4535 "B<ftell>(3)  と同一の機能を持つ (B<fseek>(3)  を見よ) が、ただし "
4536 "B<fseeko>()  関数の I<offset> 引数と B<ftello>()  の返り値が、 I<long> ではな"
4537 "く I<off_t> になっている。"
4538
4539 #. type: Plain text
4540 #: build/C/man3/fseeko.3:88
4541 msgid ""
4542 "On some architectures, both I<off_t> and I<long> are 32-bit types, but "
4543 "defining B<_FILE_OFFSET_BITS> with the value 64 (before including I<any> "
4544 "header files)  will turn I<off_t> into a 64-bit type."
4545 msgstr ""
4546 "いくつかのアーキテクチャーでは、 I<off_t> と I<long> の両方が 32 ビット型だ"
4547 "が、 (「どの」ヘッダーファイルをインクルードするよりも前に) "
4548 "B<_FILE_OFFSET_BITS> を値 64 で定義すると、 I<off_t> が 64 ビット型になる。"
4549
4550 #. type: Plain text
4551 #: build/C/man3/fseeko.3:97
4552 msgid ""
4553 "On successful completion, B<fseeko>()  returns 0, while B<ftello>()  returns "
4554 "the current offset.  Otherwise, -1 is returned and I<errno> is set to "
4555 "indicate the error."
4556 msgstr ""
4557 "成功した場合、 B<fseeko>()  は 0 を、 B<ftello>()  は現在のオフセットを返"
4558 "す。 失敗した場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
4559
4560 #. type: Plain text
4561 #: build/C/man3/fseeko.3:100
4562 msgid "See the ERRORS in B<fseek>(3)."
4563 msgstr "B<fseek>(3)  の「エラー」の節を参照。"
4564
4565 #. type: Plain text
4566 #: build/C/man3/fseeko.3:102
4567 msgid "These functions are available under glibc since version 2.1."
4568 msgstr "これらの関数はバージョン 2.1 以降の glibc で利用可能である。"
4569
4570 #. type: Plain text
4571 #: build/C/man3/fseeko.3:104
4572 msgid "SUSv2, POSIX.1-2001."
4573 msgstr "SUSv2, POSIX.1-2001."
4574
4575 #. type: Plain text
4576 #: build/C/man3/fseeko.3:106
4577 msgid "These functions are found on System V-like systems."
4578 msgstr "これらの関数は System-V 風のシステムに存在する。"
4579
4580 #. type: Plain text
4581 #: build/C/man3/fseeko.3:108
4582 msgid "B<fseek>(3)"
4583 msgstr "B<fseek>(3)"
4584
4585 #. type: TH
4586 #: build/C/man3/getline.3:26
4587 #, no-wrap
4588 msgid "GETLINE"
4589 msgstr "GETLINE"
4590
4591 #. type: Plain text
4592 #: build/C/man3/getline.3:29
4593 msgid "getline, getdelim - delimited string input"
4594 msgstr "getline, getdelim - 区切り文字までの文字列入力を読み込む"
4595
4596 #. type: Plain text
4597 #: build/C/man3/getline.3:34
4598 #, no-wrap
4599 msgid "B<ssize_t getline(char **>I<lineptr>B<, size_t *>I<n>B<, FILE *>I<stream>B<);>\n"
4600 msgstr "B<ssize_t getline(char **>I<lineptr>B<, size_t *>I<n>B<, FILE *>I<stream>B<);>\n"
4601
4602 #. type: Plain text
4603 #: build/C/man3/getline.3:37
4604 #, no-wrap
4605 msgid "B<ssize_t getdelim(char **>I<lineptr>B<, size_t *>I<n>B<, int >I<delim>B<, FILE *>I<stream>B<);>\n"
4606 msgstr "B<ssize_t getdelim(char **>I<lineptr>B<, size_t *>I<n>B<, int >I<delim>B<, FILE *>I<stream>B<);>\n"
4607
4608 #. type: Plain text
4609 #: build/C/man3/getline.3:47
4610 msgid "B<getline>(), B<getdelim>():"
4611 msgstr "B<getline>(), B<getdelim>():"
4612
4613 #. type: Plain text
4614 #: build/C/man3/getline.3:52
4615 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700"
4616 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700"
4617
4618 #. type: Plain text
4619 #: build/C/man3/getline.3:65
4620 msgid ""
4621 "B<getline>()  reads an entire line from I<stream>, storing the address of "
4622 "the buffer containing the text into I<*lineptr>.  The buffer is null-"
4623 "terminated and includes the newline character, if one was found."
4624 msgstr ""
4625 "B<getline>()  は I<stream> から 1 行全てを読み込み、テキストが含まれている"
4626 "バッファのアドレスを I<*lineptr> に格納する。 バッファはヌル文字 (\\e0) で終"
4627 "端される。 改行文字が見つかった場合は、改行文字もバッファに格納される。"
4628
4629 #. type: Plain text
4630 #: build/C/man3/getline.3:77
4631 msgid ""
4632 "If I<*lineptr> is set to NULL and I<*n> is set 0 before the call, then "
4633 "B<getline>()  will allocate a buffer for storing the line.  This buffer "
4634 "should be freed by the user program even if B<getline>()  failed."
4635 msgstr ""
4636 "I<*lineptr> が NULL にセットされ、 I<*n> が呼び出し前に 0 にセットされた場"
4637 "合、 B<getline>()  は行の内容を格納するためのバッファを確保する。 このバッ"
4638 "ファは、 B<getline>() が失敗した場合であっても、ユーザーのプログラムで解放す"
4639 "べきである。"
4640
4641 #. type: Plain text
4642 #: build/C/man3/getline.3:95
4643 msgid ""
4644 "Alternatively, before calling B<getline>(), I<*lineptr> can contain a "
4645 "pointer to a B<malloc>(3)-allocated buffer I<*n> bytes in size.  If the "
4646 "buffer is not large enough to hold the line, B<getline>()  resizes it with "
4647 "B<realloc>(3), updating I<*lineptr> and I<*n> as necessary."
4648 msgstr ""
4649 "別の方法として、 B<getline>()  を呼び出す際に、 I<*lineptr> に B<malloc>(3)  "
4650 "で確保した大きさ I<*n> バイトのバッファへのポインタを入れて渡すこともでき"
4651 "る。 読み込んだ行を保持するのに十分なバッファがない場合、 B<getline>()  は "
4652 "B<realloc>(3)  を使ってバッファのサイズを変更し、必要に応じて I<*lineptr> と "
4653 "I<*n> を更新する。"
4654
4655 #. type: Plain text
4656 #: build/C/man3/getline.3:101
4657 msgid ""
4658 "In either case, on a successful call, I<*lineptr> and I<*n> will be updated "
4659 "to reflect the buffer address and allocated size respectively."
4660 msgstr ""
4661 "どちらの場合でも、呼び出しに成功したときには、 I<*lineptr> と I<*n> がバッ"
4662 "ファのアドレスと割り当てたサイズを反映した値に更新される。"
4663
4664 #. type: Plain text
4665 #: build/C/man3/getline.3:112
4666 msgid ""
4667 "B<getdelim>()  works like B<getline>(), except that a line delimiter other "
4668 "than newline can be specified as the I<delimiter> argument.  As with "
4669 "B<getline>(), a delimiter character is not added if one was not present in "
4670 "the input before end of file was reached."
4671 msgstr ""
4672 "B<getdelim>()  は B<getline>()  と同じように動作するが、改行文字以外の区切り"
4673 "文字を引き数 I<delim> に指定することができる。 B<getline>()  と同様に、ファイ"
4674 "ル終端に達するまでに入力行に区切り文字が見付からない場合は、 区切り文字をバッ"
4675 "ファに追加しない。"
4676
4677 #. type: Plain text
4678 #: build/C/man3/getline.3:121
4679 msgid ""
4680 "On success, B<getline>()  and B<getdelim>()  return the number of characters "
4681 "read, including the delimiter character, but not including the terminating "
4682 "null byte (\\(aq\\e0\\(aq).  This value can be used to handle embedded null "
4683 "bytes in the line read."
4684 msgstr ""
4685 "成功した場合、 B<getline>()  と B<getdelim>()  は読み込んだ文字数を返す。 文"
4686 "字数には区切り文字は含まれるが、終端に使うヌルバイト (\\(aq\\e0\\(aq) は含ま"
4687 "れない。 この値によって、読み込んだ行に含まれるヌルバイトを操作することができ"
4688 "る。"
4689
4690 #. type: Plain text
4691 #: build/C/man3/getline.3:127
4692 msgid ""
4693 "Both functions return -1 on failure to read a line (including end-of-file "
4694 "condition).  In the event of an error, I<errno> is set to indicate the cause."
4695 msgstr ""
4696 "どちらの関数も、行の読み込みに失敗した場合には -1 を返す (ファイルの終端に達"
4697 "した場合にも -1 を返す)。 エラーが発生した場合には、 I<errno> にエラーの原因"
4698 "を示す値が設定される。"
4699
4700 #. type: Plain text
4701 #: build/C/man3/getline.3:137
4702 msgid "Bad arguments (I<n> or I<lineptr> is NULL, or I<stream> is not valid)."
4703 msgstr ""
4704 "引き数が不正である (I<n> または I<lineptr> が NULL である。 もしくは "
4705 "I<stream> が有効でない)。"
4706
4707 #. type: Plain text
4708 #: build/C/man3/getline.3:144
4709 msgid ""
4710 "Both B<getline>()  and B<getdelim>()  were originally GNU extensions.  They "
4711 "were standardized in POSIX.1-2008."
4712 msgstr ""
4713 "B<getline>()  と B<getdelim>()  は、どちらも元は GNU による拡張であったが、 "
4714 "POSIX.1-2008 で標準化された。"
4715
4716 #. type: Plain text
4717 #: build/C/man3/getline.3:149
4718 #, no-wrap
4719 msgid ""
4720 "#define _GNU_SOURCE\n"
4721 "#include E<lt>stdio.hE<gt>\n"
4722 "#include E<lt>stdlib.hE<gt>\n"
4723 msgstr ""
4724 "#define _GNU_SOURCE\n"
4725 "#include E<lt>stdio.hE<gt>\n"
4726 "#include E<lt>stdlib.hE<gt>\n"
4727
4728 #. type: Plain text
4729 #: build/C/man3/getline.3:157
4730 #, no-wrap
4731 msgid ""
4732 "int\n"
4733 "main(void)\n"
4734 "{\n"
4735 "    FILE *fp;\n"
4736 "    char *line = NULL;\n"
4737 "    size_t len = 0;\n"
4738 "    ssize_t read;\n"
4739 msgstr ""
4740 "int\n"
4741 "main(void)\n"
4742 "{\n"
4743 "    FILE *fp;\n"
4744 "    char *line = NULL;\n"
4745 "    size_t len = 0;\n"
4746 "    ssize_t read;\n"
4747
4748 #. type: Plain text
4749 #: build/C/man3/getline.3:161
4750 #, no-wrap
4751 msgid ""
4752 "    fp = fopen(\"/etc/motd\", \"r\");\n"
4753 "    if (fp == NULL)\n"
4754 "        exit(EXIT_FAILURE);\n"
4755 msgstr ""
4756 "    fp = fopen(\"/etc/motd\", \"r\");\n"
4757 "    if (fp == NULL)\n"
4758 "        exit(EXIT_FAILURE);\n"
4759
4760 #. type: Plain text
4761 #: build/C/man3/getline.3:166
4762 #, no-wrap
4763 msgid ""
4764 "    while ((read = getline(&line, &len, fp)) != -1) {\n"
4765 "        printf(\"Retrieved line of length %zu :\\en\", read);\n"
4766 "        printf(\"%s\", line);\n"
4767 "    }\n"
4768 msgstr ""
4769 "    while ((read = getline(&line, &len, fp)) != -1) {\n"
4770 "        printf(\"Retrieved line of length %zu :\\en\", read);\n"
4771 "        printf(\"%s\", line);\n"
4772 "    }\n"
4773
4774 #. type: Plain text
4775 #: build/C/man3/getline.3:171
4776 #, no-wrap
4777 msgid ""
4778 "    free(line);\n"
4779 "    fclose(fp);\n"
4780 "    exit(EXIT_SUCCESS);\n"
4781 "}\n"
4782 msgstr ""
4783 "    free(line);\n"
4784 "    fclose(fp);\n"
4785 "    exit(EXIT_SUCCESS);\n"
4786 "}\n"
4787
4788 #. type: Plain text
4789 #: build/C/man3/getline.3:178
4790 msgid "B<read>(2), B<fgets>(3), B<fopen>(3), B<fread>(3), B<scanf>(3)"
4791 msgstr "B<read>(2), B<fgets>(3), B<fopen>(3), B<fread>(3), B<scanf>(3)"
4792
4793 #. type: TH
4794 #: build/C/man3/gets.3:29
4795 #, no-wrap
4796 msgid "GETS"
4797 msgstr "GETS"
4798
4799 #. type: TH
4800 #: build/C/man3/gets.3:29
4801 #, no-wrap
4802 msgid "2014-01-24"
4803 msgstr "2014-01-24"
4804
4805 #. type: Plain text
4806 #: build/C/man3/gets.3:32
4807 msgid "gets - get a string from standard input (DEPRECATED)"
4808 msgstr "gets - 標準入力からの文字列を取得する (非推奨)"
4809
4810 #. type: Plain text
4811 #: build/C/man3/gets.3:37
4812 #, no-wrap
4813 msgid "B<char *gets(char *>I<s>B<);>\n"
4814 msgstr "B<char *gets(char *>I<s>B<);>\n"
4815
4816 #. type: Plain text
4817 #: build/C/man3/gets.3:40
4818 msgid "I<Never use this function>."
4819 msgstr "I<この関数は使用しないこと>。"
4820
4821 #. type: Plain text
4822 #: build/C/man3/gets.3:50
4823 msgid ""
4824 "B<gets>()  reads a line from I<stdin> into the buffer pointed to by I<s> "
4825 "until either a terminating newline or B<EOF>, which it replaces with a null "
4826 "byte (\\(aq\\e0\\(aq).  No check for buffer overrun is performed (see BUGS "
4827 "below)."
4828 msgstr ""
4829 "B<gets>()  は、改行文字か B<EOF> までの 1行を I<stdin> から読み込み I<s> が指"
4830 "すバッファに格納する (末尾の改行文字や B<EOF> はヌルバイト (\\(aq\\e0\\(aq) "
4831 "に置き換えられる)。 バッファオーバーランのチェックは行われない (下記の「バ"
4832 "グ」を参照)。"
4833
4834 #. type: Plain text
4835 #: build/C/man3/gets.3:58
4836 msgid ""
4837 "B<gets>()  returns I<s> on success, and NULL on error or when end of file "
4838 "occurs while no characters have been read.  However, given the lack of "
4839 "buffer overrun checking, there can be no guarantees that the function will "
4840 "even return."
4841 msgstr ""
4842 "B<gets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込んでいないのに"
4843 "ファイルの終わりになった 場合に NULL を返す。 しかし、バッファの行き過ぎの"
4844 "チェックが行われないため、この関数が返るという保証はない。"
4845
4846 #. type: Plain text
4847 #: build/C/man3/gets.3:72
4848 msgid ""
4849 "LSB deprecates B<gets>().  POSIX.1-2008 marks B<gets>()  obsolescent.  ISO "
4850 "C11 removes the specification of B<gets>()  from the C language, and since "
4851 "version 2.16, glibc header files don't expose the function declaration if "
4852 "the B<_ISOC11_SOURCE> feature test macro is defined."
4853 msgstr ""
4854 "LSB は B<gets>() を非推奨としている。\n"
4855 "POSIX.1-2008 では B<gets>() に廃止予定の印が付けられている。\n"
4856 "ISO C11 では B<gets>)() の規定が C 言語から削除されている。\n"
4857 "glibc バージョン 2.16 以降では、機能検査マクロ B<_ISOC11_SOURCE> が定義され"
4858 "た\n"
4859 "場合、glibc ヘッダファイルでは B<gets>)() の宣言が公開されない。"
4860
4861 #. type: Plain text
4862 #: build/C/man3/gets.3:86
4863 msgid ""
4864 "Never use B<gets>().  Because it is impossible to tell without knowing the "
4865 "data in advance how many characters B<gets>()  will read, and because "
4866 "B<gets>()  will continue to store characters past the end of the buffer, it "
4867 "is extremely dangerous to use.  It has been used to break computer "
4868 "security.  Use B<fgets>()  instead."
4869 msgstr ""
4870 "B<gets>()  は絶対に使用してはならない。 前もってデータを知ることなしに "
4871 "B<gets>()  が何文字読むかを知ることはできず、 B<gets>()  がバッファの終わりを"
4872 "越えて書き込み続けるため、 B<gets>()  を使うのは極めて危険である。 これを利用"
4873 "してコンピュータのセキュリティが破られてきた。 代わりに B<fgets>()  を使うこ"
4874 "と。"
4875
4876 #. type: Plain text
4877 #: build/C/man3/gets.3:90
4878 msgid ""
4879 "For more information, see CWE-242 (aka \"Use of Inherently Dangerous Function"
4880 "\") at http://cwe.mitre.org/data/definitions/242.html"
4881 msgstr ""
4882 "詳しい情報については、CWE-242 (別名 \"Use of Inherently Dangerous Function"
4883 "\" (「本質的に危険な関数を使う」)) を参照。 http://cwe.mitre.org/data/"
4884 "definitions/242.html で参照できる。"
4885
4886 #. type: Plain text
4887 #: build/C/man3/gets.3:108
4888 msgid ""
4889 "B<read>(2), B<write>(2), B<ferror>(3), B<fgetc>(3), B<fgets>(3), "
4890 "B<fgetwc>(3), B<fgetws>(3), B<fopen>(3), B<fread>(3), B<fseek>(3), "
4891 "B<getline>(3), B<getwchar>(3), B<puts>(3), B<scanf>(3), B<ungetwc>(3), "
4892 "B<unlocked_stdio>(3), B<feature_test_macros>(7)"
4893 msgstr ""
4894 "B<read>(2), B<write>(2), B<ferror>(3), B<fgetc>(3), B<fgets>(3), "
4895 "B<fgetwc>(3), B<fgetws>(3), B<fopen>(3), B<fread>(3), B<fseek>(3), "
4896 "B<getline>(3), B<getwchar>(3), B<puts>(3), B<scanf>(3), B<ungetwc>(3), "
4897 "B<unlocked_stdio>(3), B<feature_test_macros>(7)"
4898
4899 #. type: TH
4900 #: build/C/man3/getw.3:25
4901 #, no-wrap
4902 msgid "GETW"
4903 msgstr "GETW"
4904
4905 #. type: TH
4906 #: build/C/man3/getw.3:25
4907 #, no-wrap
4908 msgid "2010-09-26"
4909 msgstr "2010-09-26"
4910
4911 #. type: Plain text
4912 #: build/C/man3/getw.3:28
4913 msgid "getw, putw - input and output of words (ints)"
4914 msgstr "getw, putw - ワード(int)の入出力"
4915
4916 #. type: Plain text
4917 #: build/C/man3/getw.3:33
4918 #, no-wrap
4919 msgid "B<int getw(FILE *>I<stream>B<);>\n"
4920 msgstr "B<int getw(FILE *>I<stream>B<);>\n"
4921
4922 #. type: Plain text
4923 #: build/C/man3/getw.3:35
4924 #, no-wrap
4925 msgid "B<int putw(int >I<w>B<, FILE *>I<stream>B<);>\n"
4926 msgstr "B<int putw(int >I<w>B<, FILE *>I<stream>B<);>\n"
4927
4928 #. type: Plain text
4929 #: build/C/man3/getw.3:44
4930 msgid "B<getw>(), B<putw>():"
4931 msgstr "B<getw>(), B<putw>():"
4932
4933 #. type: TP
4934 #: build/C/man3/getw.3:47
4935 #, no-wrap
4936 msgid "Since glibc 2.3.3:"
4937 msgstr "glibc 2.3.3 以降:"
4938
4939 #. type: Plain text
4940 #: build/C/man3/getw.3:50
4941 msgid "_SVID_SOURCE || _BSD_SOURCE ||"
4942 msgstr "_SVID_SOURCE || _BSD_SOURCE ||"
4943
4944 #. type: Plain text
4945 #: build/C/man3/getw.3:53
4946 #, no-wrap
4947 msgid ""
4948 "(_XOPEN_SOURCE &&\n"
4949 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600))\n"
4950 msgstr ""
4951 "(_XOPEN_SOURCE &&\n"
4952 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600))\n"
4953
4954 #. type: TP
4955 #: build/C/man3/getw.3:53
4956 #, no-wrap
4957 msgid "Before glibc 2.3.3:"
4958 msgstr "glibc 2.3.3 より前:"
4959
4960 #. type: Plain text
4961 #: build/C/man3/getw.3:56
4962 msgid "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE"
4963 msgstr "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE"
4964
4965 #. type: Plain text
4966 #: build/C/man3/getw.3:66
4967 msgid ""
4968 "B<getw>()  reads a word (that is, an I<int>) from I<stream>.  It's provided "
4969 "for compatibility with SVr4.  We recommend you use B<fread>(3)  instead."
4970 msgstr ""
4971 "B<getw>()  は I<stream> からワード (I<int>型) を読み込む。 この関数は、SVr4 "
4972 "との互換性のために提供されている。 この関数の代わりに B<fread>(3)  を使用する"
4973 "ことを勧める。"
4974
4975 #. type: Plain text
4976 #: build/C/man3/getw.3:73
4977 msgid ""
4978 "B<putw>()  writes the word I<w> (that is, an I<int>) to I<stream>.  It is "
4979 "provided for compatibility with SVr4, but we recommend you use B<fwrite>(3)  "
4980 "instead."
4981 msgstr ""
4982 "B<putw>()  は I<stream> にワード I<w> (I<int>型) を書き込む。 この関数は "
4983 "SVr4 との互換性のために提供されているが、この関数の代わりに B<fwrite>(3)  を"
4984 "使用することを勧める。"
4985
4986 #. type: Plain text
4987 #: build/C/man3/getw.3:80
4988 msgid ""
4989 "Normally, B<getw>()  returns the word read, and B<putw>()  returns 0.  On "
4990 "error, they return B<EOF>."
4991 msgstr ""
4992 "通常、 B<getw>()  は読み込んだワードを返し、 B<putw>()  は 0 を返す。 エラー"
4993 "が発生した場合、これらの関数は B<EOF> を返す。"
4994
4995 #. type: Plain text
4996 #: build/C/man3/getw.3:83
4997 msgid "SVr4, SUSv2.  Not present in POSIX.1-2001."
4998 msgstr "SVr4, SUSv2.  POSIX.1-2001 には存在しない。"
4999
5000 #. type: Plain text
5001 #: build/C/man3/getw.3:87
5002 msgid ""
5003 "The value returned on error is also a legitimate data value.  B<ferror>(3)  "
5004 "can be used to distinguish between the two cases."
5005 msgstr ""
5006 "エラーの時に返される値は、正しいデータとして返されることもある。 "
5007 "B<ferror>(3)  を用いると、この二つの場合を区別することが出来る。"
5008
5009 #. type: Plain text
5010 #: build/C/man3/getw.3:93
5011 msgid "B<ferror>(3), B<fread>(3), B<fwrite>(3), B<getc>(3), B<putc>(3)"
5012 msgstr "B<ferror>(3), B<fread>(3), B<fwrite>(3), B<getc>(3), B<putc>(3)"
5013
5014 #. type: TH
5015 #: build/C/man2/link.2:32
5016 #, no-wrap
5017 msgid "LINK"
5018 msgstr "LINK"
5019
5020 #. type: Plain text
5021 #: build/C/man2/link.2:35
5022 msgid "link, linkat - make a new name for a file"
5023 msgstr "link, linkat - ファイルの新しい名前を作成する"
5024
5025 #. type: Plain text
5026 #: build/C/man2/link.2:38 build/C/man2/pipe.2:42 build/C/man2/read.2:41
5027 #: build/C/man2/readlink.2:50 build/C/man2/symlink.2:39
5028 #: build/C/man2/unlink.2:39
5029 #, no-wrap
5030 msgid "B<#include E<lt>unistd.hE<gt>>\n"
5031 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
5032
5033 #. type: Plain text
5034 #: build/C/man2/link.2:40
5035 #, no-wrap
5036 msgid "B<int link(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
5037 msgstr "B<int link(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
5038
5039 #. type: Plain text
5040 #: build/C/man2/link.2:43 build/C/man2/readlink.2:56 build/C/man2/symlink.2:44
5041 #: build/C/man2/unlink.2:44
5042 #, no-wrap
5043 msgid ""
5044 "B<#include E<lt>fcntl.hE<gt>           >/* Definition of AT_* constants */\n"
5045 "B<#include E<lt>unistd.hE<gt>>\n"
5046 msgstr ""
5047 "B<#include E<lt>fcntl.hE<gt>           >/* AT_* 定数の定義 */\n"
5048 "B<#include E<lt>unistd.hE<gt>>\n"
5049
5050 #. type: Plain text
5051 #: build/C/man2/link.2:46
5052 #, no-wrap
5053 msgid ""
5054 "B<int linkat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
5055 "B<           int >I<newdirfd>B<, const char *>I<newpath>B<, int >I<flags>B<);>\n"
5056 msgstr ""
5057 "B<int linkat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
5058 "B<           int >I<newdirfd>B<, const char *>I<newpath>B<, int >I<flags>B<);>\n"
5059
5060 #. type: Plain text
5061 #: build/C/man2/link.2:54
5062 msgid "B<linkat>():"
5063 msgstr "B<linkat>():"
5064
5065 #. type: Plain text
5066 #: build/C/man2/link.2:63 build/C/man2/open.2:85 build/C/man2/readlink.2:83
5067 #: build/C/man2/rename.2:69 build/C/man2/symlink.2:71 build/C/man2/unlink.2:63
5068 msgid "_ATFILE_SOURCE"
5069 msgstr "_ATFILE_SOURCE"
5070
5071 #. type: Plain text
5072 #: build/C/man2/link.2:69
5073 msgid ""
5074 "B<link>()  creates a new link (also known as a hard link) to an existing "
5075 "file."
5076 msgstr ""
5077 "B<link>()  は存在するファイルへの新しいリンク (link)  (ハードリンク (hard "
5078 "link) ともいう) を作成する。"
5079
5080 #. type: Plain text
5081 #: build/C/man2/link.2:75
5082 msgid "If I<newpath> exists, it will I<not> be overwritten."
5083 msgstr "I<newpath> が存在する場合には、上書きはI<されない>。"
5084
5085 #. type: Plain text
5086 #: build/C/man2/link.2:80
5087 msgid ""
5088 "This new name may be used exactly as the old one for any operation; both "
5089 "names refer to the same file (and so have the same permissions and "
5090 "ownership) and it is impossible to tell which name was the \"original\"."
5091 msgstr ""
5092 "この新しい名前は全ての操作において古い名前と完全に同じように使用される; 両方"
5093 "の名前は同じファイルを参照しており (それで同じ許可 (permission) や所有者 "
5094 "(ownership) となるので)、 どちらの名前が本来のものであるか判別できない。"
5095
5096 #. type: SS
5097 #: build/C/man2/link.2:80
5098 #, no-wrap
5099 msgid "linkat()"
5100 msgstr "linkat()"
5101
5102 #. type: Plain text
5103 #: build/C/man2/link.2:86
5104 msgid ""
5105 "The B<linkat>()  system call operates in exactly the same way as B<link>(), "
5106 "except for the differences described here."
5107 msgstr ""
5108 "B<linkat>() システムコールは B<link>() と全く同様に動作するが、以下で説明する"
5109 "点が異なる。"
5110
5111 #. type: Plain text
5112 #: build/C/man2/link.2:96
5113 msgid ""
5114 "If the pathname given in I<oldpath> is relative, then it is interpreted "
5115 "relative to the directory referred to by the file descriptor I<olddirfd> "
5116 "(rather than relative to the current working directory of the calling "
5117 "process, as is done by B<link>()  for a relative pathname)."
5118 msgstr ""
5119 "I<oldpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスクリ"
5120 "プター I<olddirfd> が参照するディレクトリに対する相対パスと解釈される "
5121 "(B<link>(2) に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
5122 "ワーキングディレクトリに対する相対パスではない)。"
5123
5124 #. type: Plain text
5125 #: build/C/man2/link.2:108
5126 msgid ""
5127 "If I<oldpath> is relative and I<olddirfd> is the special value B<AT_FDCWD>, "
5128 "then I<oldpath> is interpreted relative to the current working directory of "
5129 "the calling process (like B<link>())."
5130 msgstr ""
5131 "I<oldpath> で指定されたパス名が相対パスで、 I<olddirfd> が特別な値 "
5132 "B<AT_FDCWD> の場合、 (B<link>(2) と同様に) I<oldpath> は呼び出したプロセスの"
5133 "カレントワーキングディレクトリに対する相対パスと解釈される。"
5134
5135 #. type: Plain text
5136 #: build/C/man2/link.2:114 build/C/man2/rename.2:158
5137 msgid "If I<oldpath> is absolute, then I<olddirfd> is ignored."
5138 msgstr ""
5139 "I<oldpath> で指定されたパス名が絶対パスの場合、 I<olddirfd> は無視される。"
5140
5141 #. type: Plain text
5142 #: build/C/man2/link.2:122 build/C/man2/rename.2:166
5143 msgid ""
5144 "The interpretation of I<newpath> is as for I<oldpath>, except that a "
5145 "relative pathname is interpreted relative to the directory referred to by "
5146 "the file descriptor I<newdirfd>."
5147 msgstr ""
5148 "I<newpath> の解釈は I<oldpath> と同じである。 相対パスのパス名がファイルディ"
5149 "スクリプター I<newdirfd> が参照するディレクトリと解釈される点だけが異なる。"
5150
5151 #. type: Plain text
5152 #: build/C/man2/link.2:125
5153 msgid "The following values can be bitwise ORed in I<flags>:"
5154 msgstr "以下の値のビット単位の論理和を I<flags> に指定できる。"
5155
5156 #. type: TP
5157 #: build/C/man2/link.2:125
5158 #, no-wrap
5159 msgid "B<AT_EMPTY_PATH> (since Linux 2.6.39)"
5160 msgstr "B<AT_EMPTY_PATH> (Linux 2.6.39 以降)"
5161
5162 #.  commit 11a7b371b64ef39fc5fb1b6f2218eef7c4d035e3
5163 #.  Before glibc 2.16, defining _ATFILE_SOURCE sufficed
5164 #. type: Plain text
5165 #: build/C/man2/link.2:152
5166 msgid ""
5167 "If I<oldpath> is an empty string, create a link to the file referenced by "
5168 "I<olddirfd> (which may have been obtained using the B<open>(2)  B<O_PATH> "
5169 "flag).  In this case, I<olddirfd> can refer to any type of file, not just a "
5170 "directory.  This will generally not work if the file has a link count of "
5171 "zero (files created with B<O_TMPFILE> and without B<O_EXCL> are an "
5172 "exception).  The caller must have the B<CAP_DAC_READ_SEARCH> capability in "
5173 "order to use this flag.  This flag is Linux-specific; define B<_GNU_SOURCE> "
5174 "to obtain its definition."
5175 msgstr ""
5176 "I<oldpath> が空文字列の場合、 I<olddirfd> が参照するファイルへのリンクを作成"
5177 "する (I<olddirfd> は B<open>(2) の B<O_PATH> フラグを使って取得する)。 この場"
5178 "合、 I<olddirfd> はディレクトリ以外の任意の型のファイルを参照することができ"
5179 "る。 一般的には、 ファイルのリンクカウントが 0 の場合は、この操作は成功しな"
5180 "い (ただし、 B<O_TMPFILE> が指定され B<O_EXCL> を指定せずに作成されたファイル"
5181 "は例外である)。 このフラグを使用するためには、 呼び出し元は "
5182 "B<CAP_DAC_READ_SEARCH> ケーパビリティを持っていなければならない。 このフラグ"
5183 "は Linux 固有で、 この定義を得るには B<_GNU_SOURCE> を定義すること。"
5184
5185 #. type: TP
5186 #: build/C/man2/link.2:152
5187 #, no-wrap
5188 msgid "B<AT_SYMLINK_FOLLOW> (since Linux 2.6.18)"
5189 msgstr "B<AT_SYMLINK_FOLLOW> (Linux 2.6.18 以降)"
5190
5191 #. type: Plain text
5192 #: build/C/man2/link.2:171
5193 msgid ""
5194 "By default, B<linkat>(), does not dereference I<oldpath> if it is a symbolic "
5195 "link (like B<link>()).  The flag B<AT_SYMLINK_FOLLOW> can be specified in "
5196 "I<flags> to cause I<oldpath> to be dereferenced if it is a symbolic link.  "
5197 "If procfs is mounted, this can be used as an alternative to "
5198 "B<AT_EMPTY_PATH>, like this:"
5199 msgstr ""
5200 "B<linkat>() は (B<link>() 同様) デフォルトでは I<oldpath> がシンボリックリン"
5201 "クの場合リンクの展開を行わない。 フラグ B<AT_SYMLINK_FOLLOW> を I<flags> に指"
5202 "定することができ、指定した場合 I<oldpath> がシンボリックリンクの場合リンクの"
5203 "展開が行われる。 procfs がマウントされている場合、これは B<AT_EMPTY_PATH> の"
5204 "代替として以下のように使うことができる。"
5205
5206 #. type: Plain text
5207 #: build/C/man2/link.2:176
5208 #, no-wrap
5209 msgid ""
5210 "linkat(AT_FDCWD, \"/proc/self/fd/E<lt>fdE<gt>\", newdirfd,\n"
5211 "       newname, AT_SYMLINK_FOLLOW);\n"
5212 msgstr ""
5213 "linkat(AT_FDCWD, \"/proc/self/fd/E<lt>fdE<gt>\", newdirfd,\n"
5214 "       newname, AT_SYMLINK_FOLLOW);\n"
5215
5216 #. type: Plain text
5217 #: build/C/man2/link.2:182
5218 msgid ""
5219 "Before kernel 2.6.18, the I<flags> argument was unused, and had to be "
5220 "specified as 0."
5221 msgstr ""
5222 "カーネル 2.6.18 より前では、 I<flags> 引き数は未使用で、 0 を指定しなければな"
5223 "らなかった。"
5224
5225 #. type: Plain text
5226 #: build/C/man2/link.2:187
5227 msgid "See B<openat>(2)  for an explanation of the need for B<linkat>()."
5228 msgstr "B<linkat>() の必要性についての説明については B<openat>(2) を参照。"
5229
5230 #. type: Plain text
5231 #: build/C/man2/link.2:192 build/C/man2/pipe.2:138 build/C/man3/remove.3:65
5232 #: build/C/man2/rename.2:208 build/C/man2/rmdir.2:45
5233 #: build/C/man2/symlink.2:145 build/C/man2/unlink.2:158
5234 msgid ""
5235 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
5236 "appropriately."
5237 msgstr ""
5238 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
5239 "定される。"
5240
5241 #. type: TP
5242 #: build/C/man2/link.2:193 build/C/man2/open.2:789 build/C/man2/readlink.2:160
5243 #: build/C/man2/rename.2:209 build/C/man2/rmdir.2:46
5244 #: build/C/man2/symlink.2:146 build/C/man3/tmpfile.3:57
5245 #: build/C/man2/unlink.2:159
5246 #, no-wrap
5247 msgid "B<EACCES>"
5248 msgstr "B<EACCES>"
5249
5250 #. type: Plain text
5251 #: build/C/man2/link.2:204
5252 msgid ""
5253 "Write access to the directory containing I<newpath> is denied, or search "
5254 "permission is denied for one of the directories in the path prefix of "
5255 "I<oldpath> or I<newpath>.  (See also B<path_resolution>(7).)"
5256 msgstr ""
5257 "I<newpath> を含んでいるディレクトリへの書き込みが許されていないか、 "
5258 "I<oldpath> または I<newpath> へのディレクトリのどれかに検索許可がない "
5259 "(B<path_resolution>(7)  を参照)。"
5260
5261 #. type: TP
5262 #: build/C/man2/link.2:204 build/C/man2/open.2:798 build/C/man2/rename.2:245
5263 #: build/C/man2/symlink.2:155 build/C/man2/write.2:135
5264 #, no-wrap
5265 msgid "B<EDQUOT>"
5266 msgstr "B<EDQUOT>"
5267
5268 #. type: Plain text
5269 #: build/C/man2/link.2:207 build/C/man2/rename.2:248
5270 msgid "The user's quota of disk blocks on the filesystem has been exhausted."
5271 msgstr ""
5272 "ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。"
5273
5274 #. type: TP
5275 #: build/C/man2/link.2:207 build/C/man2/open.2:804 build/C/man2/rename.2:368
5276 #: build/C/man2/symlink.2:160 build/C/man3/tmpfile.3:60
5277 #, no-wrap
5278 msgid "B<EEXIST>"
5279 msgstr "B<EEXIST>"
5280
5281 #. type: Plain text
5282 #: build/C/man2/link.2:211
5283 msgid "I<newpath> already exists."
5284 msgstr "I<newpath> が既に存在する。"
5285
5286 #. type: TP
5287 #: build/C/man2/link.2:211 build/C/man2/llseek.2:74 build/C/man2/open.2:810
5288 #: build/C/man2/open_by_handle_at.2:266 build/C/man2/open_by_handle_at.2:321
5289 #: build/C/man2/pipe.2:139 build/C/man2/read.2:118 build/C/man2/readlink.2:165
5290 #: build/C/man2/rename.2:248 build/C/man2/rmdir.2:64
5291 #: build/C/man2/symlink.2:164 build/C/man2/unlink.2:178
5292 #: build/C/man2/write.2:141
5293 #, no-wrap
5294 msgid "B<EFAULT>"
5295 msgstr "B<EFAULT>"
5296
5297 #. type: Plain text
5298 #: build/C/man2/link.2:214 build/C/man2/rename.2:251
5299 msgid "I<oldpath> or I<newpath> points outside your accessible address space."
5300 msgstr ""
5301 "I<oldpath> や I<newpath> がアクセス可能なアドレス空間の外を指している。"
5302
5303 #. type: TP
5304 #: build/C/man2/link.2:214 build/C/man2/read.2:147 build/C/man2/readlink.2:181
5305 #: build/C/man2/symlink.2:167 build/C/man2/unlink.2:182
5306 #: build/C/man2/write.2:165
5307 #, no-wrap
5308 msgid "B<EIO>"
5309 msgstr "B<EIO>"
5310
5311 #. type: Plain text
5312 #: build/C/man2/link.2:217 build/C/man2/symlink.2:170
5313 #: build/C/man2/unlink.2:185
5314 msgid "An I/O error occurred."
5315 msgstr "I/O エラーが発生した。"
5316
5317 #. type: TP
5318 #: build/C/man2/link.2:217 build/C/man2/open.2:871 build/C/man2/open.2:875
5319 #: build/C/man2/open_by_handle_at.2:331 build/C/man2/readlink.2:184
5320 #: build/C/man2/rename.2:261 build/C/man2/rmdir.2:73
5321 #: build/C/man2/symlink.2:170 build/C/man2/unlink.2:190
5322 #, no-wrap
5323 msgid "B<ELOOP>"
5324 msgstr "B<ELOOP>"
5325
5326 #. type: Plain text
5327 #: build/C/man2/link.2:221 build/C/man2/rename.2:265
5328 msgid ""
5329 "Too many symbolic links were encountered in resolving I<oldpath> or "
5330 "I<newpath>."
5331 msgstr ""
5332 "I<oldpath> または I<newpath> を解決する際に遭遇したシンボリックリンクが多過ぎ"
5333 "る。"
5334
5335 #. type: TP
5336 #: build/C/man2/link.2:221 build/C/man2/rename.2:265
5337 #, no-wrap
5338 msgid "B<EMLINK>"
5339 msgstr "B<EMLINK>"
5340
5341 #. type: Plain text
5342 #: build/C/man2/link.2:226
5343 msgid ""
5344 "The file referred to by I<oldpath> already has the maximum number of links "
5345 "to it."
5346 msgstr ""
5347 "I<oldpath> によって参照されるファイルは 既に最大数までのリンクを持っている。"
5348
5349 #. type: TP
5350 #: build/C/man2/link.2:226 build/C/man2/open.2:887 build/C/man2/readlink.2:187
5351 #: build/C/man2/rename.2:272 build/C/man2/rmdir.2:77
5352 #: build/C/man2/symlink.2:174 build/C/man2/unlink.2:194
5353 #, no-wrap
5354 msgid "B<ENAMETOOLONG>"
5355 msgstr "B<ENAMETOOLONG>"
5356
5357 #. type: Plain text
5358 #: build/C/man2/link.2:229 build/C/man2/rename.2:275
5359 msgid "I<oldpath> or I<newpath> was too long."
5360 msgstr "I<oldpath> または I<newpath> が長過ぎる。"
5361
5362 #. type: TP
5363 #: build/C/man2/link.2:229 build/C/man2/link.2:286 build/C/man2/link.2:294
5364 #: build/C/man2/link.2:304 build/C/man2/open.2:901 build/C/man2/open.2:908
5365 #: build/C/man2/open_by_handle_at.2:282 build/C/man2/readlink.2:190
5366 #: build/C/man2/rename.2:275 build/C/man2/rename.2:389 build/C/man2/rmdir.2:80
5367 #: build/C/man2/symlink.2:177 build/C/man2/symlink.2:212
5368 #: build/C/man2/unlink.2:197
5369 #, no-wrap
5370 msgid "B<ENOENT>"
5371 msgstr "B<ENOENT>"
5372
5373 #. type: Plain text
5374 #: build/C/man2/link.2:234
5375 msgid ""
5376 "A directory component in I<oldpath> or I<newpath> does not exist or is a "
5377 "dangling symbolic link."
5378 msgstr ""
5379 "I<oldpath> または I<newpath> のディレクトリ部分が存在しないか、 壊れた"
5380 "(dangling)シンボリックリンクである。"
5381
5382 #. type: TP
5383 #: build/C/man2/link.2:234 build/C/man2/open.2:922 build/C/man2/readlink.2:193
5384 #: build/C/man2/rename.2:288 build/C/man2/rmdir.2:85 build/C/man3/scanf.3:570
5385 #: build/C/man2/symlink.2:184 build/C/man3/tempnam.3:102
5386 #: build/C/man2/unlink.2:204
5387 #, no-wrap
5388 msgid "B<ENOMEM>"
5389 msgstr "B<ENOMEM>"
5390
5391 #. type: Plain text
5392 #: build/C/man2/link.2:237 build/C/man2/open.2:925 build/C/man2/readlink.2:196
5393 #: build/C/man2/rename.2:291 build/C/man2/rmdir.2:88
5394 #: build/C/man2/symlink.2:187 build/C/man2/unlink.2:207
5395 msgid "Insufficient kernel memory was available."
5396 msgstr "十分なカーネルメモリーがない。"
5397
5398 #. type: TP
5399 #: build/C/man2/link.2:237 build/C/man2/open.2:925 build/C/man2/rename.2:291
5400 #: build/C/man2/symlink.2:187 build/C/man3/tmpfile.3:72
5401 #: build/C/man2/write.2:168
5402 #, no-wrap
5403 msgid "B<ENOSPC>"
5404 msgstr "B<ENOSPC>"
5405
5406 #. type: Plain text
5407 #: build/C/man2/link.2:241 build/C/man2/rename.2:295
5408 #: build/C/man2/symlink.2:191
5409 msgid "The device containing the file has no room for the new directory entry."
5410 msgstr ""
5411 "そのファイルを含んでいるデバイスに新しいディレクトリエントリを 作成するための"
5412 "空きがない。"
5413
5414 #. type: TP
5415 #: build/C/man2/link.2:241 build/C/man2/link.2:315 build/C/man2/open.2:931
5416 #: build/C/man2/open.2:1002 build/C/man2/open_by_handle_at.2:289
5417 #: build/C/man2/readlink.2:196 build/C/man2/readlink.2:206
5418 #: build/C/man2/rename.2:295 build/C/man2/rename.2:355 build/C/man2/rmdir.2:88
5419 #: build/C/man2/symlink.2:191 build/C/man2/symlink.2:218
5420 #: build/C/man2/unlink.2:207 build/C/man2/unlink.2:263
5421 #, no-wrap
5422 msgid "B<ENOTDIR>"
5423 msgstr "B<ENOTDIR>"
5424
5425 #. type: Plain text
5426 #: build/C/man2/link.2:246
5427 msgid ""
5428 "A component used as a directory in I<oldpath> or I<newpath> is not, in fact, "
5429 "a directory."
5430 msgstr ""
5431 "I<oldpath> または I<newpath> のディレクトリ部分が、実際には、ディレクトリでな"
5432 "い。"
5433
5434 #. type: TP
5435 #: build/C/man2/link.2:246 build/C/man2/link.2:250 build/C/man2/link.2:325
5436 #: build/C/man2/open.2:970 build/C/man2/open_by_handle_at.2:338
5437 #: build/C/man2/rmdir.2:107 build/C/man2/rmdir.2:118
5438 #: build/C/man2/symlink.2:196 build/C/man2/unlink.2:212
5439 #, no-wrap
5440 msgid "B<EPERM>"
5441 msgstr "B<EPERM>"
5442
5443 #. type: Plain text
5444 #: build/C/man2/link.2:250
5445 msgid "I<oldpath> is a directory."
5446 msgstr "I<oldpath> がディレクトリである。"
5447
5448 #. type: Plain text
5449 #: build/C/man2/link.2:255
5450 msgid ""
5451 "The filesystem containing I<oldpath> and I<newpath> does not support the "
5452 "creation of hard links."
5453 msgstr ""
5454 "I<oldpath> と I<newpath> を含んでいるファイルシステムがハードリンクをサポート"
5455 "していない。"
5456
5457 #. type: TP
5458 #: build/C/man2/link.2:255
5459 #, no-wrap
5460 msgid "B<EPERM> (since Linux 3.6)"
5461 msgstr "B<EPERM> (Linux 3.6 以降)"
5462
5463 #. type: Plain text
5464 #: build/C/man2/link.2:262
5465 msgid ""
5466 "The caller does not have permission to create a hard link to this file (see "
5467 "the description of I</proc/sys/fs/protected_hardlinks> in B<proc>(5))."
5468 msgstr ""
5469 "呼び出し元にこのファイルへのハードリンクを作成する許可がなかった (B<proc>(5) "
5470 "の I</proc/sys/fs/protected_hardlinks> の説明を参照)。"
5471
5472 #. type: TP
5473 #: build/C/man2/link.2:262 build/C/man2/open.2:978 build/C/man2/rename.2:333
5474 #: build/C/man2/rmdir.2:123 build/C/man2/symlink.2:201
5475 #: build/C/man3/tmpfile.3:75 build/C/man2/unlink.2:235
5476 #, no-wrap
5477 msgid "B<EROFS>"
5478 msgstr "B<EROFS>"
5479
5480 #. type: Plain text
5481 #: build/C/man2/link.2:265 build/C/man2/rename.2:336
5482 msgid "The file is on a read-only filesystem."
5483 msgstr "ファイルが読み込み専用のファイルシステムに存在する。"
5484
5485 #. type: TP
5486 #: build/C/man2/link.2:265 build/C/man2/rename.2:336
5487 #, no-wrap
5488 msgid "B<EXDEV>"
5489 msgstr "B<EXDEV>"
5490
5491 #. type: Plain text
5492 #: build/C/man2/link.2:273
5493 msgid ""
5494 "I<oldpath> and I<newpath> are not on the same mounted filesystem.  (Linux "
5495 "permits a filesystem to be mounted at multiple points, but B<link>()  does "
5496 "not work across different mount points, even if the same filesystem is "
5497 "mounted on both.)"
5498 msgstr ""
5499 "I<oldpath> と I<newpath> が同じマウントされたファイルシステムに存在しない。 "
5500 "(Linux は 1 つのファイルシステムを複数のマウント位置に マウントすることを許可"
5501 "している。 しかし B<link>()  は、たとえ同じファイルシステムであっても、 別々"
5502 "のマウント位置を跨いでは動作しない。)"
5503
5504 #. type: Plain text
5505 #: build/C/man2/link.2:276
5506 msgid "The following additional errors can occur for B<linkat>():"
5507 msgstr "B<linkat>() では以下のエラーも発生する。"
5508
5509 #. type: Plain text
5510 #: build/C/man2/link.2:282 build/C/man2/rename.2:355
5511 msgid "I<olddirfd> or I<newdirfd> is not a valid file descriptor."
5512 msgstr "I<olddirfd> か I<newdirfd> が有効なファイルディスクリプタでない。"
5513
5514 #. type: Plain text
5515 #: build/C/man2/link.2:286 build/C/man2/unlink.2:256
5516 msgid "An invalid flag value was specified in I<flags>."
5517 msgstr "無効なフラグ値が I<flags> に指定された。"
5518
5519 #. type: Plain text
5520 #: build/C/man2/link.2:294
5521 msgid ""
5522 "B<AT_EMPTY_PATH> was specified in I<flags>, but the caller did not have the "
5523 "B<CAP_DAC_READ_SEARCH> capability."
5524 msgstr ""
5525 "B<AT_EMPTY_PATH> が I<flags> に指定されたが、呼び出し元が "
5526 "B<CAP_DAC_READ_SEARCH> ケーパビリティを持っていなかった。"
5527
5528 #. type: Plain text
5529 #: build/C/man2/link.2:299
5530 msgid ""
5531 "An attempt was made to link to the I</proc/self/fd/NN> file corresponding to "
5532 "a file descriptor created with"
5533 msgstr ""
5534 "以下の呼び出しで作成されたファイルディスクリプターに対応する I</proc/self/fd/"
5535 "NN> ファイルに対してリンクを行おおうとした。"
5536
5537 #. type: Plain text
5538 #: build/C/man2/link.2:301
5539 #, no-wrap
5540 msgid "    open(path, O_TMPFILE | O_EXCL, mode);\n"
5541 msgstr "    open(path, O_TMPFILE | O_EXCL, mode);\n"
5542
5543 #. type: Plain text
5544 #: build/C/man2/link.2:304
5545 msgid "See B<open>(2)."
5546 msgstr "B<open>(2) 参照。"
5547
5548 #. type: Plain text
5549 #: build/C/man2/link.2:315
5550 msgid ""
5551 "I<oldpath> is a relative pathname and I<olddirfd> refers to a directory that "
5552 "has been deleted, or I<newpath> is a relative pathname and I<newdirfd> "
5553 "refers to a directory that has been deleted."
5554 msgstr ""
5555 "I<oldpath> が相対パス名で、 I<olddirfd> が削除されたディレクトリを参照してい"
5556 "る。 または、 I<newpath> が相対パス名で、 I<newdirfd> が削除されたディレクト"
5557 "リを参照している。"
5558
5559 #. type: Plain text
5560 #: build/C/man2/link.2:325 build/C/man2/rename.2:365
5561 msgid ""
5562 "I<oldpath> is relative and I<olddirfd> is a file descriptor referring to a "
5563 "file other than a directory; or similar for I<newpath> and I<newdirfd>"
5564 msgstr ""
5565 "I<oldpath> が相対パスで、 I<olddirfd> がディレクトリ以外のファイルを参照して"
5566 "いる。または I<newpath> と I<newdirfd> に関して同じ状況である。"
5567
5568 #. type: Plain text
5569 #: build/C/man2/link.2:334
5570 msgid ""
5571 "B<AT_EMPTY_PATH> was specified in I<flags>, I<oldpath> is an empty string, "
5572 "and I<olddirfd> refers to a directory."
5573 msgstr ""
5574 "I<flags> に B<AT_EMPTY_PATH> が指定され、 I<oldpath> が空文字列で、 "
5575 "I<olddirfd> がディレクトリを参照している。"
5576
5577 #. type: Plain text
5578 #: build/C/man2/link.2:338
5579 msgid ""
5580 "B<linkat>()  was added to Linux in kernel 2.6.16; library support was added "
5581 "to glibc in version 2.4."
5582 msgstr ""
5583 "B<linkat>()  はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポー"
5584 "トはバージョン 2.4 で glibc に追加された。"
5585
5586 #.  SVr4 documents additional ENOLINK and
5587 #.  EMULTIHOP error conditions; POSIX.1 does not document ELOOP.
5588 #.  X/OPEN does not document EFAULT, ENOMEM or EIO.
5589 #. type: Plain text
5590 #: build/C/man2/link.2:344
5591 msgid "B<link>(): SVr4, 4.3BSD, POSIX.1-2001 (but see NOTES), POSIX.1-2008."
5592 msgstr ""
5593 "B<link>(): SVr4, 4.3BSD, POSIX.1-2001 (但し「注意」を参照), POSIX.1-2008."
5594
5595 #. type: Plain text
5596 #: build/C/man2/link.2:347
5597 msgid "B<linkat>(): POSIX.1-2008."
5598 msgstr "B<linkat>(): POSIX.1-2008."
5599
5600 #. type: Plain text
5601 #: build/C/man2/link.2:354
5602 msgid ""
5603 "Hard links, as created by B<link>(), cannot span filesystems.  Use "
5604 "B<symlink>(2)  if this is required."
5605 msgstr ""
5606 "B<link>()  でファイルシステムを超えてハードリンクを作成することはできない。 "
5607 "このような場合は B<symlink>(2)  を使用すること。"
5608
5609 #.  more precisely: since kernel 1.3.56
5610 #.  For example, the default Solaris compilation environment
5611 #.  behaves like Linux, and contributors to a March 2005
5612 #.  thread in the Austin mailing list reported that some
5613 #.  other (System V) implementations did/do the same -- MTK, Apr 05
5614 #. type: Plain text
5615 #: build/C/man2/link.2:385
5616 msgid ""
5617 "POSIX.1-2001 says that B<link>()  should dereference I<oldpath> if it is a "
5618 "symbolic link.  However, since kernel 2.0, Linux does not do so: if "
5619 "I<oldpath> is a symbolic link, then I<newpath> is created as a (hard) link "
5620 "to the same symbolic link file (i.e., I<newpath> becomes a symbolic link to "
5621 "the same file that I<oldpath> refers to).  Some other implementations behave "
5622 "in the same manner as Linux.  POSIX.1-2008 changes the specification of "
5623 "B<link>(), making it implementation-dependent whether or not I<oldpath> is "
5624 "dereferenced if it is a symbolic link.  For precise control over the "
5625 "treatment of symbolic links when creating a link, use B<linkat>(2)."
5626 msgstr ""
5627 "POSIX.1-2001 では、 I<oldpath> がシンボリックリンクである場合、 B<link>()  "
5628 "は I<oldpath> の参照を解決すべきであると記述されている。 しかし、カーネル "
5629 "2.0 以降の Linux ではそのようになっていない。 I<oldpath> がシンボリックリンク"
5630 "である場合、 I<newpath> は同じシンボリックリンクファイルへの (ハード) リンク"
5631 "として作成される (つまり I<newpath> は I<oldpath> が参照していた同じファイル"
5632 "へのシンボリックリンクになる)。 他のいくつかの実装でも Linux と同じように動作"
5633 "する。 POSIX.1-2008 では B<link>()  の仕様が変更され、 I<oldpath> がシンボ"
5634 "リックリンクの場合にシンボリックリンクの参照を 解決するかどうかは実装依存と"
5635 "なった。 リンク作成時のシンボリックリンクの扱いについての詳細な制御を行う場合"
5636 "には B<linkat>(2) を使用すること。"
5637
5638 #. type: Plain text
5639 #: build/C/man2/link.2:405
5640 msgid ""
5641 "On older kernels where B<linkat>()  is unavailable, the glibc wrapper "
5642 "function falls back to the use of B<link>(), unless the B<AT_SYMLINK_FOLLOW> "
5643 "is specified.  When I<oldpath> and I<newpath> are relative pathnames, glibc "
5644 "constructs pathnames based on the symbolic links in I</proc/self/fd> that "
5645 "correspond to the I<olddirfd> and I<newdirfd> arguments."
5646 msgstr ""
5647 "B<linkat>() が利用できない古いカーネルでは、 B<AT_SYMLINK_FOLLOW> が指定され"
5648 "ていない場合、 glibc ラッパー関数は B<link>() を使用するモードにフォールバッ"
5649 "クする。 I<oldpath> と I<newpath> が相対パスの場合、 glibc は I<olddirfd> と "
5650 "I<newdirfd> 引き数に対応する I</proc/self/fd> のシンボリックリンクに基づいて"
5651 "それぞれパス名を構成する。"
5652
5653 #. type: Plain text
5654 #: build/C/man2/link.2:411
5655 msgid ""
5656 "On NFS filesystems, the return code may be wrong in case the NFS server "
5657 "performs the link creation and dies before it can say so.  Use B<stat>(2)  "
5658 "to find out if the link got created."
5659 msgstr ""
5660 "NFS ファイルシステムでは、NFS サーバーがリンクを作成した後に、 それを伝える前"
5661 "に死んだ場合には返り値が不正な場合がある。 リンクが作成できたかどうか見つける"
5662 "ためには B<stat>(2)  を使用すること。"
5663
5664 #. type: Plain text
5665 #: build/C/man2/link.2:420
5666 msgid ""
5667 "B<ln>(1), B<open>(2), B<rename>(2), B<stat>(2), B<symlink>(2), B<unlink>(2), "
5668 "B<path_resolution>(7), B<symlink>(7)"
5669 msgstr ""
5670 "B<ln>(1), B<open>(2), B<rename>(2), B<stat>(2), B<symlink>(2), B<unlink>(2), "
5671 "B<path_resolution>(7), B<symlink>(7)"
5672
5673 #. type: TH
5674 #: build/C/man2/llseek.2:28
5675 #, no-wrap
5676 msgid "LLSEEK"
5677 msgstr "LLSEEK"
5678
5679 #. type: TH
5680 #: build/C/man2/llseek.2:28
5681 #, no-wrap
5682 msgid "2012-07-13"
5683 msgstr "2012-07-13"
5684
5685 #. type: Plain text
5686 #: build/C/man2/llseek.2:31
5687 msgid "_llseek - reposition read/write file offset"
5688 msgstr "_llseek - ファイルの読み書きオフセットの位置を変える"
5689
5690 #. type: Plain text
5691 #: build/C/man2/llseek.2:35
5692 #, no-wrap
5693 msgid ""
5694 "B<#include E<lt>sys/types.hE<gt>>\n"
5695 "B<#include E<lt>unistd.hE<gt>>\n"
5696 msgstr ""
5697 "B<#include E<lt>sys/types.hE<gt>>\n"
5698 "B<#include E<lt>unistd.hE<gt>>\n"
5699
5700 #. type: Plain text
5701 #: build/C/man2/llseek.2:39
5702 #, no-wrap
5703 msgid ""
5704 "B<int _llseek(unsigned int >I<fd>B<, unsigned long >I<offset_high>B<,>\n"
5705 "B<            unsigned long >I<offset_low>B<, loff_t *>I<result>B<,>\n"
5706 "B<            unsigned int >I<whence>B<);>\n"
5707 msgstr ""
5708 "B<int _llseek(unsigned int >I<fd>B<, unsigned long >I<offset_high>B<,>\n"
5709 "B<            unsigned long >I<offset_low>B<, loff_t *>I<result>B<,>\n"
5710 "B<            unsigned int >I<whence>B<);>\n"
5711
5712 #. type: Plain text
5713 #: build/C/man2/llseek.2:43
5714 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
5715 msgstr ""
5716 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
5717 "を参照。"
5718
5719 #. type: Plain text
5720 #: build/C/man2/llseek.2:62
5721 msgid ""
5722 "The B<_llseek>()  function repositions the offset of the open file "
5723 "associated with the file descriptor I<fd> to I<(offset_highE<lt>E<lt>32) | "
5724 "offset_low> bytes relative to the beginning of the file, the current "
5725 "position in the file, or the end of the file, depending on whether I<whence> "
5726 "is B<SEEK_SET>, B<SEEK_CUR>, or B<SEEK_END>, respectively.  It returns the "
5727 "resulting file position in the argument I<result>."
5728 msgstr ""
5729 "B<_llseek>()  関数は、ファイルディスクリプタ (descriptor)  I<fd> に関連づけら"
5730 "れたオープンされたファイルのオフセットの位置を、相対的に "
5731 "I<(offset_highE<lt>E<lt>32) | offset_low> バイトだけ変更する。 基準となる位置"
5732 "を表す I<whence> には B<SEEK_SET>, B<SEEK_CUR>, B<SEEK_END> のいずれかを指定"
5733 "し、それぞれ ファイルの先頭、ファイルの現在位置、 ファイルの最後を表す。 結果"
5734 "のファイル位置を I<result> 引き数に返す。"
5735
5736 #. type: Plain text
5737 #: build/C/man2/llseek.2:69
5738 msgid ""
5739 "Upon successful completion, B<_llseek>()  returns 0.  Otherwise, a value of "
5740 "-1 is returned and I<errno> is set to indicate the error."
5741 msgstr ""
5742 "成功した場合は、 B<_llseek>()  は 0 を返す。 そうでなれば -1 という値が返り、"
5743 "エラーを示す I<errno> が設定される。"
5744
5745 #. type: Plain text
5746 #: build/C/man2/llseek.2:74 build/C/man2/lseek.2:192
5747 msgid "I<fd> is not an open file descriptor."
5748 msgstr "I<fd> がオープンされたファイルディスクリプタでない。"
5749
5750 #. type: Plain text
5751 #: build/C/man2/llseek.2:77
5752 msgid "Problem with copying results to user space."
5753 msgstr "結果をユーザ空間にコピーするときに問題があった。"
5754
5755 #. type: Plain text
5756 #: build/C/man2/llseek.2:81
5757 msgid "I<whence> is invalid."
5758 msgstr "I<whence> が不正である。"
5759
5760 #. type: Plain text
5761 #: build/C/man2/llseek.2:84
5762 msgid ""
5763 "This function is Linux-specific, and should not be used in programs intended "
5764 "to be portable."
5765 msgstr ""
5766 "この関数は Linux 特有であり、移植性の必要なプログラムでは使用してはいけない。"
5767
5768 #. type: Plain text
5769 #: build/C/man2/llseek.2:87
5770 msgid ""
5771 "Glibc does not provide a wrapper for this system call; call it using "
5772 "B<syscall>(2)."
5773 msgstr ""
5774 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
5775 "B<syscall>(2)  を使って呼び出すこと。"
5776
5777 #. type: Plain text
5778 #: build/C/man2/llseek.2:90
5779 msgid "B<lseek>(2), B<lseek64>(3)"
5780 msgstr "B<lseek>(2), B<lseek64>(3)"
5781
5782 #. type: TH
5783 #: build/C/man2/lseek.2:47
5784 #, no-wrap
5785 msgid "LSEEK"
5786 msgstr "LSEEK"
5787
5788 #. type: TH
5789 #: build/C/man2/lseek.2:47 build/C/man2/open_by_handle_at.2:25
5790 #, no-wrap
5791 msgid "2014-06-13"
5792 msgstr "2014-06-13"
5793
5794 #. type: Plain text
5795 #: build/C/man2/lseek.2:50
5796 msgid "lseek - reposition read/write file offset"
5797 msgstr "lseek - ファイルの読み書きオフセットの位置を変える"
5798
5799 #. type: Plain text
5800 #: build/C/man2/lseek.2:52 build/C/man3/lseek64.3:32
5801 msgid "B<#include E<lt>sys/types.hE<gt>>"
5802 msgstr "B<#include E<lt>sys/types.hE<gt>>"
5803
5804 #. type: Plain text
5805 #: build/C/man2/lseek.2:54 build/C/man3/lseek64.3:34 build/C/man2/rmdir.2:35
5806 #: build/C/man2/write.2:44
5807 msgid "B<#include E<lt>unistd.hE<gt>>"
5808 msgstr "B<#include E<lt>unistd.hE<gt>>"
5809
5810 #. type: Plain text
5811 #: build/C/man2/lseek.2:56
5812 msgid "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>"
5813 msgstr "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>"
5814
5815 #. type: Plain text
5816 #: build/C/man2/lseek.2:67
5817 msgid ""
5818 "The B<lseek>()  function repositions the offset of the open file associated "
5819 "with the file descriptor I<fd> to the argument I<offset> according to the "
5820 "directive I<whence> as follows:"
5821 msgstr ""
5822 "B<lseek>()  関数は、ファイルディスクリプタ (descriptor)  I<fd> に対応するオー"
5823 "プンされたファイルのオフセットを、 I<whence> に基づき I<offset> 引き数の位置"
5824 "へ以下のように変更する:"
5825
5826 #. type: Plain text
5827 #: build/C/man2/lseek.2:72
5828 msgid "The offset is set to I<offset> bytes."
5829 msgstr "オフセットは I<offset> バイトに設定される。"
5830
5831 #. type: Plain text
5832 #: build/C/man2/lseek.2:77
5833 msgid "The offset is set to its current location plus I<offset> bytes."
5834 msgstr "オフセットは現在位置に I<offset> バイトを足した位置になる。"
5835
5836 #. type: Plain text
5837 #: build/C/man2/lseek.2:82
5838 msgid "The offset is set to the size of the file plus I<offset> bytes."
5839 msgstr "オフセットはファイルのサイズに I<offset> バイトを足した位置になる。"
5840
5841 #. type: Plain text
5842 #: build/C/man2/lseek.2:90
5843 msgid ""
5844 "The B<lseek>()  function allows the file offset to be set beyond the end of "
5845 "the file (but this does not change the size of the file).  If data is later "
5846 "written at this point, subsequent reads of the data in the gap (a \"hole\") "
5847 "return null bytes (\\(aq\\e0\\(aq) until data is actually written into the "
5848 "gap."
5849 msgstr ""
5850 "B<lseek>()  関数は、オフセットをファイルの末尾を越えた位置に設定できる (但"
5851 "し、これによりファイルのサイズが変わらない)。 もしデータがこのオフセット位置"
5852 "以降に書き込まれた場合、 間の空隙の部分 (\"穴 (hole)\") の読み出しがあると、 "
5853 "実際にそこにデータを書き込まれるまではヌルバイト (\\(aq\\e0\\(aq) の列が返さ"
5854 "れる。"
5855
5856 #. type: SS
5857 #: build/C/man2/lseek.2:90
5858 #, no-wrap
5859 msgid "Seeking file data and holes"
5860 msgstr "ファイルのデータとホールの探索"
5861
5862 #. type: Plain text
5863 #: build/C/man2/lseek.2:93
5864 msgid ""
5865 "Since version 3.1, Linux supports the following additional values for "
5866 "I<whence>:"
5867 msgstr ""
5868 "Linux バージョン 3.1 以降では、 I<whence> に以下の値も指定することができる。"
5869
5870 #. type: TP
5871 #: build/C/man2/lseek.2:93
5872 #, no-wrap
5873 msgid "B<SEEK_DATA>"
5874 msgstr "B<SEEK_DATA>"
5875
5876 #. type: Plain text
5877 #: build/C/man2/lseek.2:104
5878 msgid ""
5879 "Adjust the file offset to the next location in the file greater than or "
5880 "equal to I<offset> containing data.  If I<offset> points to data, then the "
5881 "file offset is set to I<offset>."
5882 msgstr ""
5883 "ファイルオフセットを I<offset> 以上で次にデータがある位置に設定する。 "
5884 "I<offset> がデータを指している場合には、 ファイルオフセットは I<offset> に設"
5885 "定される。"
5886
5887 #. type: TP
5888 #: build/C/man2/lseek.2:104
5889 #, no-wrap
5890 msgid "B<SEEK_HOLE>"
5891 msgstr "B<SEEK_HOLE>"
5892
5893 #. type: Plain text
5894 #: build/C/man2/lseek.2:118
5895 msgid ""
5896 "Adjust the file offset to the next hole in the file greater than or equal to "
5897 "I<offset>.  If I<offset> points into the middle of a hole, then the file "
5898 "offset is set to I<offset>.  If there is no hole past I<offset>, then the "
5899 "file offset is adjusted to the end of the file (i.e., there is an implicit "
5900 "hole at the end of any file)."
5901 msgstr ""
5902 "ファイルオフセットを、 位置が I<offset> 以上の次のホール (hole) に設定する。 "
5903 "I<offset> がホールの内部にある場合は、ファイルシステムは I<offset> に設定され"
5904 "る。 I<offset> 以降にホールがない場合は、 ファイルオフセットはファイル末尾に"
5905 "設定される (つまり、 どのファイルの末尾にも暗黙のホールが存在するということ"
5906 "だ)。"
5907
5908 #. type: Plain text
5909 #: build/C/man2/lseek.2:124
5910 msgid ""
5911 "In both of the above cases, B<lseek>()  fails if I<offset> points past the "
5912 "end of the file."
5913 msgstr ""
5914 "上記のどちらの場合も、 I<offset> がファイル末尾よりも先を指している場合には "
5915 "B<lseek>() は失敗する。"
5916
5917 #. type: Plain text
5918 #: build/C/man2/lseek.2:130
5919 msgid ""
5920 "These operations allow applications to map holes in a sparsely allocated "
5921 "file.  This can be useful for applications such as file backup tools, which "
5922 "can save space when creating backups and preserve holes, if they have a "
5923 "mechanism for discovering holes."
5924 msgstr ""
5925 "これらの操作を使うことで、 アプリケーションが、 まばら (sparse ) にページが割"
5926 "り当てられたファイルでホールをマップすることができる。 この機能はファイルバッ"
5927 "クアップツールなどのアプリケーションで有用である。 ホールを見つける仕組みがあ"
5928 "れば、 ファイルバックアップツールで、 バックアップを作成する際に保存領域を節"
5929 "約し、ホールを保持することができる。"
5930
5931 #.  https://lkml.org/lkml/2011/4/22/79
5932 #.  http://lwn.net/Articles/440255/
5933 #.  http://blogs.oracle.com/bonwick/entry/seek_hole_and_seek_data
5934 #. type: Plain text
5935 #: build/C/man2/lseek.2:153
5936 msgid ""
5937 "For the purposes of these operations, a hole is a sequence of zeros that "
5938 "(normally) has not been allocated in the underlying file storage.  However, "
5939 "a filesystem is not obliged to report holes, so these operations are not a "
5940 "guaranteed mechanism for mapping the storage space actually allocated to a "
5941 "file.  (Furthermore, a sequence of zeros that actually has been written to "
5942 "the underlying storage may not be reported as a hole.)  In the simplest "
5943 "implementation, a filesystem can support the operations by making "
5944 "B<SEEK_HOLE> always return the offset of the end of the file, and making "
5945 "B<SEEK_DATA> always return I<offset> (i.e., even if the location referred to "
5946 "by I<offset> is a hole, it can be considered to consist of data that is a "
5947 "sequence of zeros)."
5948 msgstr ""
5949 "これらの操作の目的としては、 ホールは (通常は) バックエンドのファイルストレー"
5950 "ジには割り当てられていない連続する 0 の列である。 しかし、ファイルシステムに"
5951 "はホールを報告する義務はなく、 そのため、 これらの操作は、 ファイルに実際に割"
5952 "り当てられたストレージ領域をマッピングする方法としては確実性のある仕組みでは"
5953 "ない。 (また、バックエンドのストレージに実際に書き込まれた連続する 0 の列は"
5954 "ホールとして報告されないこともある。) 最も単純な実装としては、 B<SEEK_HOLE> "
5955 "は常にファイル末尾のオフセットを返すようにし、 B<SEEK_DATA> は常に I<offset> "
5956 "を返すようにすることで、 ファイルシステムはこれらの操作をサポートすることがで"
5957 "きる (B<SEEK_DATA> は常に I<offset> を返すというのは、 I<offset> が参照する場"
5958 "所がホールであったとしても、 連続する 0 の列のデータで構成されているとみなす"
5959 "ということである)。"
5960
5961 #. type: Plain text
5962 #: build/C/man2/lseek.2:162
5963 msgid ""
5964 "The B<_GNU_SOURCE> feature test macro must be defined in order to obtain the "
5965 "definitions of B<SEEK_DATA> and B<SEEK_HOLE> from I<E<lt>unistd.hE<gt>>."
5966 msgstr ""
5967 "I<E<lt>unistd.hE<gt>> から B<SEEK_DATA> と B<SEEK_HOLE> の定義を得るには、 機"
5968 "能検査マクロ B<_GNU_SOURCE> を定義しなければならない。"
5969
5970 #. type: Plain text
5971 #: build/C/man2/lseek.2:168
5972 msgid ""
5973 "The B<SEEK_HOLE> and B<SEEK_DATA> operations are supported for the following "
5974 "filesystems:"
5975 msgstr ""
5976 "B<SEEK_HOLE>, B<SEEK_DATA> 操作に対応しているのは以下のファイルシステムであ"
5977 "る。"
5978
5979 #. type: Plain text
5980 #: build/C/man2/lseek.2:170
5981 msgid "Btrfs (since Linux 3.1)"
5982 msgstr "Btrfs (Linux 3.1 以降)"
5983
5984 #.  commit 93862d5e1ab875664c6cc95254fc365028a48bb1
5985 #. type: Plain text
5986 #: build/C/man2/lseek.2:173
5987 msgid "OCFS (since Linux 3.2)"
5988 msgstr "OCFS (Linux 3.2 以降)"
5989
5990 #. type: Plain text
5991 #: build/C/man2/lseek.2:175
5992 msgid "XFS (since Linux 3.5)"
5993 msgstr "XFS (Linux 3.5 以降)"
5994
5995 #. type: Plain text
5996 #: build/C/man2/lseek.2:177
5997 msgid "ext4 (since Linux 3.8)"
5998 msgstr "ext4 (Linux 3.8 以降)"
5999
6000 #. type: Plain text
6001 #: build/C/man2/lseek.2:179
6002 msgid "tmpfs (since Linux 3.8)"
6003 msgstr "tmpfs (Linux 3.8 以降)"
6004
6005 #. type: Plain text
6006 #: build/C/man2/lseek.2:187
6007 msgid ""
6008 "Upon successful completion, B<lseek>()  returns the resulting offset "
6009 "location as measured in bytes from the beginning of the file.  On error, the "
6010 "value I<(off_t)\\ -1> is returned and I<errno> is set to indicate the error."
6011 msgstr ""
6012 "成功した場合、 B<lseek>()  は結果のファイル位置をファイルの先頭からのバイト数"
6013 "で返す。 エラーの場合、値 I<(off_t)\\ -1> が返され、 I<errno> にエラーが指示"
6014 "される。"
6015
6016 #.  Some systems may allow negative offsets for character devices
6017 #.  and/or for remote filesystems.
6018 #. type: Plain text
6019 #: build/C/man2/lseek.2:200
6020 msgid ""
6021 "I<whence> is not valid.  Or: the resulting file offset would be negative, or "
6022 "beyond the end of a seekable device."
6023 msgstr ""
6024 "I<whence> が有効な値ではない。または、seek の結果、ファイルオフセットが負に\n"
6025 "なってしまうか、 seek 可能なデバイスの末尾を越えてしまう。"
6026
6027 #. type: TP
6028 #: build/C/man2/lseek.2:200 build/C/man2/open.2:950
6029 #: build/C/man2/open_by_handle_at.2:304
6030 #, no-wrap
6031 msgid "B<EOVERFLOW>"
6032 msgstr "B<EOVERFLOW>"
6033
6034 #.  HP-UX 11 says EINVAL for this case (but POSIX.1 says EOVERFLOW)
6035 #. type: Plain text
6036 #: build/C/man2/lseek.2:205
6037 msgid "The resulting file offset cannot be represented in an I<off_t>."
6038 msgstr "結果のファイルオフセットを I<off_t> 型で表現することができない。"
6039
6040 #. type: TP
6041 #: build/C/man2/lseek.2:205
6042 #, no-wrap
6043 msgid "B<ESPIPE>"
6044 msgstr "B<ESPIPE>"
6045
6046 #. type: Plain text
6047 #: build/C/man2/lseek.2:209
6048 msgid "I<fd> is associated with a pipe, socket, or FIFO."
6049 msgstr "I<fd> がパイプ、ソケット、FIFO を参照している。"
6050
6051 #. type: TP
6052 #: build/C/man2/lseek.2:209 build/C/man2/open.2:938
6053 #, no-wrap
6054 msgid "B<ENXIO>"
6055 msgstr "B<ENXIO>"
6056
6057 #. type: Plain text
6058 #: build/C/man2/lseek.2:217
6059 msgid ""
6060 "I<whence> is B<SEEK_DATA> or B<SEEK_HOLE>, and the current file offset is "
6061 "beyond the end of the file."
6062 msgstr ""
6063 "I<whence> が B<SEEK_DATA> か B<SEEK_HOLE> で、\n"
6064 "現在のファイルオフセットがファイルの末尾を超えた位置である。"
6065
6066 #.  SVr4 documents additional error
6067 #.  conditions EDEADLK, ENOLCK, ENOLNK, ENOSR, ENXIO, or ERANGE.
6068 #. type: Plain text
6069 #: build/C/man2/lseek.2:219 build/C/man2/read.2:175 build/C/man2/rmdir.2:129
6070 #: build/C/man2/write.2:189
6071 msgid "SVr4, 4.3BSD, POSIX.1-2001."
6072 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
6073
6074 #.  FIXME . Review http://austingroupbugs.net/view.php?id=415 in the future
6075 #. type: Plain text
6076 #: build/C/man2/lseek.2:227
6077 msgid ""
6078 "B<SEEK_DATA> and B<SEEK_HOLE> are nonstandard extensions also present in "
6079 "Solaris, FreeBSD, and DragonFly BSD; they are proposed for inclusion in the "
6080 "next POSIX revision (Issue 8)."
6081 msgstr ""
6082 "B<SEEK_DATA> と B<SEEK_HOLE> は非標準の拡張で、 Solaris, FreeBSD, DragonFly "
6083 "BSD にも存在する。 これらは POSIX の次の版 (Issue 8) に入れるよう提案されてい"
6084 "る。"
6085
6086 #. type: Plain text
6087 #: build/C/man2/lseek.2:232
6088 msgid ""
6089 "See B<open>(2)  for a discussion of the relationship between file "
6090 "descriptors, open file descriptions, and files."
6091 msgstr ""
6092 "ファイルディスクリプタ、オープンファイル記述、ファイルの関係の説明については "
6093 "B<open>(2) を参照。"
6094
6095 #. type: Plain text
6096 #: build/C/man2/lseek.2:236
6097 msgid ""
6098 "Some devices are incapable of seeking and POSIX does not specify which "
6099 "devices must support B<lseek>()."
6100 msgstr ""
6101 "いくつかのデバイスでは seek ができない。 POSIX はどのデバイスが B<lseek>()  "
6102 "に対応すべきかは規定していない。"
6103
6104 #.  Other systems return the number of written characters,
6105 #.  using SEEK_SET to set the counter. (Of written characters.)
6106 #. type: Plain text
6107 #: build/C/man2/lseek.2:243
6108 msgid "On Linux, using B<lseek>()  on a terminal device returns B<ESPIPE>."
6109 msgstr ""
6110 "Linux では、端末 (terminal) デバイスに B<lseek>() を使用すると B<ESPIPE> が返"
6111 "る。"
6112
6113 #. type: Plain text
6114 #: build/C/man2/lseek.2:246
6115 msgid ""
6116 "When converting old code, substitute values for I<whence> with the following "
6117 "macros:"
6118 msgstr "古いコードを変換する時は I<whence> の値を以下のマクロに置き換えること:"
6119
6120 #. type: tbl table
6121 #: build/C/man2/lseek.2:249
6122 #, no-wrap
6123 msgid "old\tnew\n"
6124 msgstr "old \tnew\n"
6125
6126 #. type: tbl table
6127 #: build/C/man2/lseek.2:250
6128 #, no-wrap
6129 msgid "0\tSEEK_SET\n"
6130 msgstr "0\tSEEK_SET\n"
6131
6132 #. type: tbl table
6133 #: build/C/man2/lseek.2:251
6134 #, no-wrap
6135 msgid "1\tSEEK_CUR\n"
6136 msgstr "1\tSEEK_CUR\n"
6137
6138 #. type: tbl table
6139 #: build/C/man2/lseek.2:252
6140 #, no-wrap
6141 msgid "2\tSEEK_END\n"
6142 msgstr "2\tSEEK_END\n"
6143
6144 #. type: tbl table
6145 #: build/C/man2/lseek.2:253
6146 #, no-wrap
6147 msgid "L_SET\tSEEK_SET\n"
6148 msgstr "L_SET\tSEEK_SET\n"
6149
6150 #. type: tbl table
6151 #: build/C/man2/lseek.2:254
6152 #, no-wrap
6153 msgid "L_INCR\tSEEK_CUR\n"
6154 msgstr "L_INCR\tSEEK_CUR\n"
6155
6156 #. type: tbl table
6157 #: build/C/man2/lseek.2:255
6158 #, no-wrap
6159 msgid "L_XTND\tSEEK_END\n"
6160 msgstr "L_XTND\tSEEK_END\n"
6161
6162 #. type: Plain text
6163 #: build/C/man2/lseek.2:267
6164 msgid ""
6165 "Note that file descriptors created by B<dup>(2)  or B<fork>(2)  share the "
6166 "current file position pointer, so seeking on such files may be subject to "
6167 "race conditions."
6168 msgstr ""
6169 "B<dup>(2)  や B<fork>(2)  で作成されたファイルディスクリプタは、現在のファイ"
6170 "ル位置ポインタ (current file position pointer) を共有しているので、 このよう"
6171 "なファイルで移動を行うと競合状態を引き起こす可能性がある。"
6172
6173 #. type: Plain text
6174 #: build/C/man2/lseek.2:274
6175 msgid ""
6176 "B<dup>(2), B<fork>(2), B<open>(2), B<fseek>(3), B<lseek64>(3), "
6177 "B<posix_fallocate>(3)"
6178 msgstr ""
6179 "B<dup>(2), B<fork>(2), B<open>(2), B<fseek>(3), B<lseek64>(3), "
6180 "B<posix_fallocate>(3)"
6181
6182 #. type: TH
6183 #: build/C/man3/lseek64.3:25
6184 #, no-wrap
6185 msgid "LSEEK64"
6186 msgstr "LSEEK64"
6187
6188 #. type: Plain text
6189 #: build/C/man3/lseek64.3:28
6190 msgid "lseek64 - reposition 64-bit read/write file offset"
6191 msgstr "lseek64 - ファイルの 64 ビットの読み書きオフセットの位置を変える"
6192
6193 #. type: Plain text
6194 #: build/C/man3/lseek64.3:30
6195 msgid "B<#define _LARGEFILE64_SOURCE> /* See feature_test_macros(7) */"
6196 msgstr "B<#define _LARGEFILE64_SOURCE> /* feature_test_macros(7) 参照 */"
6197
6198 #. type: Plain text
6199 #: build/C/man3/lseek64.3:36
6200 msgid ""
6201 "B<off64_t lseek64(int >I<fd>B<, off64_t >I<offset>B<, int >I<whence>B<);>"
6202 msgstr ""
6203 "B<off64_t lseek64(int >I<fd>B<, off64_t >I<offset>B<, int >I<whence>B<);>"
6204
6205 #. type: Plain text
6206 #: build/C/man3/lseek64.3:53
6207 msgid ""
6208 "The B<lseek>(2)  family of functions reposition the offset of the open file "
6209 "associated with the file descriptor I<fd> to I<offset> bytes relative to the "
6210 "start, current position, or end of the file, when I<whence> has the value "
6211 "B<SEEK_SET>, B<SEEK_CUR>, or B<SEEK_END>, respectively."
6212 msgstr ""
6213 "B<lseek>(2)  関数ファミリーは、ファイルディスクリプタ I<fd> に関連するオープ"
6214 "ンされたファイルのオフセットを、 ファイルの開始位置・現在位置・終端から "
6215 "I<offset> の位置へ変更する。 これは I<whence> がそれぞれ B<SEEK_SET>, "
6216 "B<SEEK_CUR>, B<SEEK_END> の場合に対応する。"
6217
6218 #. type: Plain text
6219 #: build/C/man3/lseek64.3:56
6220 msgid "For more details, return value, and errors, see B<lseek>(2)."
6221 msgstr "更に詳しい説明・返り値・エラーは、 B<lseek>(2)  を参照すること。"
6222
6223 #. type: Plain text
6224 #: build/C/man3/lseek64.3:63
6225 msgid ""
6226 "Four interfaces are available: B<lseek>(2), B<lseek64>(), B<llseek>(2), and "
6227 "the raw system call B<_llseek>(2)."
6228 msgstr ""
6229 "4 つのインタフェースが使用可能である: B<lseek>(2), B<lseek64>(), "
6230 "B<llseek>(2)  と元となるシステムコール B<_llseek>(2)  である。"
6231
6232 #. type: SS
6233 #: build/C/man3/lseek64.3:63
6234 #, no-wrap
6235 msgid "lseek"
6236 msgstr "lseek"
6237
6238 #. type: Plain text
6239 #: build/C/man3/lseek64.3:65 build/C/man3/lseek64.3:87
6240 #: build/C/man3/lseek64.3:116
6241 msgid "Prototype:"
6242 msgstr "プロトタイプ:"
6243
6244 #. type: Plain text
6245 #: build/C/man3/lseek64.3:69
6246 #, no-wrap
6247 msgid "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>\n"
6248 msgstr "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>\n"
6249
6250 #. type: Plain text
6251 #: build/C/man3/lseek64.3:77
6252 msgid ""
6253 "B<lseek>(2)  uses the type I<off_t>.  This is a 32-bit signed type on 32-bit "
6254 "architectures, unless one compiles with"
6255 msgstr ""
6256 "B<lseek>(2)  は型 I<off_t> を使う。 これは 32 ビットアーキテクチャ上では 32 "
6257 "ビット符号付き型である。 ただし、"
6258
6259 #. type: Plain text
6260 #: build/C/man3/lseek64.3:81
6261 #, no-wrap
6262 msgid "#define _FILE_OFFSET_BITS 64\n"
6263 msgstr "#define _FILE_OFFSET_BITS 64\n"
6264
6265 #. type: Plain text
6266 #: build/C/man3/lseek64.3:85
6267 msgid "in which case it is a 64-bit signed type."
6268 msgstr "を定義してコンパイルした場合は 64 ビット符号付き型である。"
6269
6270 #. type: SS
6271 #: build/C/man3/lseek64.3:85
6272 #, no-wrap
6273 msgid "lseek64"
6274 msgstr "lseek64"
6275
6276 #. type: Plain text
6277 #: build/C/man3/lseek64.3:91
6278 #, no-wrap
6279 msgid "B<off64_t lseek64(int >I<fd>B<, off64_t >I<offset>B<, int >I<whence>B<);>\n"
6280 msgstr "B<off64_t lseek64(int >I<fd>B<, off64_t >I<offset>B<, int >I<whence>B<);>\n"
6281
6282 #. type: Plain text
6283 #: build/C/man3/lseek64.3:102
6284 msgid ""
6285 "The library routine B<lseek64>()  uses a 64-bit type even when I<off_t> is a "
6286 "32-bit type.  Its prototype (and the type I<off64_t>)  is available only "
6287 "when one compiles with"
6288 msgstr ""
6289 "ライブラリルーチン B<lseek64>()  は I<off_t> が 32 ビット型であっても 64 ビッ"
6290 "ト型を使う。 このプロトタイプ (と型 I<off64_t>)  は、以下の定義をしてコンパイ"
6291 "ルした場合にのみ使用可能である。"
6292
6293 #. type: Plain text
6294 #: build/C/man3/lseek64.3:106
6295 #, no-wrap
6296 msgid "#define _LARGEFILE64_SOURCE\n"
6297 msgstr "#define _LARGEFILE64_SOURCE\n"
6298
6299 #.  in glibc 2.0.94, not in 2.0.6
6300 #. type: Plain text
6301 #: build/C/man3/lseek64.3:114
6302 msgid ""
6303 "The function B<lseek64>()  is available since glibc 2.1, and is defined to "
6304 "be an alias for B<llseek>()."
6305 msgstr ""
6306 "関数 B<lseek64>()  は glibc 2.1 以降で使用可能であり、 B<llseek>()  のエイリ"
6307 "アスとして定義されている。"
6308
6309 #. type: SS
6310 #: build/C/man3/lseek64.3:114
6311 #, no-wrap
6312 msgid "llseek"
6313 msgstr "llseek"
6314
6315 #. type: Plain text
6316 #: build/C/man3/lseek64.3:120
6317 #, no-wrap
6318 msgid "B<loff_t llseek(int >I<fd>B<, loff_t >I<offset>B<, int >I<whence>B<);>\n"
6319 msgstr "B<loff_t llseek(int >I<fd>B<, loff_t >I<offset>B<, int >I<whence>B<);>\n"
6320
6321 #.  in libc 5.0.9, not in 4.7.6
6322 #. type: Plain text
6323 #: build/C/man3/lseek64.3:136
6324 msgid ""
6325 "The type I<loff_t> is a 64-bit signed type.  The library routine "
6326 "B<llseek>()  is available in the glibc and works without special defines.  "
6327 "However, the glibc headers do not provide a prototype.  Users should add the "
6328 "above prototype, or something equivalent, to their own source.  When users "
6329 "complained about data loss caused by a miscompilation of B<e2fsck>(8), glibc "
6330 "2.1.3 added the link-time warning"
6331 msgstr ""
6332 "型 I<loff_t> は 64 ビット符号付き型である。 ライブラリルーチン B<llseek>() "
6333 "は glibc で利用可能であり、 特別な定義なしに動作する。 しかしながら、 glibc "
6334 "のヘッダーはプロトタイプを供していない。 ユーザは上記のプロトタイプまたはそれ"
6335 "と同等のものを、 自身のソースに追加しなければならない。 このデータがないこと"
6336 "によって B<e2fsck>(8)  のコンパイルが失敗するという苦情がユーザから出たの"
6337 "で、 glibc 2.1.3 では以下のようなリンク時の警告が追加された。"
6338
6339 #. type: Plain text
6340 #: build/C/man3/lseek64.3:139
6341 msgid "the \\`llseek\\' function may be dangerous; use \\`lseek64\\' instead."
6342 msgstr "the \\`llseek\\' function may be dangerous; use \\`lseek64\\' instead."
6343
6344 #. type: Plain text
6345 #: build/C/man3/lseek64.3:143
6346 msgid ""
6347 "This makes this function unusable if one desires a warning-free compilation."
6348 msgstr ""
6349 "これにより、警告なしでコンパイルしたい場合には、この関数を使用不可にできる。"
6350
6351 #. type: SS
6352 #: build/C/man3/lseek64.3:143
6353 #, no-wrap
6354 msgid "_llseek"
6355 msgstr "_llseek"
6356
6357 #. type: Plain text
6358 #: build/C/man3/lseek64.3:146
6359 msgid ""
6360 "All the above functions are implemented in terms of this system call.  The "
6361 "prototype is:"
6362 msgstr ""
6363 "上記の全ての関数は、このシステムコールに基づいて実装される。 プロトタイプは以"
6364 "下の通り:"
6365
6366 #. type: Plain text
6367 #: build/C/man3/lseek64.3:151
6368 #, no-wrap
6369 msgid ""
6370 "B<int _llseek(int >I<fd>B<, off_t >I<offset_hi>B<, off_t >I<offset_lo>B<,>\n"
6371 "B<            loff_t *>I<result>B<, int >I<whence>B<);>\n"
6372 msgstr ""
6373 "B<int _llseek(int >I<fd>B<, off_t >I<offset_hi>B<, off_t >I<offset_lo>B<,>\n"
6374 "B<            loff_t *>I<result>B<, int >I<whence>B<);>\n"
6375
6376 #. type: Plain text
6377 #: build/C/man3/lseek64.3:156
6378 msgid "For more details, see B<llseek>(2)."
6379 msgstr "更に詳しい情報は、 B<llseek>(2)  を参照すること。"
6380
6381 #. type: Plain text
6382 #: build/C/man3/lseek64.3:161
6383 msgid "The B<lseek64>()  function is thread-safe."
6384 msgstr "関数 B<lseek64>() はスレッドセーフである。"
6385
6386 #. type: Plain text
6387 #: build/C/man3/lseek64.3:164
6388 msgid "B<llseek>(2), B<lseek>(2)"
6389 msgstr "B<llseek>(2), B<lseek>(2)"
6390
6391 #. type: TH
6392 #: build/C/man2/open.2:51
6393 #, no-wrap
6394 msgid "OPEN"
6395 msgstr "OPEN"
6396
6397 #. type: TH
6398 #: build/C/man2/open.2:51
6399 #, no-wrap
6400 msgid "2014-12-31"
6401 msgstr "2014-12-31"
6402
6403 #. type: Plain text
6404 #: build/C/man2/open.2:54
6405 msgid "open, openat, creat - open and possibly create a file"
6406 msgstr "open, openat, creat - ファイルのオープン、作成を行う"
6407
6408 #. type: Plain text
6409 #: build/C/man2/open.2:59
6410 #, no-wrap
6411 msgid ""
6412 "B<#include E<lt>sys/types.hE<gt>>\n"
6413 "B<#include E<lt>sys/stat.hE<gt>>\n"
6414 "B<#include E<lt>fcntl.hE<gt>>\n"
6415 msgstr ""
6416 "B<#include E<lt>sys/types.hE<gt>>\n"
6417 "B<#include E<lt>sys/stat.hE<gt>>\n"
6418 "B<#include E<lt>fcntl.hE<gt>>\n"
6419
6420 #. type: Plain text
6421 #: build/C/man2/open.2:62
6422 #, no-wrap
6423 msgid ""
6424 "B<int open(const char *>I<pathname>B<, int >I<flags>B<);>\n"
6425 "B<int open(const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
6426 msgstr ""
6427 "B<int open(const char *>I<pathname>B<, int >I<flags>B<);>\n"
6428 "B<int open(const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
6429
6430 #. type: Plain text
6431 #: build/C/man2/open.2:64
6432 #, no-wrap
6433 msgid "B<int creat(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
6434 msgstr "B<int creat(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
6435
6436 #. type: Plain text
6437 #: build/C/man2/open.2:68
6438 #, no-wrap
6439 msgid ""
6440 "B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
6441 "B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
6442 msgstr ""
6443 "B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
6444 "B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
6445
6446 #. type: Plain text
6447 #: build/C/man2/open.2:76
6448 msgid "B<openat>():"
6449 msgstr "B<openat>():"
6450
6451 #. type: Plain text
6452 #: build/C/man2/open.2:98
6453 msgid ""
6454 "Given a I<pathname> for a file, B<open>()  returns a file descriptor, a "
6455 "small, nonnegative integer for use in subsequent system calls (B<read>(2), "
6456 "B<write>(2), B<lseek>(2), B<fcntl>(2), etc.).  The file descriptor returned "
6457 "by a successful call will be the lowest-numbered file descriptor not "
6458 "currently open for the process."
6459 msgstr ""
6460 "ファイルの I<pathname> を与えると、 B<open>()  はファイルディスクリプタを返"
6461 "す。 ファイルディスクリプタは、この後に続くシステムコール (B<read>(2), "
6462 "B<write>(2), B<lseek>(2), B<fcntl>(2) など)  で使用される小さな非負の整数であ"
6463 "る。 このシステムコールが成功した場合に返されるファイルディスクリプタは その"
6464 "プロセスがその時点でオープンしていないファイルディスクリプタの うち最小の数字"
6465 "のものとなる。"
6466
6467 #. type: Plain text
6468 #: build/C/man2/open.2:110
6469 msgid ""
6470 "By default, the new file descriptor is set to remain open across an "
6471 "B<execve>(2)  (i.e., the B<FD_CLOEXEC> file descriptor flag described in "
6472 "B<fcntl>(2)  is initially disabled); the B<O_CLOEXEC> flag, described below, "
6473 "can be used to change this default.  The file offset is set to the beginning "
6474 "of the file (see B<lseek>(2))."
6475 msgstr ""
6476 "デフォルトでは、新しいファイルディスクリプタは B<execve>(2) を実行した後も\n"
6477 "オープンされたままとなる (つまり、 B<fcntl>(2) に説明がある B<FD_CLOEXEC> \n"
6478 "ファイルディスクリプタフラグは最初は無効である); 後述の B<O_CLOEXEC> フラグ\n"
6479 "を使うとこのデフォルトを変更することができる。 ファイルオフセット \n"
6480 "(file offset) はファイルの先頭に設定される (B<lseek>(2) 参照)。"
6481
6482 #. type: Plain text
6483 #: build/C/man2/open.2:123
6484 msgid ""
6485 "A call to B<open>()  creates a new I<open file description>, an entry in the "
6486 "system-wide table of open files.  The open file description records the file "
6487 "offset and the file status flags (see below).  A file descriptor is a "
6488 "reference to an open file description; this reference is unaffected if "
6489 "I<pathname> is subsequently removed or modified to refer to a different "
6490 "file.  For further details on open file descriptions, see NOTES."
6491 msgstr ""
6492 "B<open>()  を呼び出すと、「オープンファイル記述」 I<(open file description)> "
6493 "が作成される。ファイル記述とは、システム全体のオープン中のファイルのテーブル"
6494 "のエントリである。 このオープンファイル記述は、ファイルオフセットとファイル状"
6495 "態フラグ (下記参照) が保持する。 ファイルディスクリプタはオープンファイルっ記"
6496 "述への参照である。 この後で I<pathname> が削除されたり、他のファイルを参照す"
6497 "るように変更されたりしても、 この参照は影響を受けない。 オープンファイル記述"
6498 "の詳細な説明は「注意」の節を参照。"
6499
6500 #. type: Plain text
6501 #: build/C/man2/open.2:131
6502 msgid ""
6503 "The argument I<flags> must include one of the following I<access modes>: "
6504 "B<O_RDONLY>, B<O_WRONLY>, or B<O_RDWR>.  These request opening the file read-"
6505 "only, write-only, or read/write, respectively."
6506 msgstr ""
6507 "引き数 I<flags> には、アクセスモード B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> のど"
6508 "れかひとつが入っていなければならない。 これらはそれぞれ読み込み専用、書き込み"
6509 "専用、読み書き用に ファイルをオープンすることを要求するものである。"
6510
6511 #.  SUSv4 divides the flags into:
6512 #.  * Access mode
6513 #.  * File creation
6514 #.  * File status
6515 #.  * Other (O_CLOEXEC, O_DIRECTORY, O_NOFOLLOW)
6516 #.  though it's not clear what the difference between "other" and
6517 #.  "File creation" flags is.  I raised an Aardvark to see if this
6518 #.  can be clarified in SUSv4; 10 Oct 2008.
6519 #.  http://thread.gmane.org/gmane.comp.standards.posix.austin.general/64/focus=67
6520 #.  TC1 (balloted in 2013), resolved this, so that those three constants
6521 #.  are also categorized" as file status flags.
6522 #. type: Plain text
6523 #: build/C/man2/open.2:170
6524 msgid ""
6525 "In addition, zero or more file creation flags and file status flags can be "
6526 "bitwise-I<or>'d in I<flags>.  The I<file creation flags> are B<O_CLOEXEC>, "
6527 "B<O_CREAT>, B<O_DIRECTORY>, B<O_EXCL>, B<O_NOCTTY>, B<O_NOFOLLOW>, "
6528 "B<O_TMPFILE>, B<O_TRUNC>, and B<O_TTY_INIT>.  The I<file status flags> are "
6529 "all of the remaining flags listed below.  The distinction between these two "
6530 "groups of flags is that the file status flags can be retrieved and (in some "
6531 "cases)  modified; see B<fcntl>(2)  for details."
6532 msgstr ""
6533 "さらに、 I<flags> には、ファイル作成フラグ (file creation flag) とファイル状"
6534 "態フラグ (file status flag) を 0 個以上「ビット単位の OR (bitwise-or)」で 指"
6535 "定することができる。 I<ファイル作成フラグ> は B<O_CLOEXEC>, B<O_CREAT>, "
6536 "B<O_DIRECTORY>, B<O_EXCL>, B<O_NOCTTY>, B<O_NOFOLLOW>, B<O_TMPFILE>, "
6537 "B<O_TRUNC>, B<O_TTY_INIT> である。 I<ファイル状態フラグ> は以下のリストのうち"
6538 "上記以外の残りのものである。 二種類のフラグの違いは、ファイル状態フラグの方は"
6539 "その内容を取得したり (場合によっては) 変更したりできる点にある。詳細は "
6540 "B<fcntl>(2) を参照。"
6541
6542 #. type: Plain text
6543 #: build/C/man2/open.2:172
6544 msgid ""
6545 "The full list of file creation flags and file status flags is as follows:"
6546 msgstr "すべてのファイル作成フラグとファイル状態フラグを以下のリストに示す。"
6547
6548 #. type: TP
6549 #: build/C/man2/open.2:172
6550 #, no-wrap
6551 msgid "B<O_APPEND>"
6552 msgstr "B<O_APPEND>"
6553
6554 #.  For more background, see
6555 #.  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453946
6556 #.  http://nfs.sourceforge.net/
6557 #. type: Plain text
6558 #: build/C/man2/open.2:189
6559 msgid ""
6560 "The file is opened in append mode.  Before each B<write>(2), the file offset "
6561 "is positioned at the end of the file, as if with B<lseek>(2).  B<O_APPEND> "
6562 "may lead to corrupted files on NFS filesystems if more than one process "
6563 "appends data to a file at once.  This is because NFS does not support "
6564 "appending to a file, so the client kernel has to simulate it, which can't be "
6565 "done without a race condition."
6566 msgstr ""
6567 "ファイルを追加 (append) モードでオープンする。 毎回の B<write>(2)  の前に "
6568 "B<lseek>(2)  を行ったかのように、ファイルポインタをファイルの最後に移動す"
6569 "る。 NFS ファイルシステムで、 B<O_APPEND> を使用すると、複数のプロセスがひと"
6570 "つのファイルに同時にデータを追加した場合、 ファイルが壊れてしまうことがあ"
6571 "る。 これは NFS が追加モードをサポートしていないため、 クライアントのカーネ"
6572 "ル (kernel) がそれをシミュレートしなければならないのだが、 競合状態を避けるこ"
6573 "とはできないからである。"
6574
6575 #. type: TP
6576 #: build/C/man2/open.2:189
6577 #, no-wrap
6578 msgid "B<O_ASYNC>"
6579 msgstr "B<O_ASYNC>"
6580
6581 #. type: Plain text
6582 #: build/C/man2/open.2:203
6583 msgid ""
6584 "Enable signal-driven I/O: generate a signal (B<SIGIO> by default, but this "
6585 "can be changed via B<fcntl>(2))  when input or output becomes possible on "
6586 "this file descriptor.  This feature is available only for terminals, "
6587 "pseudoterminals, sockets, and (since Linux 2.6) pipes and FIFOs.  See "
6588 "B<fcntl>(2)  for further details.  See also BUGS, below."
6589 msgstr ""
6590 "シグナル駆動 I/O (signal-driven I/O) を有効にする: このファイルディスクリプタ"
6591 "への 入力または出力が可能になった場合に、シグナルを生成する (デフォルトは "
6592 "B<SIGIO> であるが、 B<fcntl>(2)  によって変更可能である)。 この機能が使用可能"
6593 "なのは端末、疑似端末、ソケットのみであり、 (Linux 2.6 以降では) パイプと "
6594 "FIFO に対しても使用できる。 さらに詳しい説明は B<fcntl>(2)  を参照すること。 "
6595 "下記の「バグ」も参照。"
6596
6597 #. type: TP
6598 #: build/C/man2/open.2:203
6599 #, no-wrap
6600 msgid "B<O_CLOEXEC> (since Linux 2.6.23)"
6601 msgstr "B<O_CLOEXEC> (Linux 2.6.23 以降)"
6602
6603 #.  NOTE! several other man pages refer to this text
6604 #. type: Plain text
6605 #: build/C/man2/open.2:213
6606 msgid ""
6607 "Enable the close-on-exec flag for the new file descriptor.  Specifying this "
6608 "flag permits a program to avoid additional B<fcntl>(2)  B<F_SETFD> "
6609 "operations to set the B<FD_CLOEXEC> flag."
6610 msgstr ""
6611 "新しいファイルディスクリプタに対して close-on-exec フラグを有効にする。 この"
6612 "フラグを指定することで、 プログラムは B<FD_CLOEXEC> フラグをセットするために "
6613 "B<fcntl>(2) B<F_SETFD> 操作を別途呼び出す必要がなくなる。"
6614
6615 #.  This flag fixes only one form of the race condition;
6616 #.  The race can also occur with, for example, descriptors
6617 #.  returned by accept(), pipe(), etc.
6618 #. type: Plain text
6619 #: build/C/man2/open.2:242
6620 msgid ""
6621 "Note that the use of this flag is essential in some multithreaded programs, "
6622 "because using a separate B<fcntl>(2)  B<F_SETFD> operation to set the "
6623 "B<FD_CLOEXEC> flag does not suffice to avoid race conditions where one "
6624 "thread opens a file descriptor and attempts to set its close-on-exec flag "
6625 "using B<fcntl>(2)  at the same time as another thread does a B<fork>(2)  "
6626 "plus B<execve>(2).  Depending on the order of execution, the race may lead "
6627 "to the file descriptor returned by B<open>()  being unintentionally leaked "
6628 "to the program executed by the child process created by B<fork>(2).  (This "
6629 "kind of race is in principle possible for any system call that creates a "
6630 "file descriptor whose close-on-exec flag should be set, and various other "
6631 "Linux system calls provide an equivalent of the B<O_CLOEXEC> flag to deal "
6632 "with this problem.)"
6633 msgstr ""
6634 "ある種のマルチスレッドのプログラムはこのフラグの使用は不可欠である点に注意す"
6635 "ること。 なぜなら、個別に B<FD_CLOEXEC> フラグを設定する B<fcntl>(2) "
6636 "B<F_SETFD> 操作を呼び出したとしても、あるスレッドがファイルディスクリプタを "
6637 "オープンするのと同時に別のスレッドが B<fork>(2) と B<execve>(2) を実行すると"
6638 "いう競合条件を避けるのには十分ではないからである。 実行の順序に依存して、この"
6639 "競合条件の結果、 B<open>() が返したファイルディスクリプタが B<fork>(2) で作成"
6640 "された子プロセスにより実行されるプログラムに意図せず見えてしまう可能性があ"
6641 "る。 (この種の競合は、 本質的に、 close-on-exec フラグをセットすべきファイル"
6642 "ディスクリプタを作成するどのシステムコールでも起こり得るものであり、 他のいろ"
6643 "いろな Linux システムコールでこの問題に対処するために B<O_CLOEXEC> と同等の機"
6644 "能が提供されている。)"
6645
6646 #. type: TP
6647 #: build/C/man2/open.2:242
6648 #, no-wrap
6649 msgid "B<O_CREAT>"
6650 msgstr "B<O_CREAT>"
6651
6652 #.  As at 2.6.25, bsdgroups is supported by ext2, ext3, ext4, and
6653 #.  XFS (since 2.6.14).
6654 #. type: Plain text
6655 #: build/C/man2/open.2:258
6656 msgid ""
6657 "If the file does not exist, it will be created.  The owner (user ID) of the "
6658 "file is set to the effective user ID of the process.  The group ownership "
6659 "(group ID) is set either to the effective group ID of the process or to the "
6660 "group ID of the parent directory (depending on filesystem type and mount "
6661 "options, and the mode of the parent directory; see the mount options "
6662 "I<bsdgroups> and I<sysvgroups> described in B<mount>(8))."
6663 msgstr ""
6664 "ファイルが存在しなかった場合は作成 (create) する。 ファイルの所有者 (ユー"
6665 "ザー ID) は、プロセスの実効ユーザー ID に設定される。 グループ所有権 (グルー"
6666 "プ ID) は、プロセスの実効グループ ID または親ディレクトリのグループ ID に設定"
6667 "される (これは、ファイルシステムタイプ、マウントオプション、 親ディレクトリの"
6668 "モードに依存する。 B<mount>(8)  で説明されているマウントオプション "
6669 "I<bsdgroups> と I<sysvgroups> を参照)。"
6670
6671 #. type: Plain text
6672 #: build/C/man2/open.2:285
6673 msgid ""
6674 "I<mode> specifies the permissions to use in case a new file is created.  "
6675 "This argument must be supplied when B<O_CREAT> or B<O_TMPFILE> is specified "
6676 "in I<flags>; if neither B<O_CREAT> nor B<O_TMPFILE> is specified, then "
6677 "I<mode> is ignored.  The effective permissions are modified by the process's "
6678 "I<umask> in the usual way: The permissions of the created file are I<(mode\\ "
6679 "&\\ ~umask)>.  Note that this mode applies only to future accesses of the "
6680 "newly created file; the B<open>()  call that creates a read-only file may "
6681 "well return a read/write file descriptor."
6682 msgstr ""
6683 "I<mode> は新しいファイルを作成する場合に使用するアクセス許可 (permission) を"
6684 "指定する。 I<flags> に B<O_CREAT> か B<O_TMPFILE> が指定されている場合、 "
6685 "I<mode> を指定しなければならない。 B<O_CREAT> も B<O_TMPFILE> も指定されてい"
6686 "ない場合、 I<mode> は無視される。 有効なアクセス許可は、普段と同じようにプロ"
6687 "セスの I<umask> によって修正され、作成されたファイルの許可は I<(mode\\ &\\ "
6688 "~umask)> となる。 このモードは、新しく作成されたファイルに対するそれ以降のア"
6689 "クセス にのみ適用される点に注意すること。 読み取り専用のファイルを作成する "
6690 "B<open>()  コールであっても、 読み書き可能なファイルディスクリプタを返すこと"
6691 "がありうる。"
6692
6693 #. type: Plain text
6694 #: build/C/man2/open.2:288
6695 msgid "The following symbolic constants are provided for I<mode>:"
6696 msgstr "I<mode> のために以下のシンボル定数が提供されている :"
6697
6698 #. type: TP
6699 #: build/C/man2/open.2:288
6700 #, no-wrap
6701 msgid "B<S_IRWXU>"
6702 msgstr "B<S_IRWXU>"
6703
6704 #. type: Plain text
6705 #: build/C/man2/open.2:291
6706 msgid "00700 user (file owner) has read, write and execute permission"
6707 msgstr ""
6708 "00700 ユーザー (ファイルの所有者) に読み込み、書き込み、 実行の許可がある。"
6709
6710 #. type: TP
6711 #: build/C/man2/open.2:291
6712 #, no-wrap
6713 msgid "B<S_IRUSR>"
6714 msgstr "B<S_IRUSR>"
6715
6716 #. type: Plain text
6717 #: build/C/man2/open.2:294
6718 msgid "00400 user has read permission"
6719 msgstr "00400 ユーザーに読み込みの許可がある。"
6720
6721 #. type: TP
6722 #: build/C/man2/open.2:294
6723 #, no-wrap
6724 msgid "B<S_IWUSR>"
6725 msgstr "B<S_IWUSR>"
6726
6727 #. type: Plain text
6728 #: build/C/man2/open.2:297
6729 msgid "00200 user has write permission"
6730 msgstr "00200 ユーザーに書き込みの許可がある。"
6731
6732 #. type: TP
6733 #: build/C/man2/open.2:297
6734 #, no-wrap
6735 msgid "B<S_IXUSR>"
6736 msgstr "B<S_IXUSR>"
6737
6738 #. type: Plain text
6739 #: build/C/man2/open.2:300
6740 msgid "00100 user has execute permission"
6741 msgstr "00100 ユーザーに実行の許可がある。"
6742
6743 #. type: TP
6744 #: build/C/man2/open.2:300
6745 #, no-wrap
6746 msgid "B<S_IRWXG>"
6747 msgstr "B<S_IRWXG>"
6748
6749 #. type: Plain text
6750 #: build/C/man2/open.2:303
6751 msgid "00070 group has read, write and execute permission"
6752 msgstr "00070 グループに読み込み、書き込み、実行の許可がある。"
6753
6754 #. type: TP
6755 #: build/C/man2/open.2:303
6756 #, no-wrap
6757 msgid "B<S_IRGRP>"
6758 msgstr "B<S_IRGRP>"
6759
6760 #. type: Plain text
6761 #: build/C/man2/open.2:306
6762 msgid "00040 group has read permission"
6763 msgstr "00040 グループに読み込みの許可がある。"
6764
6765 #. type: TP
6766 #: build/C/man2/open.2:306
6767 #, no-wrap
6768 msgid "B<S_IWGRP>"
6769 msgstr "B<S_IWGRP>"
6770
6771 #. type: Plain text
6772 #: build/C/man2/open.2:309
6773 msgid "00020 group has write permission"
6774 msgstr "00020 グループに書き込みの許可がある。"
6775
6776 #. type: TP
6777 #: build/C/man2/open.2:309
6778 #, no-wrap
6779 msgid "B<S_IXGRP>"
6780 msgstr "B<S_IXGRP>"
6781
6782 #. type: Plain text
6783 #: build/C/man2/open.2:312
6784 msgid "00010 group has execute permission"
6785 msgstr "00010 グループに実行の許可がある。"
6786
6787 #. type: TP
6788 #: build/C/man2/open.2:312
6789 #, no-wrap
6790 msgid "B<S_IRWXO>"
6791 msgstr "B<S_IRWXO>"
6792
6793 #. type: Plain text
6794 #: build/C/man2/open.2:315
6795 msgid "00007 others have read, write and execute permission"
6796 msgstr "00007 他人 (others) に読み込み、書き込み、実行の許可がある。"
6797
6798 #. type: TP
6799 #: build/C/man2/open.2:315
6800 #, no-wrap
6801 msgid "B<S_IROTH>"
6802 msgstr "B<S_IROTH>"
6803
6804 #. type: Plain text
6805 #: build/C/man2/open.2:318
6806 msgid "00004 others have read permission"
6807 msgstr "00004 他人に読み込みの許可がある。"
6808
6809 #. type: TP
6810 #: build/C/man2/open.2:318
6811 #, no-wrap
6812 msgid "B<S_IWOTH>"
6813 msgstr "B<S_IWOTH>"
6814
6815 #. type: Plain text
6816 #: build/C/man2/open.2:321
6817 msgid "00002 others have write permission"
6818 msgstr "00002 他人に書き込みの許可がある。"
6819
6820 #. type: TP
6821 #: build/C/man2/open.2:321
6822 #, no-wrap
6823 msgid "B<S_IXOTH>"
6824 msgstr "B<S_IXOTH>"
6825
6826 #. type: Plain text
6827 #: build/C/man2/open.2:324
6828 msgid "00001 others have execute permission"
6829 msgstr "00001 他人に実行の許可がある。"
6830
6831 #. type: TP
6832 #: build/C/man2/open.2:325
6833 #, no-wrap
6834 msgid "B<O_DIRECT> (since Linux 2.4.10)"
6835 msgstr "B<O_DIRECT> (Linux 2.4.10 以降)"
6836
6837 #. type: Plain text
6838 #: build/C/man2/open.2:342
6839 msgid ""
6840 "Try to minimize cache effects of the I/O to and from this file.  In general "
6841 "this will degrade performance, but it is useful in special situations, such "
6842 "as when applications do their own caching.  File I/O is done directly to/"
6843 "from user-space buffers.  The B<O_DIRECT> flag on its own makes an effort to "
6844 "transfer data synchronously, but does not give the guarantees of the "
6845 "B<O_SYNC> flag that data and necessary metadata are transferred.  To "
6846 "guarantee synchronous I/O, B<O_SYNC> must be used in addition to "
6847 "B<O_DIRECT>.  See NOTES below for further discussion."
6848 msgstr ""
6849 "このファイルに対する I/O のキャッシュの効果を最小化しようとする。このフラグを"
6850 "使うと、一般的に性能が低下する。 しかしアプリケーションが独自にキャッシングを"
6851 "行っているような 特別な場合には役に立つ。 ファイルの I/O はユーザー空間バッ"
6852 "ファに対して直接行われる。 B<O_DIRECT> フラグ自身はデータを同期で転送しようと"
6853 "はするが、 B<O_SYNC> フラグのようにデータと必要なメタデータの転送が保証される"
6854 "わけではない。同期 I/O を保証するためには、 B<O_DIRECT> に加えて B<O_SYNC> を"
6855 "使用しなければならない。下記の「注意」の節の議論も参照。"
6856
6857 #. type: Plain text
6858 #: build/C/man2/open.2:346
6859 msgid ""
6860 "A semantically similar (but deprecated) interface for block devices is "
6861 "described in B<raw>(8)."
6862 msgstr ""
6863 "ブロックデバイスに対する似通った意味のインターフェースが B<raw>(8)  で説明さ"
6864 "れている (但し、このインタフェースは非推奨である)。"
6865
6866 #. type: TP
6867 #: build/C/man2/open.2:346
6868 #, no-wrap
6869 msgid "B<O_DIRECTORY>"
6870 msgstr "B<O_DIRECTORY>"
6871
6872 #.  But see the following and its replies:
6873 #.  http://marc.theaimsgroup.com/?t=112748702800001&r=1&w=2
6874 #.  [PATCH] open: O_DIRECTORY and O_CREAT together should fail
6875 #.  O_DIRECTORY | O_CREAT causes O_DIRECTORY to be ignored.
6876 #. type: Plain text
6877 #: build/C/man2/open.2:358
6878 msgid ""
6879 "If I<pathname> is not a directory, cause the open to fail.  This flag was "
6880 "added in kernel version 2.1.126, to avoid denial-of-service problems if "
6881 "B<opendir>(3)  is called on a FIFO or tape device."
6882 msgstr ""
6883 "I<pathname> がディレクトリでなければオープンは失敗する。 このフラグは、 "
6884 "B<opendir>(3)  が FIFO やテープデバイスに対してコールされた場合の サービス不"
6885 "能 (denial-of-service) 攻撃を避けるために カーネル 2.1.126 で追加された。"
6886
6887 #. type: TP
6888 #: build/C/man2/open.2:358
6889 #, no-wrap
6890 msgid "B<O_DSYNC>"
6891 msgstr "B<O_DSYNC>"
6892
6893 #. type: Plain text
6894 #: build/C/man2/open.2:364
6895 msgid ""
6896 "Write operations on the file will complete according to the requirements of "
6897 "synchronized I/O I<data> integrity completion."
6898 msgstr ""
6899 "ファイルに対する書き込み操作は、同期 I/O のI<データ>完全性完了の要件に基づい"
6900 "て行われる。"
6901
6902 #. type: Plain text
6903 #: build/C/man2/open.2:376
6904 msgid ""
6905 "By the time B<write>(2)  (and similar)  return, the output data has been "
6906 "transferred to the underlying hardware, along with any file metadata that "
6907 "would be required to retrieve that data (i.e., as though each B<write>(2)  "
6908 "was followed by a call to B<fdatasync>(2)).  I<See NOTES below>."
6909 msgstr ""
6910 "B<write>(2) (や同様のコール) が返るまでに、 書き込まれたデータおよびデータを"
6911 "取得するのに必要なファイルメタデータが裏で利用されているハードウェアに転送さ"
6912 "れる (つまり、B<write>(2) の後に B<fdatasync>(2) を呼び出したのと同じようにな"
6913 "る)。 I<下記の「注意」も参照のこと>。"
6914
6915 #. type: TP
6916 #: build/C/man2/open.2:376
6917 #, no-wrap
6918 msgid "B<O_EXCL>"
6919 msgstr "B<O_EXCL>"
6920
6921 #. type: Plain text
6922 #: build/C/man2/open.2:386
6923 msgid ""
6924 "Ensure that this call creates the file: if this flag is specified in "
6925 "conjunction with B<O_CREAT>, and I<pathname> already exists, then B<open>()  "
6926 "will fail."
6927 msgstr ""
6928 "この呼び出しでファイルが作成されることを保証する。このフラグが B<O_CREAT> "
6929 "と\n"
6930 "一緒に指定され、 I<pathname> のファイルが既に存在した場合、 B<open>() は失"
6931 "敗\n"
6932 "する。"
6933
6934 #.  POSIX.1-2001 explicitly requires this behavior.
6935 #. type: Plain text
6936 #: build/C/man2/open.2:394
6937 msgid ""
6938 "When these two flags are specified, symbolic links are not followed: if "
6939 "I<pathname> is a symbolic link, then B<open>()  fails regardless of where "
6940 "the symbolic link points to."
6941 msgstr ""
6942 "これら二つのフラグが指定された際、シンボリックリンクは辿られない。 "
6943 "I<pathname> がシンボリックリンクの場合、 シンボリックリンクがどこを指している"
6944 "かに関わらず B<open>()  は失敗する。"
6945
6946 #. type: Plain text
6947 #: build/C/man2/open.2:410
6948 msgid ""
6949 "In general, the behavior of B<O_EXCL> is undefined if it is used without "
6950 "B<O_CREAT>.  There is one exception: on Linux 2.6 and later, B<O_EXCL> can "
6951 "be used without B<O_CREAT> if I<pathname> refers to a block device.  If the "
6952 "block device is in use by the system (e.g., mounted), B<open>()  fails with "
6953 "the error B<EBUSY>."
6954 msgstr ""
6955 "一般的には、 B<O_CREAT> を指定せずに B<O_EXCL> を使用した場合の\n"
6956 "B<O_EXCL> の動作は規定されていない。\n"
6957 "これには一つ例外があり、Linux 2.6 以降では、\n"
6958 "I<pathname> がブロックデバイスを参照している場合、\n"
6959 "B<O_CREAT> なしで B<O_EXCL> を使用することができる。\n"
6960 "システムがそのブロックデバイスを使用中の場合 (例えば、\n"
6961 "マウントされているなど)、 B<open>() はエラー B<EBUSY> で失敗する。"
6962
6963 #. type: Plain text
6964 #: build/C/man2/open.2:432
6965 msgid ""
6966 "On NFS, B<O_EXCL> is supported only when using NFSv3 or later on kernel 2.6 "
6967 "or later.  In NFS environments where B<O_EXCL> support is not provided, "
6968 "programs that rely on it for performing locking tasks will contain a race "
6969 "condition.  Portable programs that want to perform atomic file locking using "
6970 "a lockfile, and need to avoid reliance on NFS support for B<O_EXCL>, can "
6971 "create a unique file on the same filesystem (e.g., incorporating hostname "
6972 "and PID), and use B<link>(2)  to make a link to the lockfile.  If "
6973 "B<link>(2)  returns 0, the lock is successful.  Otherwise, use B<stat>(2)  "
6974 "on the unique file to check if its link count has increased to 2, in which "
6975 "case the lock is also successful."
6976 msgstr ""
6977 "NFS では、 B<O_EXCL> は、Linux 2.6 以降で NFSv3 以降を使っている場合でのみサ"
6978 "ポートされる。 B<O_EXCL> サポートが提供されていない NFS 環境では、このフラグ"
6979 "に頼って ロック処理を実行するプログラムは競合状態 (race condition) に出会う "
6980 "可能性がある。 ロックファイルを使用して不可分 (atomic) なファイルロックを実現"
6981 "し、 NFS が B<O_EXCL> をサポートしているかに依存しないようにしたい場合、 移植"
6982 "性のある方法は、同じファイルシステム上に他と名前の重ならない ファイル (例えば"
6983 "ホスト名と PID を組み合わせた名前) を作成し、 B<link>(2)  を使用してそのロッ"
6984 "クファイルへのリンクを作成することである。 B<link>(2)  コールの返り値が 0 な"
6985 "らばロックに成功している。 あるいは、そのファイルに B<stat>(2)  を使用してリ"
6986 "ンク数 (link count) が 2 になっているかをチェックする。 そうなっていれば、同"
6987 "じくロックに成功しているということである。"
6988
6989 #. type: TP
6990 #: build/C/man2/open.2:432
6991 #, no-wrap
6992 msgid "B<O_LARGEFILE>"
6993 msgstr "B<O_LARGEFILE>"
6994
6995 #. type: Plain text
6996 #: build/C/man2/open.2:454
6997 msgid ""
6998 "(LFS)  Allow files whose sizes cannot be represented in an I<off_t> (but can "
6999 "be represented in an I<off64_t>)  to be opened.  The B<_LARGEFILE64_SOURCE> "
7000 "macro must be defined (before including I<any> header files)  in order to "
7001 "obtain this definition.  Setting the B<_FILE_OFFSET_BITS> feature test macro "
7002 "to 64 (rather than using B<O_LARGEFILE>)  is the preferred method of "
7003 "accessing large files on 32-bit systems (see B<feature_test_macros>(7))."
7004 msgstr ""
7005 "(LFS) I<off_t> ではサイズを表せない (だだし I<off64_t> ではサイズを表せる)"
7006 "ファ\n"
7007 "イルをオープン可能にする。この定義を有効にするためには、(I<どの>ヘッダファ"
7008 "イ\n"
7009 "ルをインクルードするよりも前に) B<_LARGEFILE64_SOURCE> マクロを定義しなけれ"
7010 "ば\n"
7011 "ならない。\n"
7012 "32 ビットシステムにおいて大きなファイルにアクセスしたい場合、\n"
7013 "(B<O_LARGEFILE> を使うよりも) B<_FILE_OFFSET_BITS> 機能検査マクロを 64 に\n"
7014 "セットする方が望ましい方法である (B<feature_test_macros>(7) を参照)。"
7015
7016 #. type: TP
7017 #: build/C/man2/open.2:454
7018 #, no-wrap
7019 msgid "B<O_NOATIME> (since Linux 2.6.8)"
7020 msgstr "B<O_NOATIME> (Linux 2.6.8 以降)"
7021
7022 #.  The O_NOATIME flag also affects the treatment of st_atime
7023 #.  by mmap() and readdir(2), MTK, Dec 04.
7024 #. type: Plain text
7025 #: build/C/man2/open.2:467
7026 msgid ""
7027 "Do not update the file last access time (I<st_atime> in the inode)  when the "
7028 "file is B<read>(2).  This flag is intended for use by indexing or backup "
7029 "programs, where its use can significantly reduce the amount of disk "
7030 "activity.  This flag may not be effective on all filesystems.  One example "
7031 "is NFS, where the server maintains the access time."
7032 msgstr ""
7033 "ファイルに対して B<read>(2)  が実行されたときに、最終アクセス時刻 (inode の "
7034 "I<st_atime>) を更新しない。 このフラグはインデックス作成やバックアッププログ"
7035 "ラムで使うことを意図している。 これを使うとディスクに対する操作を大幅に減らす"
7036 "ことができる。 このフラグは全てのファイルシステムに対して有効であるわけではな"
7037 "い。 その一例が NFS であり、サーバがアクセス時刻を管理している。"
7038
7039 #. type: TP
7040 #: build/C/man2/open.2:467
7041 #, no-wrap
7042 msgid "B<O_NOCTTY>"
7043 msgstr "B<O_NOCTTY>"
7044
7045 #. type: Plain text
7046 #: build/C/man2/open.2:475
7047 msgid ""
7048 "If I<pathname> refers to a terminal device\\(emsee B<tty>(4)\\(emit will not "
7049 "become the process's controlling terminal even if the process does not have "
7050 "one."
7051 msgstr ""
7052 "I<pathname> が端末 (terminal) デバイス \\(em B<tty>(4) 参照 \\(em を指してい"
7053 "る\n"
7054 "場合に、たとえそのプロセスが制御端末を持っていなくても、オープンしたファイ"
7055 "ル\n"
7056 "は制御端末にはならない。"
7057
7058 #. type: TP
7059 #: build/C/man2/open.2:475
7060 #, no-wrap
7061 msgid "B<O_NOFOLLOW>"
7062 msgstr "B<O_NOFOLLOW>"
7063
7064 #.  The headers from glibc 2.0.100 and later include a
7065 #.  definition of this flag; \fIkernels before 2.1.126 will ignore it if
7066 #.  used\fP.
7067 #. type: Plain text
7068 #: build/C/man2/open.2:487
7069 msgid ""
7070 "If I<pathname> is a symbolic link, then the open fails.  This is a FreeBSD "
7071 "extension, which was added to Linux in version 2.1.126.  Symbolic links in "
7072 "earlier components of the pathname will still be followed.  See also "
7073 "B<O_PATH> below."
7074 msgstr ""
7075 "I<pathname> がシンボリックリンクだった場合、オープンは失敗する。 これは "
7076 "FreeBSD の拡張で、Linux には バージョン 2.1.126 で追加された。 このフラグが指"
7077 "定された場合でも I<pathname> の前の方の要素 (最後のディレクトリセパレータより"
7078 "前の部分) にあるシンボリックリンクについてはリンクが辿られる。 下記の "
7079 "B<O_PATH> も参照のこと。"
7080
7081 #. type: TP
7082 #: build/C/man2/open.2:487
7083 #, no-wrap
7084 msgid "B<O_NONBLOCK> or B<O_NDELAY>"
7085 msgstr "B<O_NONBLOCK> または B<O_NDELAY>"
7086
7087 #. type: Plain text
7088 #: build/C/man2/open.2:500
7089 msgid ""
7090 "When possible, the file is opened in nonblocking mode.  Neither the "
7091 "B<open>()  nor any subsequent operations on the file descriptor which is "
7092 "returned will cause the calling process to wait.  For the handling of FIFOs "
7093 "(named pipes), see also B<fifo>(7).  For a discussion of the effect of "
7094 "B<O_NONBLOCK> in conjunction with mandatory file locks and with file leases, "
7095 "see B<fcntl>(2)."
7096 msgstr ""
7097 "可能ならば、ファイルは非停止 (nonblocking) モードでオープンされる。\n"
7098 "B<open>() も、返したファイルディスクリプタに対する以後のすべての操作も呼び"
7099 "出\n"
7100 "したプロセスを待たせることはない。 FIFO (名前付きパイプ) を扱う場合には\n"
7101 "B<fifo>(7) も参照すること。 強制ファイルロック (mandatory file lock) やファ"
7102 "イ\n"
7103 "ルリース (file lease) と組み合わせた場合の、 B<O_NONBLOCK> の効果についての\n"
7104 "議論は、 B<fcntl>(2) を参照すること。"
7105
7106 #. type: TP
7107 #: build/C/man2/open.2:500
7108 #, no-wrap
7109 msgid "B<O_PATH> (since Linux 2.6.39)"
7110 msgstr "B<O_PATH> (Linux 2.6.39 以降)"
7111
7112 #
7113 #.  commit 1abf0c718f15a56a0a435588d1b104c7a37dc9bd
7114 #.  commit 326be7b484843988afe57566b627fb7a70beac56
7115 #.  commit 65cfc6722361570bfe255698d9cd4dccaf47570d
7116 #.  http://thread.gmane.org/gmane.linux.man/2790/focus=3496
7117 #.      Subject: Re: [PATCH] open(2): document O_PATH
7118 #.      Newsgroups: gmane.linux.man, gmane.linux.kernel
7119 #. type: Plain text
7120 #: build/C/man2/open.2:522
7121 msgid ""
7122 "Obtain a file descriptor that can be used for two purposes: to indicate a "
7123 "location in the filesystem tree and to perform operations that act purely at "
7124 "the file descriptor level.  The file itself is not opened, and other file "
7125 "operations (e.g., B<read>(2), B<write>(2), B<fchmod>(2), B<fchown>(2), "
7126 "B<fgetxattr>(2), B<mmap>(2))  fail with the error B<EBADF>."
7127 msgstr ""
7128 "このフラグを指定して取得したファイルディスクリプタは、 ファイルシステムツリー"
7129 "内での場所を示すため、 純粋にファイルディスクリプタレベルでの作用する操作を実"
7130 "行するため、 の二つの目的で使用することができる。 ファイル自身はオープンされ"
7131 "ず、 他のファイル操作 (例えば B<read>(2), B<write>(2), B<fchmod>(2), "
7132 "B<fchown>(2), B<fgetxattr>(2), B<mmap>(2)) はエラー B<EBADF> で失敗する。"
7133
7134 #. type: Plain text
7135 #: build/C/man2/open.2:526
7136 msgid ""
7137 "The following operations I<can> be performed on the resulting file "
7138 "descriptor:"
7139 msgstr ""
7140 "取得したファイルディスクリプタに対して以下の操作を行うことが「できる」。"
7141
7142 #.  commit 332a2e1244bd08b9e3ecd378028513396a004a24
7143 #.  fstat(): commit 55815f70147dcfa3ead5738fd56d3574e2e3c1c2
7144 #. type: Plain text
7145 #: build/C/man2/open.2:535
7146 msgid ""
7147 "B<close>(2); B<fchdir>(2)  (since Linux 3.5); B<fstat>(2)  (since Linux 3.6)."
7148 msgstr ""
7149 "B<close>(2); B<fchdir>(2)  (Linux 3.5 以降); B<fstat>(2)  (Linux 3.6 以降)"
7150
7151 #. type: Plain text
7152 #: build/C/man2/open.2:541
7153 msgid ""
7154 "Duplicating the file descriptor (B<dup>(2), B<fcntl>(2)  B<F_DUPFD>, etc.)."
7155 msgstr "ファイルディスクリプタの複製 (B<dup>(2), B<fcntl>(2)  B<F_DUPFD> など)"
7156
7157 #. type: Plain text
7158 #: build/C/man2/open.2:547
7159 msgid ""
7160 "Getting and setting file descriptor flags (B<fcntl>(2)  B<F_GETFD> and "
7161 "B<F_SETFD>)."
7162 msgstr ""
7163 "ファイルディスクリプタフラグの取得と設定 (B<fcntl>(2) の B<F_GETFD> と "
7164 "B<F_SETFD>)"
7165
7166 #. type: Plain text
7167 #: build/C/man2/open.2:553
7168 msgid ""
7169 "Retrieving open file status flags using the B<fcntl>(2)  B<F_GETFL> "
7170 "operation: the returned flags will include the bit B<O_PATH>."
7171 msgstr ""
7172 "B<fcntl>(2) の B<F_GETFL> 操作を使ったオープンされたファイルの状態フラグの取"
7173 "得。 返されるフラグには B<O_PATH> ビットが含まれる。"
7174
7175 #. type: Plain text
7176 #: build/C/man2/open.2:566
7177 msgid ""
7178 "Passing the file descriptor as the I<dirfd> argument of B<openat>(2)  and "
7179 "the other \"*at()\" system calls.  This includes B<linkat>(2)  with "
7180 "B<AT_EMPTY_PATH> (or via procfs using B<AT_SYMLINK_FOLLOW>)  even if the "
7181 "file is not a directory."
7182 msgstr ""
7183 "B<openat>(2) や他の \"*at()\" 系のシステムコールの I<dirfd> 引数としてその"
7184 "ファイルディスクリプタを渡す。 これには、 ファイルがディレクトリでない場合に "
7185 "B<linkat>(2) に B<AT_EMPTY_PATH> が指定された場合 (や procfs 経由で "
7186 "B<AT_SYMLINK_FOLLOW> が使用された場合) を含む。"
7187
7188 #. type: Plain text
7189 #: build/C/man2/open.2:572
7190 msgid ""
7191 "Passing the file descriptor to another process via a UNIX domain socket (see "
7192 "B<SCM_RIGHTS> in B<unix>(7))."
7193 msgstr ""
7194 "そのファイルディスクリプタを別のプロセスに UNIX ドメインソケット経由で渡す。 "
7195 "(B<unix>(7) の B<SCM_RIGHTS> を参照)"
7196
7197 #. type: Plain text
7198 #: build/C/man2/open.2:584
7199 msgid ""
7200 "When B<O_PATH> is specified in I<flags>, flag bits other than B<O_CLOEXEC>, "
7201 "B<O_DIRECTORY>, and B<O_NOFOLLOW> are ignored."
7202 msgstr ""
7203 "I<flags> に B<O_PATH> が指定された場合、 B<O_CLOEXEC>, B<O_DIRECTORY>, "
7204 "B<O_NOFOLLOW> 以外のフラグビットは無視される。"
7205
7206 #. type: Plain text
7207 #: build/C/man2/open.2:600
7208 msgid ""
7209 "If I<pathname> is a symbolic link and the B<O_NOFOLLOW> flag is also "
7210 "specified, then the call returns a file descriptor referring to the symbolic "
7211 "link.  This file descriptor can be used as the I<dirfd> argument in calls to "
7212 "B<fchownat>(2), B<fstatat>(2), B<linkat>(2), and B<readlinkat>(2)  with an "
7213 "empty pathname to have the calls operate on the symbolic link."
7214 msgstr ""
7215 "I<pathname> がシンボリックリンクで B<O_NOFOLLOW> フラグも合わせて指定された場"
7216 "合、 この呼び出しではシンボリックリンクを参照するファイルディスクリプタを返"
7217 "す。 このファイルディスクリプタは、 空のパス名を指定した B<fchownat>(2), "
7218 "B<fstatat>(2), B<linkat>(2), B<readlinkat>(2) の呼び出しで I<dirfd> 引数とし"
7219 "て使うことで、 そのシンボリックリンクに対して操作を行うことができる。"
7220
7221 #. type: TP
7222 #: build/C/man2/open.2:600
7223 #, no-wrap
7224 msgid "B<O_SYNC>"
7225 msgstr "B<O_SYNC>"
7226
7227 #. type: Plain text
7228 #: build/C/man2/open.2:612
7229 msgid ""
7230 "Write operations on the file will complete according to the requirements of "
7231 "synchronized I/O I<file> integrity completion (by contrast with the "
7232 "synchronized I/O I<data> integrity completion provided by B<O_DSYNC>.)"
7233 msgstr ""
7234 "ファイルに対する書き込み操作は、同期 I/O のI<ファイル>完全性完了の要件に基づ"
7235 "いて行われる (これに対し B<O_DSYNC> では同期 I/O のI<データ>完全性完了が提供"
7236 "される)。"
7237
7238 #. type: Plain text
7239 #: build/C/man2/open.2:623
7240 msgid ""
7241 "By the time B<write>(2)  (and similar)  return, the output data and "
7242 "associated file metadata have been transferred to the underlying hardware (i."
7243 "e., as though each B<write>(2)  was followed by a call to B<fsync>(2)).  "
7244 "I<See NOTES below>."
7245 msgstr ""
7246 "B<write>(2) (や同様のコール) が返るまでに、 書き込まれたデータと関連するファ"
7247 "イルメタデータが裏で利用されているハードウェアに転送される (つまり、"
7248 "B<write>(2) の後に B<fsync>(2) を呼び出したのと同じようになる)。 I<下記の「注"
7249 "意」も参照のこと>。"
7250
7251 #. type: TP
7252 #: build/C/man2/open.2:623
7253 #, no-wrap
7254 msgid "B<O_TMPFILE> (since Linux 3.11)"
7255 msgstr "B<O_TMPFILE> (Linux 3.11 以降)"
7256
7257 #.  commit 60545d0d4610b02e55f65d141c95b18ccf855b6e
7258 #.  commit f4e0c30c191f87851c4a53454abb55ee276f4a7e
7259 #.  commit bb458c644a59dbba3a1fe59b27106c5e68e1c4bd
7260 #. type: Plain text
7261 #: build/C/man2/open.2:635
7262 msgid ""
7263 "Create an unnamed temporary file.  The I<pathname> argument specifies a "
7264 "directory; an unnamed inode will be created in that directory's filesystem.  "
7265 "Anything written to the resulting file will be lost when the last file "
7266 "descriptor is closed, unless the file is given a name."
7267 msgstr ""
7268 "名前なしの一時ファイルを作成する。 I<pathname> 引き数はディレクトリを指定す"
7269 "る。 名前なしの inode がそのディレクトリが存在するファイルシステムに作成され"
7270 "る。 そのファイルに名前を付与しない限り、 作成されたファイルに書き込まれた内"
7271 "容は、 最後のファイルディスクリプタがクローズされる際に失われる。"
7272
7273 #. type: Plain text
7274 #: build/C/man2/open.2:649
7275 msgid ""
7276 "B<O_TMPFILE> must be specified with one of B<O_RDWR> or B<O_WRONLY> and, "
7277 "optionally, B<O_EXCL>.  If B<O_EXCL> is not specified, then B<linkat>(2)  "
7278 "can be used to link the temporary file into the filesystem, making it "
7279 "permanent, using code like the following:"
7280 msgstr ""
7281 "B<O_TMPFILE> は必ず B<O_RDWR> か B<O_WRONLY> のいずれかと一緒に使わなければな"
7282 "らない。 B<O_EXCL> も指定することができる。 B<O_EXCL> が指定されなかった場"
7283 "合、 B<linkat>(2) を使って、そのファイルシステムにこの一時ファイルへのリンク"
7284 "を作成し、ファイルを永続化することができる。 以下のコードのようにすればよい。"
7285
7286 #. type: Plain text
7287 #: build/C/man2/open.2:655
7288 #, no-wrap
7289 msgid ""
7290 "char path[PATH_MAX];\n"
7291 "fd = open(\"/path/to/dir\", O_TMPFILE | O_RDWR,\n"
7292 "                        S_IRUSR | S_IWUSR);\n"
7293 msgstr ""
7294 "char path[PATH_MAX];\n"
7295 "fd = open(\"/path/to/dir\", O_TMPFILE | O_RDWR,\n"
7296 "                        S_IRUSR | S_IWUSR);\n"
7297
7298 #. type: Plain text
7299 #: build/C/man2/open.2:657
7300 #, no-wrap
7301 msgid "/* File I/O on 'fd'... */\n"
7302 msgstr "/* 'fd' に対するファイル I/O ... */\n"
7303
7304 #. type: Plain text
7305 #: build/C/man2/open.2:661
7306 #, no-wrap
7307 msgid ""
7308 "snprintf(path, PATH_MAX,  \"/proc/self/fd/%d\", fd);\n"
7309 "linkat(AT_FDCWD, path, AT_FDCWD, \"/path/for/file\",\n"
7310 "                        AT_SYMLINK_FOLLOW);\n"
7311 msgstr ""
7312 "snprintf(path, PATH_MAX,  \"/proc/self/fd/%d\", fd);\n"
7313 "linkat(AT_FDCWD, path, AT_FDCWD, \"/path/for/file\",\n"
7314 "                        AT_SYMLINK_FOLLOW);\n"
7315
7316 #. type: Plain text
7317 #: build/C/man2/open.2:670
7318 msgid ""
7319 "In this case, the B<open>()  I<mode> argument determines the file permission "
7320 "mode, as with B<O_CREAT>."
7321 msgstr ""
7322 "この場合、 B<open>() の I<mode> 引き数は B<O_CREAT> と同様にファイルのアクセ"
7323 "ス許可モードの決定に使われる。"
7324
7325 #. type: Plain text
7326 #: build/C/man2/open.2:682
7327 msgid ""
7328 "Specifying B<O_EXCL> in conjunction with B<O_TMPFILE> prevents a temporary "
7329 "file from being linked into the filesystem in the above manner.  (Note that "
7330 "the meaning of B<O_EXCL> in this case is different from the meaning of "
7331 "B<O_EXCL> otherwise.)"
7332 msgstr ""
7333 "B<O_TMPFILE> とともに B<O_EXCL> を指定すると、 一時ファイルに対して上記の方法"
7334 "でファイルシステムへのリンクを行うことができなくなる (この場合の B<O_EXCL> の"
7335 "意味は他の場合の B<O_EXCL> の意味とは異なる点に注意)。"
7336
7337 #.  Inspired by http://lwn.net/Articles/559147/
7338 #. type: Plain text
7339 #: build/C/man2/open.2:687
7340 msgid "There are two main use cases for B<O_TMPFILE>:"
7341 msgstr "B<O_TMPFILE> には主に二つの用途がある。"
7342
7343 #. type: Plain text
7344 #: build/C/man2/open.2:696
7345 msgid ""
7346 "Improved B<tmpfile>(3)  functionality: race-free creation of temporary files "
7347 "that (1) are automatically deleted when closed; (2) can never be reached via "
7348 "any pathname; (3) are not subject to symlink attacks; and (4) do not require "
7349 "the caller to devise unique names."
7350 msgstr ""
7351 "改善された B<tmpfile>(3) の機能: (1) クローズ時に自動的に削除される、 (2) パ"
7352 "ス名では決して参照できない、 (3) シンボリックリンク攻撃ができない、 (4) 呼び"
7353 "出し元が一意な名前を考える必要がない、 という特長を持つ競合のない一時ファイル"
7354 "の作成。"
7355
7356 #. type: Plain text
7357 #: build/C/man2/open.2:707
7358 msgid ""
7359 "Creating a file that is initially invisible, which is then populated with "
7360 "data and adjusted to have appropriate filesystem attributes (B<chown>(2), "
7361 "B<chmod>(2), B<fsetxattr>(2), etc.)  before being atomically linked into the "
7362 "filesystem in a fully formed state (using B<linkat>(2)  as described above)."
7363 msgstr ""
7364 "最初は見えないファイルを作成し、 それからデータを書き込んだり、適切なファイル"
7365 "システム属性を持つように調整したり (B<chown>(2), B<chmod>(2), "
7366 "B<fsetxattr>(2) など) した後、 準備が全て整った状態で (上述の B<linkat>(2) を"
7367 "使って) ファイルシステム内にアトミックにリンクを行う。"
7368
7369 #.  commit 99b6436bc29e4f10e4388c27a3e4810191cc4788
7370 #.  commit ab29743117f9f4c22ac44c13c1647fb24fb2bafe
7371 #. type: Plain text
7372 #: build/C/man2/open.2:718
7373 msgid ""
7374 "B<O_TMPFILE> requires support by the underlying filesystem; only a subset of "
7375 "Linux filesystems provide that support.  In the initial implementation, "
7376 "support was provided in the ext2, ext3, ext4, UDF, Minix, and shmem "
7377 "filesystems.  XFS support was added in Linux 3.15."
7378 msgstr ""
7379 "B<O_TMPFILE> は、 裏で利用されるファイルシステムによるサポートが必要である。 "
7380 "一部の Linux ファイルシステムだけがこの機能をサポートしている。 最初の実装で"
7381 "は、 ext2, ext3, ext4, UDF, Minix, shmem ファイルシステムがサポートしてい"
7382 "た。 XFS でのサポートが Linux 3.15 で追加された。"
7383
7384 #. type: TP
7385 #: build/C/man2/open.2:718
7386 #, no-wrap
7387 msgid "B<O_TRUNC>"
7388 msgstr "B<O_TRUNC>"
7389
7390 #. type: Plain text
7391 #: build/C/man2/open.2:732
7392 msgid ""
7393 "If the file already exists and is a regular file and the access mode allows "
7394 "writing (i.e., is B<O_RDWR> or B<O_WRONLY>)  it will be truncated to length "
7395 "0.  If the file is a FIFO or terminal device file, the B<O_TRUNC> flag is "
7396 "ignored.  Otherwise, the effect of B<O_TRUNC> is unspecified."
7397 msgstr ""
7398 "ファイルが既に存在し、通常ファイルであり、 アクセスモードで書き込みが許可され"
7399 "ている (つまり、 B<O_RDWR> または B<O_WRONLY> の) 場合、長さ 0 に切り詰め "
7400 "(truncate) られる。 ファイルが FIFO または端末デバイスファイルの場合、 "
7401 "B<O_TRUNC> フラグは無視される。 それ以外の場合、 B<O_TRUNC> の効果は未定義で"
7402 "ある。"
7403
7404 #. type: SS
7405 #: build/C/man2/open.2:732
7406 #, no-wrap
7407 msgid "creat()"
7408 msgstr "creat()"
7409
7410 #. type: Plain text
7411 #: build/C/man2/open.2:740
7412 msgid ""
7413 "B<creat>()  is equivalent to B<open>()  with I<flags> equal to B<O_CREAT|"
7414 "O_WRONLY|O_TRUNC>."
7415 msgstr ""
7416 "B<creat>()  は I<flags> に B<O_CREAT|O_WRONLY|O_TRUNC> を指定して B<open>()  "
7417 "を行うのと等価である。"
7418
7419 #. type: SS
7420 #: build/C/man2/open.2:740
7421 #, no-wrap
7422 msgid "openat()"
7423 msgstr "openat()"
7424
7425 #. type: Plain text
7426 #: build/C/man2/open.2:746
7427 msgid ""
7428 "The B<openat>()  system call operates in exactly the same way as B<open>(), "
7429 "except for the differences described here."
7430 msgstr ""
7431 "B<openat>() システムコールは B<open>() と全く同様に動作するが、以下で説明する"
7432 "点が異なる。"
7433
7434 #. type: Plain text
7435 #: build/C/man2/open.2:756
7436 msgid ""
7437 "If the pathname given in I<pathname> is relative, then it is interpreted "
7438 "relative to the directory referred to by the file descriptor I<dirfd> "
7439 "(rather than relative to the current working directory of the calling "
7440 "process, as is done by B<open>()  for a relative pathname)."
7441 msgstr ""
7442 "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
7443 "リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
7444 "(B<open>() に相対パス名を渡した場合のように、呼び出したプロセスのカレントワー"
7445 "キングディレクトリに対する相対パスではない)。"
7446
7447 #. type: Plain text
7448 #: build/C/man2/open.2:768
7449 msgid ""
7450 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
7451 "then I<pathname> is interpreted relative to the current working directory of "
7452 "the calling process (like B<open>())."
7453 msgstr ""
7454 "I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
7455 "の場合、 (B<open>() と同様に) I<pathname> は呼び出したプロセスのカレントワー"
7456 "キングディレクトリに対する相対パスと解釈される。"
7457
7458 #. type: Plain text
7459 #: build/C/man2/open.2:774 build/C/man2/readlink.2:134
7460 msgid "If I<pathname> is absolute, then I<dirfd> is ignored."
7461 msgstr ""
7462 "I<pathname> で指定されたパス名が絶対パスの場合、 I<dirfd> は無視される。"
7463
7464 #. type: Plain text
7465 #: build/C/man2/open.2:783
7466 msgid ""
7467 "B<open>(), B<openat>(), and B<creat>()  return the new file descriptor, or "
7468 "-1 if an error occurred (in which case, I<errno> is set appropriately)."
7469 msgstr ""
7470 "B<open>(), B<openat>(), B<creat>() は新しいファイルディスクリプタを返す。 エ"
7471 "ラーが発生した場合は -1 を返す (その場合は I<errno> が適切に設定される)。"
7472
7473 #. type: Plain text
7474 #: build/C/man2/open.2:789
7475 msgid ""
7476 "B<open>(), B<openat>(), and B<creat>()  can fail with the following errors:"
7477 msgstr "B<open>(), B<openat>(), B<creat>() は以下のエラーで失敗する。"
7478
7479 #. type: Plain text
7480 #: build/C/man2/open.2:798
7481 msgid ""
7482 "The requested access to the file is not allowed, or search permission is "
7483 "denied for one of the directories in the path prefix of I<pathname>, or the "
7484 "file did not exist yet and write access to the parent directory is not "
7485 "allowed.  (See also B<path_resolution>(7).)"
7486 msgstr ""
7487 "ファイルに対する要求されたアクセスが許されていないか、 I<pathname> のディレク"
7488 "トリ部分の何れかのディレクトリに検索許可がなかった。 またはファイルが存在せ"
7489 "ず、親ディレクトリへの書き込み許可がなかった。 (B<path_resolution>(7)  も参照"
7490 "すること。)"
7491
7492 #. type: Plain text
7493 #: build/C/man2/open.2:804
7494 msgid ""
7495 "Where B<O_CREAT> is specified, the file does not exist, and the user's quota "
7496 "of disk blocks or inodes on the filesystem has been exhausted."
7497 msgstr ""
7498 "B<O_CREAT> が指定された場合で、そのファイルが存在せず、ディスクブロックか "
7499 "inode がそのファイルシステムのユーザクォータに達していた。"
7500
7501 #. type: Plain text
7502 #: build/C/man2/open.2:810
7503 msgid "I<pathname> already exists and B<O_CREAT> and B<O_EXCL> were used."
7504 msgstr "I<pathname> は既に存在し、 B<O_CREAT> と B<O_EXCL> が使用された。"
7505
7506 #. type: Plain text
7507 #: build/C/man2/open.2:814 build/C/man2/rmdir.2:67 build/C/man2/unlink.2:182
7508 msgid "I<pathname> points outside your accessible address space."
7509 msgstr "I<pathname> がアクセス可能なアドレス空間の外を指している。"
7510
7511 #. type: TP
7512 #: build/C/man2/open.2:814 build/C/man2/write.2:145
7513 #, no-wrap
7514 msgid "B<EFBIG>"
7515 msgstr "B<EFBIG>"
7516
7517 #. type: Plain text
7518 #: build/C/man2/open.2:818
7519 msgid "See B<EOVERFLOW>."
7520 msgstr "B<EOVERFLOW> 参照。"
7521
7522 #. type: TP
7523 #: build/C/man2/open.2:818 build/C/man2/read.2:122 build/C/man3/scanf.3:561
7524 #: build/C/man3/tmpfile.3:63 build/C/man2/write.2:150
7525 #, no-wrap
7526 msgid "B<EINTR>"
7527 msgstr "B<EINTR>"
7528
7529 #. type: Plain text
7530 #: build/C/man2/open.2:825
7531 msgid ""
7532 "While blocked waiting to complete an open of a slow device (e.g., a FIFO; "
7533 "see B<fifo>(7)), the call was interrupted by a signal handler; see "
7534 "B<signal>(7)."
7535 msgstr ""
7536 "遅いデバイス (例えば FIFO、 B<fifo>(7)  参照) のオープンが完了するのを待って"
7537 "停止している間に システムコールがシグナルハンドラにより割り込まれた。 "
7538 "B<signal>(7)  参照。"
7539
7540 #. type: Plain text
7541 #: build/C/man2/open.2:833
7542 msgid ""
7543 "The filesystem does not support the B<O_DIRECT> flag.  See B<NOTES> for more "
7544 "information."
7545 msgstr ""
7546 "ファイルシステムが B<O_DIRECT> フラグをサポートしていない。 詳細はB<注意>を参"
7547 "照。"
7548
7549 #.  In particular, __O_TMPFILE instead of O_TMPFILE
7550 #. type: Plain text
7551 #: build/C/man2/open.2:838
7552 msgid "Invalid value in I<flags>."
7553 msgstr "I<flags> に無効な値が入っている。"
7554
7555 #. type: Plain text
7556 #: build/C/man2/open.2:848
7557 msgid ""
7558 "B<O_TMPFILE> was specified in I<flags>, but neither B<O_WRONLY> nor "
7559 "B<O_RDWR> was specified."
7560 msgstr ""
7561 "I<flags> に B<O_TMPFILE> が指定されたが、 B<O_WRONLY> も B<O_RDWR> も指定され"
7562 "ていなかった。"
7563
7564 #. type: TP
7565 #: build/C/man2/open.2:848 build/C/man2/open.2:857 build/C/man2/read.2:158
7566 #: build/C/man2/rename.2:255 build/C/man2/unlink.2:185
7567 #: build/C/man2/unlink.2:256
7568 #, no-wrap
7569 msgid "B<EISDIR>"
7570 msgstr "B<EISDIR>"
7571
7572 #. type: Plain text
7573 #: build/C/man2/open.2:857
7574 msgid ""
7575 "I<pathname> refers to a directory and the access requested involved writing "
7576 "(that is, B<O_WRONLY> or B<O_RDWR> is set)."
7577 msgstr ""
7578 "I<pathname> はディレクトリを参照しており、書き込み要求が含まれていた (つまり "
7579 "B<O_WRONLY> または B<O_RDWR> が設定されている)。"
7580
7581 #. type: Plain text
7582 #: build/C/man2/open.2:871
7583 msgid ""
7584 "I<pathname> refers to an existing directory, B<O_TMPFILE> and one of "
7585 "B<O_WRONLY> or B<O_RDWR> were specified in I<flags>, but this kernel version "
7586 "does not provide the B<O_TMPFILE> functionality."
7587 msgstr ""
7588 "I<pathname> が存在するディレクトリを参照していて、 B<O_TMPFILE> および "
7589 "B<O_WRONLY> と B<O_RDWR> の一方が I<flags> に指定されていたが、 このカーネル"
7590 "バージョンでは B<O_TMPFILE> 機能が提供されていない。"
7591
7592 #. type: Plain text
7593 #: build/C/man2/open.2:875 build/C/man2/rmdir.2:77
7594 msgid "Too many symbolic links were encountered in resolving I<pathname>."
7595 msgstr "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
7596
7597 #. type: Plain text
7598 #: build/C/man2/open.2:884
7599 msgid ""
7600 "I<pathname> was a symbolic link, and I<flags> specified B<O_NOFOLLOW> but "
7601 "not B<O_PATH>."
7602 msgstr ""
7603 "I<pathname> がシンボリックリンクで、 I<flags> に B<O_NOFOLLOW> が指定された"
7604 "が、 B<O_PATH> が指定されていなかった。"
7605
7606 #. type: TP
7607 #: build/C/man2/open.2:884 build/C/man2/pipe.2:148 build/C/man3/tmpfile.3:66
7608 #, no-wrap
7609 msgid "B<EMFILE>"
7610 msgstr "B<EMFILE>"
7611
7612 #. type: Plain text
7613 #: build/C/man2/open.2:887
7614 msgid "The process already has the maximum number of files open."
7615 msgstr "プロセスがオープンしているファイル数がすでに最大数に達している。"
7616
7617 #. type: Plain text
7618 #: build/C/man2/open.2:891 build/C/man2/rmdir.2:80 build/C/man2/unlink.2:197
7619 msgid "I<pathname> was too long."
7620 msgstr "I<pathname> が長過ぎる。"
7621
7622 #. type: TP
7623 #: build/C/man2/open.2:891 build/C/man2/pipe.2:151 build/C/man3/tmpfile.3:69
7624 #, no-wrap
7625 msgid "B<ENFILE>"
7626 msgstr "B<ENFILE>"
7627
7628 #. type: Plain text
7629 #: build/C/man2/open.2:894 build/C/man2/pipe.2:154
7630 msgid "The system limit on the total number of open files has been reached."
7631 msgstr "オープンされているファイルの総数がシステムの制限に達している。"
7632
7633 #. type: TP
7634 #: build/C/man2/open.2:894
7635 #, no-wrap
7636 msgid "B<ENODEV>"
7637 msgstr "B<ENODEV>"
7638
7639 #. type: Plain text
7640 #: build/C/man2/open.2:901
7641 msgid ""
7642 "I<pathname> refers to a device special file and no corresponding device "
7643 "exists.  (This is a Linux kernel bug; in this situation B<ENXIO> must be "
7644 "returned.)"
7645 msgstr ""
7646 "I<pathname> がデバイススペシャルファイルを参照しており、対応するデバイスが存"
7647 "在しない。 (これは Linux カーネルのバグであり、この場合には B<ENXIO> が返され"
7648 "るべきである)"
7649
7650 #. type: Plain text
7651 #: build/C/man2/open.2:908
7652 msgid ""
7653 "B<O_CREAT> is not set and the named file does not exist.  Or, a directory "
7654 "component in I<pathname> does not exist or is a dangling symbolic link."
7655 msgstr ""
7656 "B<O_CREAT> が設定されておらず、かつ指定されたファイルが存在しない。 または、 "
7657 "I<pathname> のディレクトリ部分が存在しないか壊れた (dangling) シンボリックリ"
7658 "ンクである。"
7659
7660 #. type: Plain text
7661 #: build/C/man2/open.2:922
7662 msgid ""
7663 "I<pathname> refers to a nonexistent directory, B<O_TMPFILE> and one of "
7664 "B<O_WRONLY> or B<O_RDWR> were specified in I<flags>, but this kernel version "
7665 "does not provide the B<O_TMPFILE> functionality."
7666 msgstr ""
7667 "I<pathname> が存在しないディレクトリを参照していて、 B<O_TMPFILE> および "
7668 "B<O_WRONLY> と B<O_RDWR> の一方が I<flags> に指定されていたが、 このカーネル"
7669 "バージョンでは B<O_TMPFILE> 機能が提供されていない。"
7670
7671 #. type: Plain text
7672 #: build/C/man2/open.2:931
7673 msgid ""
7674 "I<pathname> was to be created but the device containing I<pathname> has no "
7675 "room for the new file."
7676 msgstr ""
7677 "I<pathname> を作成する必要があるが、 I<pathname> を含んでいるデバイスに新しい"
7678 "ファイルのための空き容量がない。"
7679
7680 #. type: Plain text
7681 #: build/C/man2/open.2:938
7682 msgid ""
7683 "A component used as a directory in I<pathname> is not, in fact, a directory, "
7684 "or B<O_DIRECTORY> was specified and I<pathname> was not a directory."
7685 msgstr ""
7686 "I<pathname> に含まれるディレクトリ部分のどれかが実際にはディレクトリでない。 "
7687 "または B<O_DIRECTORY> が指定されており、 I<pathname> がディレクトリでない。"
7688
7689 #. type: Plain text
7690 #: build/C/man2/open.2:944
7691 msgid ""
7692 "B<O_NONBLOCK> | B<O_WRONLY> is set, the named file is a FIFO, and no process "
7693 "has the FIFO open for reading.  Or, the file is a device special file and no "
7694 "corresponding device exists."
7695 msgstr ""
7696 "B<O_NONBLOCK> | B<O_WRONLY> が設定されており、指定したファイルが FIFO で その"
7697 "ファイルを読み込み用でオープンしている FIFO が存在しない。 または、ファイルが"
7698 "デバイススペシャルファイルで 対応するデバイスが存在しない。"
7699
7700 #. type: TP
7701 #: build/C/man2/open.2:944 build/C/man2/open_by_handle_at.2:301
7702 #, no-wrap
7703 msgid "B<EOPNOTSUPP>"
7704 msgstr "B<EOPNOTSUPP>"
7705
7706 #. type: Plain text
7707 #: build/C/man2/open.2:950
7708 msgid "The filesystem containing I<pathname> does not support B<O_TMPFILE>."
7709 msgstr ""
7710 "I<pathname> を含んでいるファイルシステムが B<O_TMPFILE> をサポートしていな"
7711 "い。"
7712
7713 #.  See http://bugzilla.kernel.org/show_bug.cgi?id=7253
7714 #.  "Open of a large file on 32-bit fails with EFBIG, should be EOVERFLOW"
7715 #.  Reported 2006-10-03
7716 #. type: Plain text
7717 #: build/C/man2/open.2:970
7718 msgid ""
7719 "I<pathname> refers to a regular file that is too large to be opened.  The "
7720 "usual scenario here is that an application compiled on a 32-bit platform "
7721 "without I<-D_FILE_OFFSET_BITS=64> tried to open a file whose size exceeds "
7722 "I<(1E<lt>E<lt>31)-1> bytes; see also B<O_LARGEFILE> above.  This is the "
7723 "error specified by POSIX.1-2001; in kernels before 2.6.24, Linux gave the "
7724 "error B<EFBIG> for this case."
7725 msgstr ""
7726 "I<pathname> が参照しているのが、大き過ぎてオープンできない通常のファイルであ"
7727 "る。 通常、このエラーが発生するは、32 ビットプラットフォーム上で I<-"
7728 "D_FILE_OFFSET_BITS=64> を指定せずにコンパイルされたアプリケーションが、ファイ"
7729 "ルサイズが I<(1E<lt>31)-1> バイトを超えるファイルを開こうとした場合である。 "
7730 "上記の B<O_LARGEFILE> も参照。 これは POSIX.1-2001 で規定されているエラーであ"
7731 "る。 2.6.24 より前のカーネルでは、Linux はこの場合にエラー B<EFBIG> を返して"
7732 "いた。"
7733
7734 #.  Strictly speaking, it's the filesystem UID... (MTK)
7735 #. type: Plain text
7736 #: build/C/man2/open.2:978
7737 msgid ""
7738 "The B<O_NOATIME> flag was specified, but the effective user ID of the caller "
7739 "did not match the owner of the file and the caller was not privileged "
7740 "(B<CAP_FOWNER>)."
7741 msgstr ""
7742 "B<O_NOATIME> フラグが指定されたが、呼び出し元の実効ユーザー ID が ファイルの"
7743 "所有者と一致せず、かつ呼び出し元に特権 (B<CAP_FOWNER>)  がない。"
7744
7745 #. type: Plain text
7746 #: build/C/man2/open.2:983
7747 msgid ""
7748 "I<pathname> refers to a file on a read-only filesystem and write access was "
7749 "requested."
7750 msgstr ""
7751 "I<pathname> が読み込み専用のファイルシステム上のファイルを参照しており、 書き"
7752 "込みアクセスが要求された。"
7753
7754 #. type: TP
7755 #: build/C/man2/open.2:983
7756 #, no-wrap
7757 msgid "B<ETXTBSY>"
7758 msgstr "B<ETXTBSY>"
7759
7760 #. type: Plain text
7761 #: build/C/man2/open.2:988
7762 msgid ""
7763 "I<pathname> refers to an executable image which is currently being executed "
7764 "and write access was requested."
7765 msgstr ""
7766 "I<pathname> が現在実行中の実行イメージを参照しており、書き込みが要求された。"
7767
7768 #. type: TP
7769 #: build/C/man2/open.2:988
7770 #, no-wrap
7771 msgid "B<EWOULDBLOCK>"
7772 msgstr "B<EWOULDBLOCK>"
7773
7774 #. type: Plain text
7775 #: build/C/man2/open.2:995
7776 msgid ""
7777 "The B<O_NONBLOCK> flag was specified, and an incompatible lease was held on "
7778 "the file (see B<fcntl>(2))."
7779 msgstr ""
7780 "B<O_NONBLOCK> フラグが指定されたが、そのファイルには矛盾するリースが設定され"
7781 "ていた (B<fcntl>(2)  参照)。"
7782
7783 #. type: Plain text
7784 #: build/C/man2/open.2:998
7785 msgid "The following additional errors can occur for B<openat>():"
7786 msgstr "B<openat>() では以下のエラーも発生する。"
7787
7788 #. type: Plain text
7789 #: build/C/man2/open.2:1002 build/C/man2/readlink.2:206
7790 #: build/C/man2/unlink.2:252
7791 msgid "I<dirfd> is not a valid file descriptor."
7792 msgstr "I<dirfd> が有効なファイルディスクリプタではない。"
7793
7794 #. type: Plain text
7795 #: build/C/man2/open.2:1008
7796 msgid ""
7797 "I<pathname> is a relative pathname and I<dirfd> is a file descriptor "
7798 "referring to a file other than a directory."
7799 msgstr ""
7800 "I<pathname> が相対パス名で、 I<dirfd> がディレクトリ以外のファイルを参照して"
7801 "いるファイルディスクリプタである。"
7802
7803 #. type: Plain text
7804 #: build/C/man2/open.2:1012
7805 msgid ""
7806 "B<openat>()  was added to Linux in kernel 2.6.16; library support was added "
7807 "to glibc in version 2.4."
7808 msgstr ""
7809 "B<openat>()  はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポー"
7810 "トはバージョン 2.4 で glibc に追加された。"
7811
7812 #. type: Plain text
7813 #: build/C/man2/open.2:1016
7814 msgid "B<open>(), B<creat>()  SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
7815 msgstr "B<open>(), B<creat>()  SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
7816
7817 #. type: Plain text
7818 #: build/C/man2/open.2:1019
7819 msgid "B<openat>(): POSIX.1-2008."
7820 msgstr "B<openat>(): POSIX.1-2008."
7821
7822 #. type: Plain text
7823 #: build/C/man2/open.2:1030
7824 msgid ""
7825 "The B<O_DIRECT>, B<O_NOATIME>, B<O_PATH>, and B<O_TMPFILE> flags are Linux-"
7826 "specific.  One must define B<_GNU_SOURCE> to obtain their definitions."
7827 msgstr ""
7828 "フラグ B<O_DIRECT>, B<O_NOATIME>, B<O_PATH>, B<O_TMPFILE> は Linux 特有のもの"
7829 "である。 これらのフラグの定義を得るためには B<_GNU_SOURCE> を定義しなければな"
7830 "らない。"
7831
7832 #. type: Plain text
7833 #: build/C/man2/open.2:1045
7834 msgid ""
7835 "The B<O_CLOEXEC>, B<O_DIRECTORY>, and B<O_NOFOLLOW> flags are not specified "
7836 "in POSIX.1-2001, but are specified in POSIX.1-2008.  Since glibc 2.12, one "
7837 "can obtain their definitions by defining either B<_POSIX_C_SOURCE> with a "
7838 "value greater than or equal to 200809L or B<_XOPEN_SOURCE> with a value "
7839 "greater than or equal to 700.  In glibc 2.11 and earlier, one obtains the "
7840 "definitions by defining B<_GNU_SOURCE>."
7841 msgstr ""
7842 "フラグ B<O_CLOEXEC>, B<O_DIRECTORY>, B<O_NOFOLLOW> は POSIX.1-2001 では規定さ"
7843 "れていないが、 POSIX.1-2008 では規定されている。 glibc 2.12 以降では、これら"
7844 "の定義を得るには、 B<_POSIX_C_SOURCE> を 200809L 以上の値で定義するか、 "
7845 "B<_XOPEN_SOURCE> を 700 以上の値で定義する。 glibc 2.11 以前では、 これらの定"
7846 "義を得るには B<_GNU_SOURCE> を定義する。"
7847
7848 #. type: Plain text
7849 #: build/C/man2/open.2:1056
7850 msgid ""
7851 "As noted in B<feature_test_macros>(7), feature test macros such as "
7852 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, and B<_GNU_SOURCE> must be defined "
7853 "before including I<any> header files."
7854 msgstr ""
7855 "B<feature_test_macros>(7) に注意書きがあるように、 B<_POSIX_C_SOURCE>, "
7856 "B<_XOPEN_SOURCE>, B<_GNU_SOURCE> などの機能検査マクロはI<どの>ヘッダーファイ"
7857 "ルをインクルードするより前に定義しなければならない。"
7858
7859 #. type: Plain text
7860 #: build/C/man2/open.2:1064
7861 msgid ""
7862 "Under Linux, the B<O_NONBLOCK> flag indicates that one wants to open but "
7863 "does not necessarily have the intention to read or write.  This is typically "
7864 "used to open devices in order to get a file descriptor for use with "
7865 "B<ioctl>(2)."
7866 msgstr ""
7867 "Linux では、 B<O_NONBLOCK> フラグは、 open を実行したいが read または write "
7868 "を実行する意図は 必ずしもないことを意味する。 これは B<ioctl>(2)  のための"
7869 "ファイルディスクリプタを取得するために、 デバイスをオープンするときによく用い"
7870 "られる。"
7871
7872 #.  Linux 2.0, 2.5: truncate
7873 #.  Solaris 5.7, 5.8: truncate
7874 #.  Irix 6.5: truncate
7875 #.  Tru64 5.1B: truncate
7876 #.  HP-UX 11.22: truncate
7877 #.  FreeBSD 4.7: truncate
7878 #. type: Plain text
7879 #: build/C/man2/open.2:1076
7880 msgid ""
7881 "The (undefined) effect of B<O_RDONLY | O_TRUNC> varies among "
7882 "implementations.  On many systems the file is actually truncated."
7883 msgstr ""
7884 "B<O_RDONLY | O_TRUNC> の影響は未定義であり、その動作は実装によって異なる。 多"
7885 "くのシステムではファイルは実際に切り詰められる。"
7886
7887 #. type: Plain text
7888 #: build/C/man2/open.2:1084
7889 msgid ""
7890 "Note that B<open>()  can open device special files, but B<creat>()  cannot "
7891 "create them; use B<mknod>(2)  instead."
7892 msgstr ""
7893 "B<open>()  はスペシャルファイルをオープンすることができるが、 B<creat>()  で"
7894 "スペシャルファイルを作成できない点に注意すること。 代わりに B<mknod>(2)  を使"
7895 "用する。"
7896
7897 #. type: Plain text
7898 #: build/C/man2/open.2:1105
7899 msgid ""
7900 "If the file is newly created, its I<st_atime>, I<st_ctime>, I<st_mtime> "
7901 "fields (respectively, time of last access, time of last status change, and "
7902 "time of last modification; see B<stat>(2))  are set to the current time, and "
7903 "so are the I<st_ctime> and I<st_mtime> fields of the parent directory.  "
7904 "Otherwise, if the file is modified because of the B<O_TRUNC> flag, its "
7905 "st_ctime and st_mtime fields are set to the current time."
7906 msgstr ""
7907 "ファイルが新しく作成されると、 ファイルの I<st_atime>, I<st_ctime>, "
7908 "I<st_mtime> フィールド (それぞれ最終アクセス時刻、最終状態変更時刻、最終修正"
7909 "時刻である。 B<stat>(2)  参照) が現在時刻に設定される。 さらに親ディレクトリ"
7910 "の I<st_ctime> と I<st_mtime> も現在時刻に設定される。 それ以外の場合で、"
7911 "O_TRUNC フラグでファイルが修正されたときは、 ファイルの I<st_ctime> と "
7912 "I<st_mtime> フィールドが現在時刻に設定される。"
7913
7914 #. type: SS
7915 #: build/C/man2/open.2:1105
7916 #, no-wrap
7917 msgid "Open file descriptions"
7918 msgstr "オープンファイル記述"
7919
7920 #. type: Plain text
7921 #: build/C/man2/open.2:1113
7922 msgid ""
7923 "The term open file description is the one used by POSIX to refer to the "
7924 "entries in the system-wide table of open files.  In other contexts, this "
7925 "object is variously also called an \"open file object\", a \"file handle\", "
7926 "an \"open file table entry\", or\\(emin kernel-developer parlance\\(ema "
7927 "I<struct file>."
7928 msgstr ""
7929 "オープンファイル記述という用語は POSIX で使用されている用語で、オープンされて"
7930 "いるファイルのシステム共通のテーブルのエントリーを参照するものである。 別の文"
7931 "脈では、このオブジェクトはいろいろな呼び方があり、 「オープンファイルオブジェ"
7932 "クト」、「ファイルハンドル」、「オープンファイルテーブルエントリー」、 カーネ"
7933 "ル開発者の用語では I<struct file> などと呼ばれる。"
7934
7935 #. type: Plain text
7936 #: build/C/man2/open.2:1126
7937 msgid ""
7938 "When a file descriptor is duplicated (using B<dup>(2)  or similar), the "
7939 "duplicate refers to the same open file description as the original file "
7940 "descriptor, and the two file descriptors consequently share the file offset "
7941 "and file status flags.  Such sharing can also occur between processes: a "
7942 "child process created via B<fork>(2)  inherits duplicates of its parent's "
7943 "file descriptors, and those duplicates refer to the same open file "
7944 "descriptions."
7945 msgstr ""
7946 "ファイルディスクリプタが (B<dup>(2) や同様のシステムコールを使って) 複製され"
7947 "る際に、 複製されたファイルディスクリプタは元のファイルディスクリプタと同じ"
7948 "オープンファイル記述を参照する。 結果として 2 つのファイルディスクリプタは"
7949 "ファイルオフセットとファイル状態フラグを共有する。 このような共有はプロセス間"
7950 "でも起こり得る。 B<fork>(2) で作成された子プロセスは親プロセスのファイルディ"
7951 "スクリプタの複製を継承し、これらの複製は同じオープンファイル記述を参照する。"
7952
7953 #. type: Plain text
7954 #: build/C/man2/open.2:1134
7955 msgid ""
7956 "Each B<open>(2)  of a file creates a new open file description; thus, there "
7957 "may be multiple open file descriptions corresponding to a file inode."
7958 msgstr ""
7959 "1 つのファイルに対して B<open>(2) を行う毎に、新しいオープンファイル記述が作"
7960 "成される。 したがって、 1 つのファイル inode に対して複数のオープンファイル記"
7961 "述が存在することがありえる。"
7962
7963 #. type: SS
7964 #: build/C/man2/open.2:1134
7965 #, no-wrap
7966 msgid "Synchronized I/O"
7967 msgstr "同期 I/O"
7968
7969 #. type: Plain text
7970 #: build/C/man2/open.2:1149
7971 msgid ""
7972 "The POSIX.1-2008 \"synchronized I/O\" option specifies different variants of "
7973 "synchronized I/O, and specifies the B<open>()  flags B<O_SYNC>, B<O_DSYNC>, "
7974 "and B<O_RSYNC> for controlling the behavior.  Regardless of whether an "
7975 "implementation supports this option, it must at least support the use of "
7976 "B<O_SYNC> for regular files."
7977 msgstr ""
7978 "POSIX.1-2008 の「同期 I/O」の選択肢として複数種類が規定されており、 動作を制"
7979 "御するために B<open>() フラグとして B<O_SYNC>, B<O_DSYNC>, B<O_RSYNC> が規定"
7980 "されている。 この選択肢を実装がサポートしているかに関わらず、 各実装では少な"
7981 "くとも通常のファイルに対して B<O_SYNC> が利用できなければならない。"
7982
7983 #. type: Plain text
7984 #: build/C/man2/open.2:1160
7985 msgid ""
7986 "Linux implements B<O_SYNC> and B<O_DSYNC>, but not B<O_RSYNC>.  (Somewhat "
7987 "incorrectly, glibc defines B<O_RSYNC> to have the same value as B<O_SYNC>.)"
7988 msgstr ""
7989 "Linux は B<O_SYNC> と B<O_DSYNC> を実装しているが、 B<O_RSYNC> は実装していな"
7990 "い (少し間違っているのだが、 glibc では B<O_RSYNC> が B<O_SYNC> と同じ値で定"
7991 "義されている)。"
7992
7993 #. type: Plain text
7994 #: build/C/man2/open.2:1178
7995 msgid ""
7996 "B<O_SYNC> provides synchronized I/O I<file> integrity completion, meaning "
7997 "write operations will flush data and all associated metadata to the "
7998 "underlying hardware.  B<O_DSYNC> provides synchronized I/O I<data> integrity "
7999 "completion, meaning write operations will flush data to the underlying "
8000 "hardware, but will only flush metadata updates that are required to allow a "
8001 "subsequent read operation to complete successfully.  Data integrity "
8002 "completion can reduce the number of disk operations that are required for "
8003 "applications that don't need the guarantees of file integrity completion."
8004 msgstr ""
8005 "B<O_SYNC> は、 同期 I/O でのI<ファイル>完全性完了を提供する。 つまり、 書き込"
8006 "み操作はデータとすべての関連メタデータを裏で利用されているハードウェアにフ"
8007 "ラッシュすることを意味する。 B<O_DSYNC> は、 同期 I/O でのI<データ>完全性完了"
8008 "を提供する。 つまり、 書き込み操作はデータを裏で利用されているハードウェアに"
8009 "フラッシュするが、 それ以降の読み出し操作が正常に完了するのに必要なメタデータ"
8010 "の更新のみをフラッシュする。 データ完全性完了は、 ファイル完全性完了を必要と"
8011 "しないアプリケーションで、 ディスク操作の数を減らすことができる。"
8012
8013 #. type: Plain text
8014 #: build/C/man2/open.2:1195
8015 msgid ""
8016 "To understand the difference between the two types of completion, consider "
8017 "two pieces of file metadata: the file last modification timestamp "
8018 "(I<st_mtime>)  and the file length.  All write operations will update the "
8019 "last file modification timestamp, but only writes that add data to the end "
8020 "of the file will change the file length.  The last modification timestamp is "
8021 "not needed to ensure that a read completes successfully, but the file length "
8022 "is.  Thus, B<O_DSYNC> would only guarantee to flush updates to the file "
8023 "length metadata (whereas B<O_SYNC> would also always flush the last "
8024 "modification timestamp metadata)."
8025 msgstr ""
8026 "2 種類の完了の違いを理解するために、 ファイルメタデータの 2 つの要素、 ファイ"
8027 "ルの最終修正時刻 (I<st_mtime>) とファイル長、を考える。 すべての書き込み操作"
8028 "は最終修正時刻を更新するが、 ファイルの末尾にデータを追加する書き込み操作のみ"
8029 "がファイル長を変更する。 最終修正時刻は、 読み出しが正常に完了するのに必要で"
8030 "はないが、 ファイル長は必要である。 したがって、 B<O_DSYNC> はファイル長のメ"
8031 "タデータの更新がフラッシュされることだけを保証する (これに対して B<O_SYNC> で"
8032 "は最終修正時刻のメタデータも常にフラッシュされる)。"
8033
8034 #. type: Plain text
8035 #: build/C/man2/open.2:1207
8036 msgid ""
8037 "Before Linux 2.6.33, Linux implemented only the B<O_SYNC> flag for "
8038 "B<open>().  However, when that flag was specified, most filesystems actually "
8039 "provided the equivalent of synchronized I/O I<data> integrity completion (i."
8040 "e., B<O_SYNC> was actually implemented as the equivalent of B<O_DSYNC>)."
8041 msgstr ""
8042 "Linux 2.6.33 より前では、 Linux は B<open>() では B<O_SYNC> フラグのみを実装"
8043 "していた。 しかしながら、 このフラグが指定された場合、 ほとんどのファイルシス"
8044 "テムで提供されていたのは実際には同期 I/O でのI<データ>完全性完了と等価なもの"
8045 "であった (つまり、 B<O_SYNC> は実際には B<O_DSYNC> と等価なものとして実装され"
8046 "ていた)。"
8047
8048 #. type: Plain text
8049 #: build/C/man2/open.2:1226
8050 msgid ""
8051 "Since Linux 2.6.33, proper B<O_SYNC> support is provided.  However, to "
8052 "ensure backward binary compatibility, B<O_DSYNC> was defined with the same "
8053 "value as the historical B<O_SYNC>, and B<O_SYNC> was defined as a new (two-"
8054 "bit) flag value that includes the B<O_DSYNC> flag value.  This ensures that "
8055 "applications compiled against new headers get at least B<O_DSYNC> semantics "
8056 "on pre-2.6.33 kernels."
8057 msgstr ""
8058 "Linux 2.6.33 行こう では、 正しい B<O_SYNC> のサポートが提供されている。 しか"
8059 "しながら、 バイナリレベルの後方互換性を保証するため、 B<O_DSYNC> は以前の "
8060 "B<O_SYNC> と同じ値で定義されており、 B<O_SYNC> は B<O_DSYNC> フラグの値を含む"
8061 "新しい (2 ビットの) フラグ値として定義されている。 これにより、 新しいヘッダ"
8062 "を使ってコンパイルされたアプリケーションで、 2.6.33 より前のカーネルで少なく"
8063 "とも B<O_DSYNC> の動作は同じになることが保証される。"
8064
8065 #. type: SS
8066 #: build/C/man2/open.2:1226
8067 #, no-wrap
8068 msgid "NFS"
8069 msgstr "NFS"
8070
8071 #. type: Plain text
8072 #: build/C/man2/open.2:1230
8073 msgid ""
8074 "There are many infelicities in the protocol underlying NFS, affecting "
8075 "amongst others B<O_SYNC> and B<O_NDELAY>."
8076 msgstr ""
8077 "NFS を実現しているプロトコルには多くの不備があり、特に B<O_SYNC> と "
8078 "B<O_NDELAY> に影響する。"
8079
8080 #. type: Plain text
8081 #: build/C/man2/open.2:1245
8082 msgid ""
8083 "On NFS filesystems with UID mapping enabled, B<open>()  may return a file "
8084 "descriptor but, for example, B<read>(2)  requests are denied with "
8085 "B<EACCES>.  This is because the client performs B<open>()  by checking the "
8086 "permissions, but UID mapping is performed by the server upon read and write "
8087 "requests."
8088 msgstr ""
8089 "UID マッピングを使用している NFS ファイルシステムでは、 B<open>()  がファイル"
8090 "ディスクリプタを返した場合でも B<read>(2)  が B<EACCES> で拒否される場合があ"
8091 "る。 これはクライアントがアクセス許可のチェックを行って B<open>()  を実行する"
8092 "が、読み込みや書き込みの際には サーバーで UID マッピングが行われるためであ"
8093 "る。"
8094
8095 #. type: SS
8096 #: build/C/man2/open.2:1245
8097 #, no-wrap
8098 msgid "File access mode"
8099 msgstr "ファイルアクセスモード"
8100
8101 #. type: Plain text
8102 #: build/C/man2/open.2:1260
8103 msgid ""
8104 "Unlike the other values that can be specified in I<flags>, the I<access "
8105 "mode> values B<O_RDONLY>, B<O_WRONLY>, and B<O_RDWR> do not specify "
8106 "individual bits.  Rather, they define the low order two bits of I<flags>, "
8107 "and are defined respectively as 0, 1, and 2.  In other words, the "
8108 "combination B<O_RDONLY | O_WRONLY> is a logical error, and certainly does "
8109 "not have the same meaning as B<O_RDWR>."
8110 msgstr ""
8111 "「アクセスモード」の値 B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> は、 I<flags> に指"
8112 "定できる他の値と違い、個々のビットを指定するものではなく、 これらの値は "
8113 "I<flags> の下位 2 ビットを定義する。 B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> はそ"
8114 "れぞれ 0, 1, 2 に定義されている。 言い換えると、 B<O_RDONLY | O_WRONLY> の組"
8115 "み合わせは論理的に間違いであり、確かに B<O_RDWR> と同じ意味ではない。"
8116
8117 #.  See for example util-linux's disk-utils/setfdprm.c
8118 #.  For some background on access mode 3, see
8119 #.  http://thread.gmane.org/gmane.linux.kernel/653123
8120 #.  "[RFC] correct flags to f_mode conversion in __dentry_open"
8121 #.  LKML, 12 Mar 2008
8122 #. type: Plain text
8123 #: build/C/man2/open.2:1277
8124 msgid ""
8125 "Linux reserves the special, nonstandard access mode 3 (binary 11) in "
8126 "I<flags> to mean: check for read and write permission on the file and return "
8127 "a descriptor that can't be used for reading or writing.  This nonstandard "
8128 "access mode is used by some Linux drivers to return a descriptor that is to "
8129 "be used only for device-specific B<ioctl>(2)  operations."
8130 msgstr ""
8131 "Linux では、特別な、非標準なアクセスモードとして 3 (バイナリでは 11) が 予約"
8132 "されており I<flags> に指定できる。 このアクセスモードを指定すると、ファイルの"
8133 "読み出し/書き込み許可をチェックし、 読み出しにも書き込みにも使用できないディ"
8134 "スクリプタを返す。 この非標準のアクセスモードはいくつかの Linux ドライバで、"
8135 "デバイス固有の B<ioctl>(2) 操作にのみ使用されるディスクリプタを返すために使わ"
8136 "れている。"
8137
8138 #. type: SS
8139 #: build/C/man2/open.2:1277
8140 #, no-wrap
8141 msgid "Rationale for openat() and other directory file descriptor APIs"
8142 msgstr "openat() や他のディレクトリファイルディスクリプタ API の基本原理"
8143
8144 #. type: Plain text
8145 #: build/C/man2/open.2:1305
8146 msgid ""
8147 "B<openat>()  and the other system calls and library functions that take a "
8148 "directory file descriptor argument (i.e., B<faccessat>(2), "
8149 "B<fanotify_mark>(2), B<fchmodat>(2), B<fchownat>(2), B<fstatat>(2), "
8150 "B<futimesat>(2), B<linkat>(2), B<mkdirat>(2), B<mknodat>(2), "
8151 "B<name_to_handle_at>(2), B<readlinkat>(2), B<renameat>(2), B<symlinkat>(2), "
8152 "B<unlinkat>(2), B<utimensat>(2)  B<mkfifoat>(3), and B<scandirat>(3))  are "
8153 "supported for two reasons.  Here, the explanation is in terms of the "
8154 "B<openat>()  call, but the rationale is analogous for the other interfaces."
8155 msgstr ""
8156 "B<openat>() やディレクトリファイルディスクリプタを引き数を取る他のシステム"
8157 "コールやライブラリ関数 (B<faccessat>(2), B<fanotify_mark>(2), "
8158 "B<fchmodat>(2), B<fchownat>(2), B<fstatat>(2), B<futimesat>(2), "
8159 "B<linkat>(2), B<mkdirat>(2), B<mknodat>(2), B<name_to_handle_at>(2), "
8160 "B<readlinkat>(2), B<renameat>(2), B<symlinkat>(2), B<unlinkat>(2), "
8161 "B<utimensat>(2) B<mkfifoat>(3), B<scandirat>(3)) は二つの理由から用意されてい"
8162 "る。 ここでは、 B<openat> コールに関して説明するが、この基本原理は他のイン"
8163 "ターフェースでも同じである。"
8164
8165 #. type: Plain text
8166 #: build/C/man2/open.2:1336
8167 msgid ""
8168 "First, B<openat>()  allows an application to avoid race conditions that "
8169 "could occur when using B<open>()  to open files in directories other than "
8170 "the current working directory.  These race conditions result from the fact "
8171 "that some component of the directory prefix given to B<open>()  could be "
8172 "changed in parallel with the call to B<open>().  Suppose, for example, that "
8173 "we wish to create the file I<path/to/xxx.dep> if the file I<path/to/xxx> "
8174 "exists.  The problem is that between the existence check and the file "
8175 "creation step, I<path> or I<to> (which might be symbolic links)  could be "
8176 "modified to point to a different location.  Such races can be avoided by "
8177 "opening a file descriptor for the target directory, and then specifying that "
8178 "file descriptor as the I<dirfd> argument of (say)  B<fstatat>(2)  and "
8179 "B<openat>()."
8180 msgstr ""
8181 "最初の理由として、 B<openat>() を使うと、 アプリケーションは、 カレントワーキ"
8182 "ングディレクトリ以外のディレクトリで B<open>() を使ってファイルをオープンする"
8183 "際に起こり得る競合条件を避けることができる。 これらの競合条件は、 B<open>() "
8184 "に渡されたディレクトリプレフィックスの構成要素が B<open>() の呼び出しと並行し"
8185 "て変化する可能性があるという点に由来している。 例えば、ファイル I<path/to/"
8186 "xxx> が存在する場合にファイル I<path/to/xxx.dep> を作成したいとする。 問題"
8187 "は、存在確認とファイル作成の間に、 I<path> や I<to> (シンボリックリンクでもよ"
8188 "い) が別の場所を指すように変更されることがあるということだ。 このような競合条"
8189 "件は、 対象のディレクトリに対するファイルディスクリプタをオープンし、 それか"
8190 "ら B<fstatat>(2) や B<openat>() の I<dirfd> 引き数としてそのファイルディスク"
8191 "リプタを指定することで、 避けることができる。"
8192
8193 #. type: Plain text
8194 #: build/C/man2/open.2:1347
8195 msgid ""
8196 "Second, B<openat>()  allows the implementation of a per-thread \"current "
8197 "working directory\", via file descriptor(s) maintained by the application.  "
8198 "(This functionality can also be obtained by tricks based on the use of I</"
8199 "proc/self/fd/>dirfd, but less efficiently.)"
8200 msgstr ""
8201 "二つ目として、 B<openat>() を使うと、アプリケーションが管理するファイルディス"
8202 "クリプタにより、 スレッド単位の「カレントワーキングディレクトリ」を実装するこ"
8203 "とができる (この機能は、 I</proc/self/fd/dirfd> を使った方法でも実現すること"
8204 "ができるが、 効率の面で落とる)。"
8205
8206 #. type: SS
8207 #: build/C/man2/open.2:1347
8208 #, no-wrap
8209 msgid "O_DIRECT"
8210 msgstr "O_DIRECT"
8211
8212 #. type: Plain text
8213 #: build/C/man2/open.2:1364
8214 msgid ""
8215 "The B<O_DIRECT> flag may impose alignment restrictions on the length and "
8216 "address of user-space buffers and the file offset of I/Os.  In Linux "
8217 "alignment restrictions vary by filesystem and kernel version and might be "
8218 "absent entirely.  However there is currently no filesystem-independent "
8219 "interface for an application to discover these restrictions for a given file "
8220 "or filesystem.  Some filesystems provide their own interfaces for doing so, "
8221 "for example the B<XFS_IOC_DIOINFO> operation in B<xfsctl>(3)."
8222 msgstr ""
8223 "B<O_DIRECT> フラグを使用する場合、ユーザ空間バッファの長さやアドレス、 I/O の"
8224 "ファイルオフセットに関してアラインメントの制限が課されることがある。 Linux で"
8225 "は、アラインメントの制限はファイルシステムやカーネルのバージョンに よって異な"
8226 "り、全く制限が存在しない場合もある。 しかしながら、現在のところ、指定された"
8227 "ファイルやファイルシステムに対して こうした制限があるかを見つけるための、アプ"
8228 "リケーション向けのインタフェースで ファイルシステム非依存のものは存在しな"
8229 "い。 いくつかのファイルシステムでは、制限を確認するための独自のインタフェース"
8230 "が 提供されている。例えば、 B<xfsctl>(3)  の B<XFS_IOC_DIOINFO> 命令である。"
8231
8232 #. type: Plain text
8233 #: build/C/man2/open.2:1374
8234 msgid ""
8235 "Under Linux 2.4, transfer sizes, and the alignment of the user buffer and "
8236 "the file offset must all be multiples of the logical block size of the "
8237 "filesystem.  Since Linux 2.6.0, alignment to the logical block size of the "
8238 "underlying storage (typically 512 bytes) suffices.  The logical block size "
8239 "can be determined using the B<ioctl>(2)  B<BLKSSZGET> operation or from the "
8240 "shell using the command:"
8241 msgstr ""
8242 "Linux 2.4 では、転送サイズ、 ユーザーバッファのアライメント、ファイルオフセッ"
8243 "トは、 ファイルシステムの論理ブロックサイズの倍数でなければならない。 Linux "
8244 "2.6.0 以降では、 内部で使われるストレージの論理ブロックサイズのアライメント "
8245 "(通常は 512 バイト) で十分である。 論理ブロックサイズは B<ioctl>(2) "
8246 "B<BLKSSZGET> 操作や以下のシェルコマンドから知ることができる。"
8247
8248 #. type: Plain text
8249 #: build/C/man2/open.2:1376
8250 #, no-wrap
8251 msgid "    blockdev --getss\n"
8252 msgstr "    blockdev --getss\n"
8253
8254 #. type: Plain text
8255 #: build/C/man2/open.2:1410
8256 msgid ""
8257 "B<O_DIRECT> I/Os should never be run concurrently with the B<fork>(2)  "
8258 "system call, if the memory buffer is a private mapping (i.e., any mapping "
8259 "created with the B<mmap>(2)  B<MAP_PRIVATE> flag; this includes memory "
8260 "allocated on the heap and statically allocated buffers).  Any such I/Os, "
8261 "whether submitted via an asynchronous I/O interface or from another thread "
8262 "in the process, should be completed before B<fork>(2)  is called.  Failure "
8263 "to do so can result in data corruption and undefined behavior in parent and "
8264 "child processes.  This restriction does not apply when the memory buffer for "
8265 "the B<O_DIRECT> I/Os was created using B<shmat>(2)  or B<mmap>(2)  with the "
8266 "B<MAP_SHARED> flag.  Nor does this restriction apply when the memory buffer "
8267 "has been advised as B<MADV_DONTFORK> with B<madvise>(2), ensuring that it "
8268 "will not be available to the child after B<fork>(2)."
8269 msgstr ""
8270 "メモリバッファがプライベートマッピング (B<mmap>(2) の B<MAP_PRIVATE>\n"
8271 "フラグで作成されたマッピング) の場合には、B<O_DIRECT> I/O は\n"
8272 "B<fork>(2) システムコールと同時に決して実行すべきではない \n"
8273 "(プライベートマッピングには、ヒープ領域に割り当てられたメモリや静的に\n"
8274 "割り当てたバッファも含まれる)。非同期 I/O インターフェース (AIO) 経由\n"
8275 "やプロセス内の他のスレッドから発行された、このような I/O は、\n"
8276 "B<fork>(2) が呼び出される前に完了されるべきである。\n"
8277 "そうしなかった場合、データ破壊や、親プロセスや子プロセスでの予期しない\n"
8278 "動作が起こる可能性がある。\n"
8279 "B<O_DIRECT> I/O 用のメモリバッファが B<shmat>(2) やB<MAP_SHARED> フラグ\n"
8280 "付きの B<mmap>(2) で作成された場合には、この制限はあてはまらない。\n"
8281 "B<madvise>(2) でメモリバッファにアドバイス B<MADV_DONTFORK> が設定され\n"
8282 "ている場合にも、この制限はあてはまらない(B<MADV_DONTFORK> はそのメモリ\n"
8283 "バッファが B<fork>(2) 後に子プロセスからは利用できないことを保証するも\n"
8284 "のである)。"
8285
8286 #. type: Plain text
8287 #: build/C/man2/open.2:1420
8288 msgid ""
8289 "The B<O_DIRECT> flag was introduced in SGI IRIX, where it has alignment "
8290 "restrictions similar to those of Linux 2.4.  IRIX has also a B<fcntl>(2)  "
8291 "call to query appropriate alignments, and sizes.  FreeBSD 4.x introduced a "
8292 "flag of the same name, but without alignment restrictions."
8293 msgstr ""
8294 "B<O_DIRECT> フラグは SGI IRIX で導入された。SGI IRIX にも Linux 2.4 と同様の "
8295 "(ユーザーバッファの) アラインメントの制限がある。 また、IRIX には適切な配置と"
8296 "サイズを取得するための B<fcntl>(2)  コールがある。 FreeBSD 4.x も同じ名前のフ"
8297 "ラグを導入したが、アラインメントの制限はない。"
8298
8299 #. type: Plain text
8300 #: build/C/man2/open.2:1429
8301 msgid ""
8302 "B<O_DIRECT> support was added under Linux in kernel version 2.4.10.  Older "
8303 "Linux kernels simply ignore this flag.  Some filesystems may not implement "
8304 "the flag and B<open>()  will fail with B<EINVAL> if it is used."
8305 msgstr ""
8306 "B<O_DIRECT> が Linux でサポートされたのは、カーネルバージョン 2.4.10 であ"
8307 "る。 古い Linux カーネルは、このフラグを単に無視する。 B<O_DIRECT> フラグをサ"
8308 "ポートしていないファイルシステムもあり、その場合は、 B<O_DIRECT> を使用する"
8309 "と B<open>()  は B<EINVAL> で失敗する。"
8310
8311 #. type: Plain text
8312 #: build/C/man2/open.2:1440
8313 msgid ""
8314 "Applications should avoid mixing B<O_DIRECT> and normal I/O to the same "
8315 "file, and especially to overlapping byte regions in the same file.  Even "
8316 "when the filesystem correctly handles the coherency issues in this "
8317 "situation, overall I/O throughput is likely to be slower than using either "
8318 "mode alone.  Likewise, applications should avoid mixing B<mmap>(2)  of files "
8319 "with direct I/O to the same files."
8320 msgstr ""
8321 "アプリケーションは、同じファイル、 特に同じファイルの重複するバイト領域に対し"
8322 "て、 B<O_DIRECT> と通常の I/O を混ぜて使うのは避けるべきである。 ファイルシス"
8323 "テムがこのような状況において一貫性の問題を正しく 扱うことができる場合であって"
8324 "も、全体の I/O スループットは どちらか一方を使用するときと比べて低速になるで"
8325 "あろう。 同様に、アプリケーションは、同じファイルに対して B<mmap>(2)  と直接 "
8326 "I/O (B<O_DIRECT>)  を混ぜて使うのも避けるべきである。"
8327
8328 #. type: Plain text
8329 #: build/C/man2/open.2:1462
8330 msgid ""
8331 "The behavior of B<O_DIRECT> with NFS will differ from local filesystems.  "
8332 "Older kernels, or kernels configured in certain ways, may not support this "
8333 "combination.  The NFS protocol does not support passing the flag to the "
8334 "server, so B<O_DIRECT> I/O will bypass the page cache only on the client; "
8335 "the server may still cache the I/O.  The client asks the server to make the "
8336 "I/O synchronous to preserve the synchronous semantics of B<O_DIRECT>.  Some "
8337 "servers will perform poorly under these circumstances, especially if the I/O "
8338 "size is small.  Some servers may also be configured to lie to clients about "
8339 "the I/O having reached stable storage; this will avoid the performance "
8340 "penalty at some risk to data integrity in the event of server power "
8341 "failure.  The Linux NFS client places no alignment restrictions on "
8342 "B<O_DIRECT> I/O."
8343 msgstr ""
8344 "NFS で B<O_DIRECT> を使った場合の動作はローカルのファイルシステムの場合と違"
8345 "う。 古いカーネルや、ある種の設定でコンパイルされたカーネルは、 B<O_DIRECT> "
8346 "と NFS の組み合わせをサポートしていないかもしれない。 NFS プロトコル自体は"
8347 "サーバにフラグを渡す機能は持っていないので、 B<O_DIRECT> I/O はクライアント上"
8348 "のページキャッシュをバイパスするだけになり、 サーバは I/O をキャッシュしてい"
8349 "るかもしれない。 クライアントは、 B<O_DIRECT> の同期機構を保持するため、サー"
8350 "バに対して I/O を同期して行うように依頼する。 サーバによっては、こうした状況"
8351 "下、特に I/O サイズが小さい場合に 性能が大きく劣化する。 また、サーバによって"
8352 "は、I/O が安定したストレージにまで行われたと、 クライアントに対して嘘をつくも"
8353 "のもある。 これは、サーバの電源故障が起こった際にデータの完全性が保たれない "
8354 "危険は少しあるが、性能面での不利な条件を回避するために行われている。 Linux "
8355 "の NFS クライアントでは B<O_DIRECT> I/O でのアラインメントの制限はない。"
8356
8357 #. type: Plain text
8358 #: build/C/man2/open.2:1469
8359 msgid ""
8360 "In summary, B<O_DIRECT> is a potentially powerful tool that should be used "
8361 "with caution.  It is recommended that applications treat use of B<O_DIRECT> "
8362 "as a performance option which is disabled by default."
8363 msgstr ""
8364 "まとめると、 B<O_DIRECT> は、注意して使うべきであるが、強力なツールとなる可能"
8365 "性を持っている。 アプリケーションは B<O_DIRECT> をデフォルトでは無効になって"
8366 "いる性能向上のためのオプションと 考えておくのがよいであろう。"
8367
8368 #. type: Plain text
8369 #: build/C/man2/open.2:1474
8370 msgid ""
8371 "\"The thing that has always disturbed me about O_DIRECT is that the whole "
8372 "interface is just stupid, and was probably designed by a deranged monkey on "
8373 "some serious mind-controlling substances.\"\\(emLinus"
8374 msgstr ""
8375 "「O_DIRECT でいつも困るのは、インタフェース全部が本当にお馬鹿な点だ。 たぶん"
8376 "危ないマインドコントロール剤で 頭がおかしくなったサルが設計したんじゃないか"
8377 "な」 \\(em Linus"
8378
8379 #.  FIXME . Check bugzilla report on open(O_ASYNC)
8380 #.  See http://bugzilla.kernel.org/show_bug.cgi?id=5993
8381 #. type: Plain text
8382 #: build/C/man2/open.2:1486
8383 msgid ""
8384 "Currently, it is not possible to enable signal-driven I/O by specifying "
8385 "B<O_ASYNC> when calling B<open>(); use B<fcntl>(2)  to enable this flag."
8386 msgstr ""
8387 "現在のところ、 B<open>()  の呼び出し時に B<O_ASYNC> を指定してシグナル駆動 I/"
8388 "O を有効にすることはできない。 このフラグを有効にするには B<fcntl>(2)  を使用"
8389 "すること。"
8390
8391 #. type: Plain text
8392 #: build/C/man2/open.2:1494
8393 msgid ""
8394 "One must check for two different error codes, B<EISDIR> and B<ENOENT>, when "
8395 "trying to determine whether the kernel supports B<O_TMPFILE> functionality."
8396 msgstr ""
8397 "カーネルが B<O_TMPFILE> 機能をサポートしているかを判定する際に、 B<EISDIR> "
8398 "と B<ENOENT> の 2 つのエラーコードをチェックしなければならない。"
8399
8400 #. type: Plain text
8401 #: build/C/man2/open.2:1516
8402 msgid ""
8403 "B<chmod>(2), B<chown>(2), B<close>(2), B<dup>(2), B<fcntl>(2), B<link>(2), "
8404 "B<lseek>(2), B<mknod>(2), B<mmap>(2), B<mount>(2), B<open_by_handle_at>(2), "
8405 "B<read>(2), B<socket>(2), B<stat>(2), B<umask>(2), B<unlink>(2), "
8406 "B<write>(2), B<fopen>(3), B<fifo>(7), B<path_resolution>(7), B<symlink>(7)"
8407 msgstr ""
8408 "B<chmod>(2), B<chown>(2), B<close>(2), B<dup>(2), B<fcntl>(2), B<link>(2), "
8409 "B<lseek>(2), B<mknod>(2), B<mmap>(2), B<mount>(2), B<open_by_handle_at>(2), "
8410 "B<read>(2), B<socket>(2), B<stat>(2), B<umask>(2), B<unlink>(2), "
8411 "B<write>(2), B<fopen>(3), B<fifo>(7), B<path_resolution>(7), B<symlink>(7)"
8412
8413 #. type: TH
8414 #: build/C/man2/open_by_handle_at.2:25
8415 #, no-wrap
8416 msgid "OPEN_BY_HANDLE_AT"
8417 msgstr "OPEN_BY_HANDLE_AT"
8418
8419 #. type: Plain text
8420 #: build/C/man2/open_by_handle_at.2:29
8421 msgid ""
8422 "name_to_handle_at, open_by_handle_at - obtain handle for a pathname and open "
8423 "file via a handle"
8424 msgstr ""
8425
8426 #. type: Plain text
8427 #: build/C/man2/open_by_handle_at.2:35
8428 #, no-wrap
8429 msgid ""
8430 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
8431 "B<#include E<lt>sys/types.hE<gt>>\n"
8432 "B<#include E<lt>sys/stat.hE<gt>>\n"
8433 "B<#include E<lt>fcntl.hE<gt>>\n"
8434 msgstr ""
8435 "B<#define _GNU_SOURCE>         /* feature_test_macros(7) 参照 */\n"
8436 "B<#include E<lt>sys/types.hE<gt>>\n"
8437 "B<#include E<lt>sys/stat.hE<gt>>\n"
8438 "B<#include E<lt>fcntl.hE<gt>>\n"
8439
8440 #. type: Plain text
8441 #: build/C/man2/open_by_handle_at.2:39
8442 #, no-wrap
8443 msgid ""
8444 "B<int name_to_handle_at(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
8445 "B<                      struct file_handle *>I<handle>B<,>\n"
8446 "B<                      int *>I<mount_id>B<, int >I<flags>B<);>\n"
8447 msgstr ""
8448 "B<int name_to_handle_at(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
8449 "B<                      struct file_handle *>I<handle>B<,>\n"
8450 "B<                      int *>I<mount_id>B<, int >I<flags>B<);>\n"
8451
8452 #. type: Plain text
8453 #: build/C/man2/open_by_handle_at.2:42
8454 #, no-wrap
8455 msgid ""
8456 "B<int open_by_handle_at(int >I<mount_fd>B<, struct file_handle *>I<handle>B<,>\n"
8457 "B<                      int >I<flags>B<);>\n"
8458 msgstr ""
8459 "B<int open_by_handle_at(int >I<mount_fd>B<, struct file_handle *>I<handle>B<,>\n"
8460 "B<                      int >I<flags>B<);>\n"
8461
8462 #. type: Plain text
8463 #: build/C/man2/open_by_handle_at.2:59
8464 msgid ""
8465 "The B<name_to_handle_at>()  and B<open_by_handle_at>()  system calls split "
8466 "the functionality of B<openat>(2)  into two parts: B<name_to_handle_at>()  "
8467 "returns an opaque handle that corresponds to a specified file; "
8468 "B<open_by_handle_at>()  opens the file corresponding to a handle returned by "
8469 "a previous call to B<name_to_handle_at>()  and returns an open file "
8470 "descriptor."
8471 msgstr ""
8472
8473 #. type: SS
8474 #: build/C/man2/open_by_handle_at.2:59
8475 #, no-wrap
8476 msgid "name_to_handle_at()"
8477 msgstr ""
8478
8479 #. type: Plain text
8480 #: build/C/man2/open_by_handle_at.2:71
8481 msgid ""
8482 "The B<name_to_handle_at>()  system call returns a file handle and a mount ID "
8483 "corresponding to the file specified by the I<dirfd> and I<pathname> "
8484 "arguments.  The file handle is returned via the argument I<handle>, which is "
8485 "a pointer to a structure of the following form:"
8486 msgstr ""
8487
8488 #. type: Plain text
8489 #: build/C/man2/open_by_handle_at.2:80
8490 #, no-wrap
8491 msgid ""
8492 "struct file_handle {\n"
8493 "    unsigned int  handle_bytes;   /* Size of f_handle [in, out] */\n"
8494 "    int           handle_type;    /* Handle type [out] */\n"
8495 "    unsigned char f_handle[0];    /* File identifier (sized by\n"
8496 "                                     caller) [out] */\n"
8497 "};\n"
8498 msgstr ""
8499
8500 #. type: Plain text
8501 #: build/C/man2/open_by_handle_at.2:99
8502 msgid ""
8503 "It is the caller's responsibility to allocate the structure with a size "
8504 "large enough to hold the handle returned in I<f_handle>.  Before the call, "
8505 "the I<handle_bytes> field should be initialized to contain the allocated "
8506 "size for I<f_handle>.  (The constant B<MAX_HANDLE_SZ>, defined in "
8507 "I<E<lt>fcntl.hE<gt>>, specifies the maximum possible size for a file "
8508 "handle.)  Upon successful return, the I<handle_bytes> field is updated to "
8509 "contain the number of bytes actually written to I<f_handle>."
8510 msgstr ""
8511
8512 #. type: Plain text
8513 #: build/C/man2/open_by_handle_at.2:112
8514 msgid ""
8515 "The caller can discover the required size for the I<file_handle> structure "
8516 "by making a call in which I<handle-E<gt>handle_bytes> is zero; in this case, "
8517 "the call fails with the error B<EOVERFLOW> and I<handle-E<gt>handle_bytes> "
8518 "is set to indicate the required size; the caller can then use this "
8519 "information to allocate a structure of the correct size (see EXAMPLE below)."
8520 msgstr ""
8521
8522 #. type: Plain text
8523 #: build/C/man2/open_by_handle_at.2:123
8524 msgid ""
8525 "Other than the use of the I<handle_bytes> field, the caller should treat the "
8526 "I<file_handle> structure as an opaque data type: the I<handle_type> and "
8527 "I<f_handle> fields are needed only by a subsequent call to "
8528 "B<open_by_handle_at>()."
8529 msgstr ""
8530
8531 #. type: Plain text
8532 #: build/C/man2/open_by_handle_at.2:131
8533 msgid ""
8534 "The I<flags> argument is a bit mask constructed by ORing together zero or "
8535 "more of B<AT_EMPTY_PATH> and B<AT_SYMLINK_FOLLOW>, described below."
8536 msgstr ""
8537
8538 #. type: Plain text
8539 #: build/C/man2/open_by_handle_at.2:138
8540 msgid ""
8541 "Together, the I<pathname> and I<dirfd> arguments identify the file for which "
8542 "a handle is to be obtained.  There are four distinct cases:"
8543 msgstr ""
8544
8545 #. type: Plain text
8546 #: build/C/man2/open_by_handle_at.2:146
8547 msgid ""
8548 "If I<pathname> is a nonempty string containing an absolute pathname, then a "
8549 "handle is returned for the file referred to by that pathname.  In this case, "
8550 "I<dirfd> is ignored."
8551 msgstr ""
8552
8553 #. type: Plain text
8554 #: build/C/man2/open_by_handle_at.2:157
8555 msgid ""
8556 "If I<pathname> is a nonempty string containing a relative pathname and "
8557 "I<dirfd> has the special value B<AT_FDCWD>, then I<pathname> is interpreted "
8558 "relative to the current working directory of the caller, and a handle is "
8559 "returned for the file to which it refers."
8560 msgstr ""
8561 "I<pathname> が相対パスが入った空でない文字列で、 I<dirfd> が特別な値 "
8562 "B<AT_FDCWD> の場合、 I<pathname> は呼び出し元のカレントワーキングディレクトリ"
8563 "に対する相対パスと解釈され、 そのファイルを参照するハンドルが返される。"
8564
8565 #. type: Plain text
8566 #: build/C/man2/open_by_handle_at.2:170
8567 msgid ""
8568 "If I<pathname> is a nonempty string containing a relative pathname and "
8569 "I<dirfd> is a file descriptor referring to a directory, then I<pathname> is "
8570 "interpreted relative to the directory referred to by I<dirfd>, and a handle "
8571 "is returned for the file to which it refers.  (See B<openat>(2)  for an "
8572 "explanation of why \"directory file descriptors\" are useful.)"
8573 msgstr ""
8574 "I<pathname> が相対パスが入った空でない文字列で、 I<dirfd> がディレクトリを参"
8575 "照するファイルディスクリプタの場合、 I<pathname> は I<dirfd> が参照するディレ"
8576 "クトリに対する相対パスと解釈され、 そのファイルを参照するハンドルが返される。"
8577 "(なぜ「ディレクトリファイルディスクリプタ」が役に立つのかについては "
8578 "B<openat>(2) を参照。)"
8579
8580 #. type: Plain text
8581 #: build/C/man2/open_by_handle_at.2:184
8582 msgid ""
8583 "If I<pathname> is an empty string and I<flags> specifies the value "
8584 "B<AT_EMPTY_PATH>, then I<dirfd> can be an open file descriptor referring to "
8585 "any type of file, or B<AT_FDCWD>, meaning the current working directory, and "
8586 "a handle is returned for the file to which it refers."
8587 msgstr ""
8588
8589 #. type: Plain text
8590 #: build/C/man2/open_by_handle_at.2:196
8591 msgid ""
8592 "The I<mount_id> argument returns an identifier for the filesystem mount that "
8593 "corresponds to I<pathname>.  This corresponds to the first field in one of "
8594 "the records in I</proc/self/mountinfo>.  Opening the pathname in the fifth "
8595 "field of that record yields a file descriptor for the mount point; that file "
8596 "descriptor can be used in a subsequent call to B<open_by_handle_at>()."
8597 msgstr ""
8598
8599 #. type: Plain text
8600 #: build/C/man2/open_by_handle_at.2:209
8601 msgid ""
8602 "By default, B<name_to_handle_at>()  does not dereference I<pathname> if it "
8603 "is a symbolic link, and thus returns a handle for the link itself.  If "
8604 "B<AT_SYMLINK_FOLLOW> is specified in I<flags>, I<pathname> is dereferenced "
8605 "if it is a symbolic link (so that the call returns a handle for the file "
8606 "referred to by the link)."
8607 msgstr ""
8608
8609 #. type: SS
8610 #: build/C/man2/open_by_handle_at.2:209
8611 #, no-wrap
8612 msgid "open_by_handle_at()"
8613 msgstr ""
8614
8615 #. type: Plain text
8616 #: build/C/man2/open_by_handle_at.2:216
8617 msgid ""
8618 "The B<open_by_handle_at>()  system call opens the file referred to by "
8619 "I<handle>, a file handle returned by a previous call to "
8620 "B<name_to_handle_at>()."
8621 msgstr ""
8622
8623 #. type: Plain text
8624 #: build/C/man2/open_by_handle_at.2:226
8625 msgid ""
8626 "The I<mount_fd> argument is a file descriptor for any object (file, "
8627 "directory, etc.)  in the mounted filesystem with respect to which I<handle> "
8628 "should be interpreted.  The special value B<AT_FDCWD> can be specified, "
8629 "meaning the current working directory of the caller."
8630 msgstr ""
8631
8632 #. type: Plain text
8633 #: build/C/man2/open_by_handle_at.2:239
8634 msgid ""
8635 "The I<flags> argument is as for B<open>(2).  If I<handle> refers to a "
8636 "symbolic link, the caller must specify the B<O_PATH> flag, and the symbolic "
8637 "link is not dereferenced; the B<O_NOFOLLOW> flag, if specified, is ignored."
8638 msgstr ""
8639
8640 #. type: Plain text
8641 #: build/C/man2/open_by_handle_at.2:245
8642 msgid ""
8643 "The caller must have the B<CAP_DAC_READ_SEARCH> capability to invoke "
8644 "B<open_by_handle_at>()."
8645 msgstr ""
8646
8647 #. type: Plain text
8648 #: build/C/man2/open_by_handle_at.2:252
8649 msgid ""
8650 "On success, B<name_to_handle_at>()  returns 0, and B<open_by_handle_at>()  "
8651 "returns a nonnegative file descriptor."
8652 msgstr ""
8653
8654 #. type: Plain text
8655 #: build/C/man2/open_by_handle_at.2:256
8656 msgid ""
8657 "In the event of an error, both system calls return -1 and set I<errno> to "
8658 "indicate the cause of the error."
8659 msgstr ""
8660
8661 #. type: Plain text
8662 #: build/C/man2/open_by_handle_at.2:263
8663 msgid ""
8664 "B<name_to_handle_at>()  and B<open_by_handle_at>()  can fail for the same "
8665 "errors as B<openat>(2).  In addition, they can fail with the errors noted "
8666 "below."
8667 msgstr ""
8668
8669 #. type: Plain text
8670 #: build/C/man2/open_by_handle_at.2:266
8671 msgid "B<name_to_handle_at>()  can fail with the following errors:"
8672 msgstr ""
8673
8674 #. type: Plain text
8675 #: build/C/man2/open_by_handle_at.2:273
8676 msgid ""
8677 "I<pathname>, I<mount_id>, or I<handle> points outside your accessible "
8678 "address space."
8679 msgstr ""
8680 "I<pathname>, I<mount_id>, I<handle> のどれかがアクセス可能なアドレス空間の外"
8681 "を指している。"
8682
8683 #. type: Plain text
8684 #: build/C/man2/open_by_handle_at.2:277
8685 msgid "I<flags> includes an invalid bit value."
8686 msgstr ""
8687
8688 #. type: Plain text
8689 #: build/C/man2/open_by_handle_at.2:282
8690 msgid "I<handle-E<gt>handle_bytes> is greater than B<MAX_HANDLE_SZ>."
8691 msgstr ""
8692
8693 #. type: Plain text
8694 #: build/C/man2/open_by_handle_at.2:289
8695 msgid ""
8696 "I<pathname> is an empty string, but B<AT_EMPTY_PATH> was not specified in "
8697 "I<flags>."
8698 msgstr ""
8699 "I<pathname> が空文字列だが、 I<flags> に B<AT_EMPTY_PATH> がされていなかっ"
8700 "た。"
8701
8702 #. type: Plain text
8703 #: build/C/man2/open_by_handle_at.2:301
8704 msgid ""
8705 "The file descriptor supplied in I<dirfd> does not refer to a directory, and "
8706 "it is not the case that both I<flags> includes B<AT_EMPTY_PATH> and "
8707 "I<pathname> is an empty string."
8708 msgstr ""
8709
8710 #. type: Plain text
8711 #: build/C/man2/open_by_handle_at.2:304
8712 msgid ""
8713 "The filesystem does not support decoding of a pathname to a file handle."
8714 msgstr ""
8715
8716 #. type: Plain text
8717 #: build/C/man2/open_by_handle_at.2:314
8718 msgid ""
8719 "The I<handle-E<gt>handle_bytes> value passed into the call was too small.  "
8720 "When this error occurs, I<handle-E<gt>handle_bytes> is updated to indicate "
8721 "the required size for the handle."
8722 msgstr ""
8723
8724 #. type: Plain text
8725 #: build/C/man2/open_by_handle_at.2:317
8726 msgid "B<open_by_handle_at>()  can fail with the following errors:"
8727 msgstr ""
8728
8729 #. type: Plain text
8730 #: build/C/man2/open_by_handle_at.2:321
8731 msgid "I<mount_fd> is not an open file descriptor."
8732 msgstr "I<mount_fd> がオープンされたファイルディスクリプタでない。"
8733
8734 #. type: Plain text
8735 #: build/C/man2/open_by_handle_at.2:325
8736 msgid "I<handle> points outside your accessible address space."
8737 msgstr "I<handle> がアクセス可能なアドレス空間の外を指している。"
8738
8739 #. type: Plain text
8740 #: build/C/man2/open_by_handle_at.2:331
8741 msgid ""
8742 "I<handle-E<gt>handle_bytes> is greater than B<MAX_HANDLE_SZ> or is equal to "
8743 "zero."
8744 msgstr ""
8745
8746 #. type: Plain text
8747 #: build/C/man2/open_by_handle_at.2:338
8748 msgid ""
8749 "I<handle> refers to a symbolic link, but B<O_PATH> was not specified in "
8750 "I<flags>."
8751 msgstr ""
8752 "I<handle> がシンボリックリンクを参照しているが、 I<flags> に B<O_PATH> がされ"
8753 "ていなかった。"
8754
8755 #. type: Plain text
8756 #: build/C/man2/open_by_handle_at.2:343
8757 msgid "The caller does not have the B<CAP_DAC_READ_SEARCH> capability."
8758 msgstr "呼び出し元が B<CAP_DAC_READ_SEARCH> ケーパビリティを持っていない。"
8759
8760 #. type: TP
8761 #: build/C/man2/open_by_handle_at.2:343
8762 #, no-wrap
8763 msgid "B<ESTALE>"
8764 msgstr "B<ESTALE>"
8765
8766 #. type: Plain text
8767 #: build/C/man2/open_by_handle_at.2:349
8768 msgid ""
8769 "The specified I<handle> is not valid.  This error will occur if, for "
8770 "example, the file has been deleted."
8771 msgstr ""
8772
8773 #. type: Plain text
8774 #: build/C/man2/open_by_handle_at.2:352
8775 msgid ""
8776 "These system calls first appeared in Linux 2.6.39.  Library support is "
8777 "provided in glibc since version 2.14."
8778 msgstr ""
8779 "これらのシステムコールは Linux 2.6.39 で初めて登場した。ライブラリによるサ"
8780 "ポートはバージョン 2.14 以降の glibc で提供されている。"
8781
8782 #. type: Plain text
8783 #: build/C/man2/open_by_handle_at.2:354
8784 msgid "These system calls are nonstandard Linux extensions."
8785 msgstr ""
8786
8787 #. type: Plain text
8788 #: build/C/man2/open_by_handle_at.2:359
8789 msgid ""
8790 "FreeBSD has a broadly similar pair of system calls in the form of "
8791 "B<getfh>()  and B<openfh>()."
8792 msgstr ""
8793
8794 #. type: Plain text
8795 #: build/C/man2/open_by_handle_at.2:364
8796 msgid ""
8797 "A file handle can be generated in one process using B<name_to_handle_at>()  "
8798 "and later used in a different process that calls B<open_by_handle_at>()."
8799 msgstr ""
8800
8801 #. type: Plain text
8802 #: build/C/man2/open_by_handle_at.2:370
8803 msgid ""
8804 "Some filesystem don't support the translation of pathnames to file handles, "
8805 "for example, I</proc>, I</sys>, and various network filesystems."
8806 msgstr ""
8807
8808 #. type: Plain text
8809 #: build/C/man2/open_by_handle_at.2:377
8810 msgid ""
8811 "A file handle may become invalid (\"stale\") if a file is deleted, or for "
8812 "other filesystem-specific reasons.  Invalid handles are notified by an "
8813 "B<ESTALE> error from B<open_by_handle_at>()."
8814 msgstr ""
8815
8816 #.  https://lwn.net/Articles/375888/
8817 #.      "Open by handle" - Jonathan Corbet, 2010-02-23
8818 #. type: Plain text
8819 #: build/C/man2/open_by_handle_at.2:387
8820 msgid ""
8821 "These system calls are designed for use by user-space file servers.  For "
8822 "example, a user-space NFS server might generate a file handle and pass it to "
8823 "an NFS client.  Later, when the client wants to open the file, it could pass "
8824 "the handle back to the server.  This sort of functionality allows a user-"
8825 "space file server to operate in a stateless fashion with respect to the "
8826 "files it serves."
8827 msgstr ""
8828
8829 #.  commit bcda76524cd1fa32af748536f27f674a13e56700
8830 #. type: Plain text
8831 #: build/C/man2/open_by_handle_at.2:409
8832 msgid ""
8833 "If I<pathname> refers to a symbolic link and I<flags> does not specify "
8834 "B<AT_SYMLINK_FOLLOW>, then B<name_to_handle_at>()  returns a handle for the "
8835 "link (rather than the file to which it refers).  The process receiving the "
8836 "handle can later perform operations on the symbolic link by converting the "
8837 "handle to a file descriptor using B<open_by_handle_at>()  with the B<O_PATH> "
8838 "flag, and then passing the file descriptor as the I<dirfd> argument in "
8839 "system calls such as B<readlinkat>(2)  and B<fchownat>(2)."
8840 msgstr ""
8841
8842 #. type: SS
8843 #: build/C/man2/open_by_handle_at.2:409
8844 #, no-wrap
8845 msgid "Obtaining a persistent filesystem ID"
8846 msgstr ""
8847
8848 #. type: Plain text
8849 #: build/C/man2/open_by_handle_at.2:423
8850 msgid ""
8851 "The mount IDs in I</proc/self/mountinfo> can be reused as filesystems are "
8852 "unmounted and mounted.  Therefore, the mount ID returned by "
8853 "B<name_to_handle_at>()  (in I<*mount_id>)  should not be treated as a "
8854 "persistent identifier for the corresponding mounted filesystem.  However, an "
8855 "application can use the information in the I<mountinfo> record that "
8856 "corresponds to the mount ID to derive a persistent identifier."
8857 msgstr ""
8858
8859 #.  e.g., http://stackoverflow.com/questions/6748429/using-libblkid-to-find-uuid-of-a-partition
8860 #. type: Plain text
8861 #: build/C/man2/open_by_handle_at.2:439
8862 msgid ""
8863 "For example, one can use the device name in the fifth field of the "
8864 "I<mountinfo> record to search for the corresponding device UUID via the "
8865 "symbolic links in I</dev/disks/by-uuid>.  (A more comfortable way of "
8866 "obtaining the UUID is to use the B<libblkid>(3)  library.)  That process can "
8867 "then be reversed, using the UUID to look up the device name, and then "
8868 "obtaining the corresponding mount point, in order to produce the I<mount_fd> "
8869 "argument used by B<open_by_handle_at>()."
8870 msgstr ""
8871
8872 #. type: Plain text
8873 #: build/C/man2/open_by_handle_at.2:451
8874 msgid ""
8875 "The two programs below demonstrate the use of B<name_to_handle_at>()  and "
8876 "B<open_by_handle_at>().  The first program (I<t_name_to_handle_at.c>)  uses "
8877 "B<name_to_handle_at>()  to obtain the file handle and mount ID for the file "
8878 "specified in its command-line argument; the handle and mount ID are written "
8879 "to standard output."
8880 msgstr ""
8881
8882 #. type: Plain text
8883 #: build/C/man2/open_by_handle_at.2:471
8884 msgid ""
8885 "The second program (I<t_open_by_handle_at.c>)  reads a mount ID and file "
8886 "handle from standard input.  The program then employs "
8887 "B<open_by_handle_at>()  to open the file using that handle.  If an optional "
8888 "command-line argument is supplied, then the I<mount_fd> argument for "
8889 "B<open_by_handle_at>()  is obtained by opening the directory named in that "
8890 "argument.  Otherwise, I<mount_fd> is obtained by scanning I</proc/self/"
8891 "mountinfo> to find a record whose mount ID matches the mount ID read from "
8892 "standard input, and the mount directory specified in that record is opened.  "
8893 "(These programs do not deal with the fact that mount IDs are not persistent.)"
8894 msgstr ""
8895
8896 #. type: Plain text
8897 #: build/C/man2/open_by_handle_at.2:473
8898 msgid "The following shell session demonstrates the use of these two programs:"
8899 msgstr "以下のシェルセッションは、これら 2 つのプログラムの使用例である。"
8900
8901 #. type: Plain text
8902 #: build/C/man2/open_by_handle_at.2:483
8903 #, no-wrap
8904 msgid ""
8905 "$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
8906 "$ B<./t_name_to_handle_at cecilia.txt E<gt> fh>\n"
8907 "$ B<./t_open_by_handle_at E<lt> fh>\n"
8908 "open_by_handle_at: Operation not permitted\n"
8909 "$ B<sudo ./t_open_by_handle_at E<lt> fh>      # Need CAP_SYS_ADMIN\n"
8910 "Read 31 bytes\n"
8911 "$ B<rm cecilia.txt>\n"
8912 msgstr ""
8913 "$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
8914 "$ B<./t_name_to_handle_at cecilia.txt E<gt> fh>\n"
8915 "$ B<./t_open_by_handle_at E<lt> fh>\n"
8916 "open_by_handle_at: Operation not permitted\n"
8917 "$ B<sudo ./t_open_by_handle_at E<lt> fh>      # Need CAP_SYS_ADMIN\n"
8918 "Read 31 bytes\n"
8919 "$ B<rm cecilia.txt>\n"
8920
8921 #.  Christoph Hellwig: That's why the file handles contain a generation
8922 #.  counter that gets incremented in this case.
8923 #. type: Plain text
8924 #: build/C/man2/open_by_handle_at.2:494
8925 msgid ""
8926 "Now we delete and (quickly) re-create the file so that it has the same "
8927 "content and (by chance) the same inode.  Nevertheless, "
8928 "B<open_by_handle_at>()  recognizes that the original file referred to by the "
8929 "file handle no longer exists."
8930 msgstr ""
8931
8932 #. type: Plain text
8933 #: build/C/man2/open_by_handle_at.2:505
8934 #, no-wrap
8935 msgid ""
8936 "$ B<stat --printf=\"%i\\en\" cecilia.txt>     # Display inode number\n"
8937 "4072121\n"
8938 "$ B<rm cecilia.txt>\n"
8939 "$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
8940 "$ B<stat --printf=\"%i\\en\" cecilia.txt>     # Check inode number\n"
8941 "4072121\n"
8942 "$ B<sudo ./t_open_by_handle_at E<lt> fh>\n"
8943 "open_by_handle_at: Stale NFS file handle\n"
8944 msgstr ""
8945 "$ B<stat --printf=\"%i\\en\" cecilia.txt>     # Display inode number\n"
8946 "4072121\n"
8947 "$ B<rm cecilia.txt>\n"
8948 "$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
8949 "$ B<stat --printf=\"%i\\en\" cecilia.txt>     # Check inode number\n"
8950 "4072121\n"
8951 "$ B<sudo ./t_open_by_handle_at E<lt> fh>\n"
8952 "open_by_handle_at: Stale NFS file handle\n"
8953
8954 #. type: SS
8955 #: build/C/man2/open_by_handle_at.2:507
8956 #, no-wrap
8957 msgid "Program source: t_name_to_handle_at.c"
8958 msgstr ""
8959
8960 #. type: Plain text
8961 #: build/C/man2/open_by_handle_at.2:519
8962 #, no-wrap
8963 msgid ""
8964 "#define _GNU_SOURCE\n"
8965 "#include E<lt>sys/types.hE<gt>\n"
8966 "#include E<lt>sys/stat.hE<gt>\n"
8967 "#include E<lt>fcntl.hE<gt>\n"
8968 "#include E<lt>stdio.hE<gt>\n"
8969 "#include E<lt>stdlib.hE<gt>\n"
8970 "#include E<lt>unistd.hE<gt>\n"
8971 "#include E<lt>errno.hE<gt>\n"
8972 "#include E<lt>string.hE<gt>\n"
8973 msgstr ""
8974 "#define _GNU_SOURCE\n"
8975 "#include E<lt>sys/types.hE<gt>\n"
8976 "#include E<lt>sys/stat.hE<gt>\n"
8977 "#include E<lt>fcntl.hE<gt>\n"
8978 "#include E<lt>stdio.hE<gt>\n"
8979 "#include E<lt>stdlib.hE<gt>\n"
8980 "#include E<lt>unistd.hE<gt>\n"
8981 "#include E<lt>errno.hE<gt>\n"
8982 "#include E<lt>string.hE<gt>\n"
8983
8984 #. type: Plain text
8985 #: build/C/man2/open_by_handle_at.2:522 build/C/man2/open_by_handle_at.2:595
8986 #, no-wrap
8987 msgid ""
8988 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
8989 "                        } while (0)\n"
8990 msgstr ""
8991 "#define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \\e\n"
8992 "                        } while (0)\n"
8993
8994 #. type: Plain text
8995 #: build/C/man2/open_by_handle_at.2:529
8996 #, no-wrap
8997 msgid ""
8998 "int\n"
8999 "main(int argc, char *argv[])\n"
9000 "{\n"
9001 "    struct file_handle *fhp;\n"
9002 "    int mount_id, fhsize, flags, dirfd, j;\n"
9003 "    char *pathname;\n"
9004 msgstr ""
9005 "int\n"
9006 "main(int argc, char *argv[])\n"
9007 "{\n"
9008 "    struct file_handle *fhp;\n"
9009 "    int mount_id, fhsize, flags, dirfd, j;\n"
9010 "    char *pathname;\n"
9011
9012 #. type: Plain text
9013 #: build/C/man2/open_by_handle_at.2:534
9014 #, no-wrap
9015 msgid ""
9016 "    if (argc != 2) {\n"
9017 "        fprintf(stderr, \"Usage: %s pathname\\en\", argv[0]);\n"
9018 "        exit(EXIT_FAILURE);\n"
9019 "    }\n"
9020 msgstr ""
9021 "    if (argc != 2) {\n"
9022 "        fprintf(stderr, \"Usage: %s pathname\\en\", argv[0]);\n"
9023 "        exit(EXIT_FAILURE);\n"
9024 "    }\n"
9025
9026 #. type: Plain text
9027 #: build/C/man2/open_by_handle_at.2:536
9028 #, no-wrap
9029 msgid "    pathname = argv[1];\n"
9030 msgstr "    pathname = argv[1];\n"
9031
9032 #. type: Plain text
9033 #: build/C/man2/open_by_handle_at.2:538
9034 #, no-wrap
9035 msgid "    /* Allocate file_handle structure */\n"
9036 msgstr "    /* Allocate file_handle structure */\n"
9037
9038 #. type: Plain text
9039 #: build/C/man2/open_by_handle_at.2:543
9040 #, no-wrap
9041 msgid ""
9042 "    fhsize = sizeof(*fhp);\n"
9043 "    fhp = malloc(fhsize);\n"
9044 "    if (fhp == NULL)\n"
9045 "        errExit(\"malloc\");\n"
9046 msgstr ""
9047 "    fhsize = sizeof(*fhp);\n"
9048 "    fhp = malloc(fhsize);\n"
9049 "    if (fhp == NULL)\n"
9050 "        errExit(\"malloc\");\n"
9051
9052 #. type: Plain text
9053 #: build/C/man2/open_by_handle_at.2:546
9054 #, no-wrap
9055 msgid ""
9056 "    /* Make an initial call to name_to_handle_at() to discover\n"
9057 "       the size required for file handle */\n"
9058 msgstr ""
9059 "    /* Make an initial call to name_to_handle_at() to discover\n"
9060 "       the size required for file handle */\n"
9061
9062 #. type: Plain text
9063 #: build/C/man2/open_by_handle_at.2:555
9064 #, no-wrap
9065 msgid ""
9066 "    dirfd = AT_FDCWD;           /* For name_to_handle_at() calls */\n"
9067 "    flags = 0;                  /* For name_to_handle_at() calls */\n"
9068 "    fhp-E<gt>handle_bytes = 0;\n"
9069 "    if (name_to_handle_at(dirfd, pathname, fhp,\n"
9070 "                &mount_id, flags) != -1 || errno != EOVERFLOW) {\n"
9071 "        fprintf(stderr, \"Unexpected result from name_to_handle_at()\\en\");\n"
9072 "        exit(EXIT_FAILURE);\n"
9073 "    }\n"
9074 msgstr ""
9075 "    dirfd = AT_FDCWD;           /* For name_to_handle_at() calls */\n"
9076 "    flags = 0;                  /* For name_to_handle_at() calls */\n"
9077 "    fhp-E<gt>handle_bytes = 0;\n"
9078 "    if (name_to_handle_at(dirfd, pathname, fhp,\n"
9079 "                &mount_id, flags) != -1 || errno != EOVERFLOW) {\n"
9080 "        fprintf(stderr, \"Unexpected result from name_to_handle_at()\\en\");\n"
9081 "        exit(EXIT_FAILURE);\n"
9082 "    }\n"
9083
9084 #. type: Plain text
9085 #: build/C/man2/open_by_handle_at.2:557
9086 #, no-wrap
9087 msgid "    /* Reallocate file_handle structure with correct size */\n"
9088 msgstr "    /* Reallocate file_handle structure with correct size */\n"
9089
9090 #. type: Plain text
9091 #: build/C/man2/open_by_handle_at.2:562
9092 #, no-wrap
9093 msgid ""
9094 "    fhsize = sizeof(struct file_handle) + fhp-E<gt>handle_bytes;\n"
9095 "    fhp = realloc(fhp, fhsize);         /* Copies fhp-E<gt>handle_bytes */\n"
9096 "    if (fhp == NULL)\n"
9097 "        errExit(\"realloc\");\n"
9098 msgstr ""
9099 "    fhsize = sizeof(struct file_handle) + fhp-E<gt>handle_bytes;\n"
9100 "    fhp = realloc(fhp, fhsize);         /* Copies fhp-E<gt>handle_bytes */\n"
9101 "    if (fhp == NULL)\n"
9102 "        errExit(\"realloc\");\n"
9103
9104 #. type: Plain text
9105 #: build/C/man2/open_by_handle_at.2:564
9106 #, no-wrap
9107 msgid "    /* Get file handle from pathname supplied on command line */\n"
9108 msgstr "    /* Get file handle from pathname supplied on command line */\n"
9109
9110 #. type: Plain text
9111 #: build/C/man2/open_by_handle_at.2:567
9112 #, no-wrap
9113 msgid ""
9114 "    if (name_to_handle_at(dirfd, pathname, fhp, &mount_id, flags) == -1)\n"
9115 "        errExit(\"name_to_handle_at\");\n"
9116 msgstr ""
9117 "    if (name_to_handle_at(dirfd, pathname, fhp, &mount_id, flags) == -1)\n"
9118 "        errExit(\"name_to_handle_at\");\n"
9119
9120 #. type: Plain text
9121 #: build/C/man2/open_by_handle_at.2:570
9122 #, no-wrap
9123 msgid ""
9124 "    /* Write mount ID, file handle size, and file handle to stdout,\n"
9125 "       for later reuse by t_open_by_handle_at.c */\n"
9126 msgstr ""
9127 "    /* Write mount ID, file handle size, and file handle to stdout,\n"
9128 "       for later reuse by t_open_by_handle_at.c */\n"
9129
9130 #. type: Plain text
9131 #: build/C/man2/open_by_handle_at.2:576
9132 #, no-wrap
9133 msgid ""
9134 "    printf(\"%d\\en\", mount_id);\n"
9135 "    printf(\"%d %d   \", fhp-E<gt>handle_bytes, fhp-E<gt>handle_type);\n"
9136 "    for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
9137 "        printf(\" %02x\", fhp-E<gt>f_handle[j]);\n"
9138 "    printf(\"\\en\");\n"
9139 msgstr ""
9140 "    printf(\"%d\\en\", mount_id);\n"
9141 "    printf(\"%d %d   \", fhp-E<gt>handle_bytes, fhp-E<gt>handle_type);\n"
9142 "    for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
9143 "        printf(\" %02x\", fhp-E<gt>f_handle[j]);\n"
9144 "    printf(\"\\en\");\n"
9145
9146 #. type: SS
9147 #: build/C/man2/open_by_handle_at.2:580
9148 #, no-wrap
9149 msgid "Program source: t_open_by_handle_at.c"
9150 msgstr ""
9151
9152 #. type: Plain text
9153 #: build/C/man2/open_by_handle_at.2:592
9154 #, no-wrap
9155 msgid ""
9156 "#define _GNU_SOURCE\n"
9157 "#include E<lt>sys/types.hE<gt>\n"
9158 "#include E<lt>sys/stat.hE<gt>\n"
9159 "#include E<lt>fcntl.hE<gt>\n"
9160 "#include E<lt>limits.hE<gt>\n"
9161 "#include E<lt>stdio.hE<gt>\n"
9162 "#include E<lt>stdlib.hE<gt>\n"
9163 "#include E<lt>unistd.hE<gt>\n"
9164 "#include E<lt>string.hE<gt>\n"
9165 msgstr ""
9166 "#define _GNU_SOURCE\n"
9167 "#include E<lt>sys/types.hE<gt>\n"
9168 "#include E<lt>sys/stat.hE<gt>\n"
9169 "#include E<lt>fcntl.hE<gt>\n"
9170 "#include E<lt>limits.hE<gt>\n"
9171 "#include E<lt>stdio.hE<gt>\n"
9172 "#include E<lt>stdlib.hE<gt>\n"
9173 "#include E<lt>unistd.hE<gt>\n"
9174 "#include E<lt>string.hE<gt>\n"
9175
9176 #. type: Plain text
9177 #: build/C/man2/open_by_handle_at.2:601
9178 #, no-wrap
9179 msgid ""
9180 "/* Scan /proc/self/mountinfo to find the line whose mount ID matches\n"
9181 "   \\(aqmount_id\\(aq. (An easier way to do this is to install and use the\n"
9182 "   \\(aqlibmount\\(aq library provided by the \\(aqutil-linux\\(aq project.)\n"
9183 "   Open the corresponding mount path and return the resulting file\n"
9184 "   descriptor. */\n"
9185 msgstr ""
9186 "/* Scan /proc/self/mountinfo to find the line whose mount ID matches\n"
9187 "   \\(aqmount_id\\(aq. (An easier way to do this is to install and use the\n"
9188 "   \\(aqlibmount\\(aq library provided by the \\(aqutil-linux\\(aq project.)\n"
9189 "   Open the corresponding mount path and return the resulting file\n"
9190 "   descriptor. */\n"
9191
9192 #. type: Plain text
9193 #: build/C/man2/open_by_handle_at.2:611
9194 #, no-wrap
9195 msgid ""
9196 "static int\n"
9197 "open_mount_path_by_id(int mount_id)\n"
9198 "{\n"
9199 "    char *linep;\n"
9200 "    size_t lsize;\n"
9201 "    char mount_path[PATH_MAX];\n"
9202 "    int mi_mount_id, found;\n"
9203 "    ssize_t nread;\n"
9204 "    FILE *fp;\n"
9205 msgstr ""
9206 "static int\n"
9207 "open_mount_path_by_id(int mount_id)\n"
9208 "{\n"
9209 "    char *linep;\n"
9210 "    size_t lsize;\n"
9211 "    char mount_path[PATH_MAX];\n"
9212 "    int mi_mount_id, found;\n"
9213 "    ssize_t nread;\n"
9214 "    FILE *fp;\n"
9215
9216 #. type: Plain text
9217 #: build/C/man2/open_by_handle_at.2:615
9218 #, no-wrap
9219 msgid ""
9220 "    fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
9221 "    if (fp == NULL)\n"
9222 "        errExit(\"fopen\");\n"
9223 msgstr ""
9224 "    fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
9225 "    if (fp == NULL)\n"
9226 "        errExit(\"fopen\");\n"
9227
9228 #. type: Plain text
9229 #: build/C/man2/open_by_handle_at.2:622
9230 #, no-wrap
9231 msgid ""
9232 "    found = 0;\n"
9233 "    linep = NULL;\n"
9234 "    while (!found) {\n"
9235 "        nread = getline(&linep, &lsize, fp);\n"
9236 "        if (nread == -1)\n"
9237 "            break;\n"
9238 msgstr ""
9239 "    found = 0;\n"
9240 "    linep = NULL;\n"
9241 "    while (!found) {\n"
9242 "        nread = getline(&linep, &lsize, fp);\n"
9243 "        if (nread == -1)\n"
9244 "            break;\n"
9245
9246 #. type: Plain text
9247 #: build/C/man2/open_by_handle_at.2:629
9248 #, no-wrap
9249 msgid ""
9250 "        nread = sscanf(linep, \"%d %*d %*s %*s %s\",\n"
9251 "                       &mi_mount_id, mount_path);\n"
9252 "        if (nread != 2) {\n"
9253 "            fprintf(stderr, \"Bad sscanf()\\en\");\n"
9254 "            exit(EXIT_FAILURE);\n"
9255 "        }\n"
9256 msgstr ""
9257 "        nread = sscanf(linep, \"%d %*d %*s %*s %s\",\n"
9258 "                       &mi_mount_id, mount_path);\n"
9259 "        if (nread != 2) {\n"
9260 "            fprintf(stderr, \"Bad sscanf()\\en\");\n"
9261 "            exit(EXIT_FAILURE);\n"
9262 "        }\n"
9263
9264 #. type: Plain text
9265 #: build/C/man2/open_by_handle_at.2:634
9266 #, no-wrap
9267 msgid ""
9268 "        if (mi_mount_id == mount_id)\n"
9269 "            found = 1;\n"
9270 "    }\n"
9271 "    free(linep);\n"
9272 msgstr ""
9273 "        if (mi_mount_id == mount_id)\n"
9274 "            found = 1;\n"
9275 "    }\n"
9276 "    free(linep);\n"
9277
9278 #. type: Plain text
9279 #: build/C/man2/open_by_handle_at.2:636
9280 #, no-wrap
9281 msgid "    fclose(fp);\n"
9282 msgstr "    fclose(fp);\n"
9283
9284 #. type: Plain text
9285 #: build/C/man2/open_by_handle_at.2:641
9286 #, no-wrap
9287 msgid ""
9288 "    if (!found) {\n"
9289 "        fprintf(stderr, \"Could not find mount point\\en\");\n"
9290 "        exit(EXIT_FAILURE);\n"
9291 "    }\n"
9292 msgstr ""
9293 "    if (!found) {\n"
9294 "        fprintf(stderr, \"Could not find mount point\\en\");\n"
9295 "        exit(EXIT_FAILURE);\n"
9296 "    }\n"
9297
9298 #. type: Plain text
9299 #: build/C/man2/open_by_handle_at.2:644
9300 #, no-wrap
9301 msgid ""
9302 "    return open(mount_path, O_RDONLY);\n"
9303 "}\n"
9304 msgstr ""
9305 "    return open(mount_path, O_RDONLY);\n"
9306 "}\n"
9307
9308 #. type: Plain text
9309 #: build/C/man2/open_by_handle_at.2:655
9310 #, no-wrap
9311 msgid ""
9312 "int\n"
9313 "main(int argc, char *argv[])\n"
9314 "{\n"
9315 "    struct file_handle *fhp;\n"
9316 "    int mount_id, fd, mount_fd, handle_bytes, j;\n"
9317 "    ssize_t nread;\n"
9318 "    char buf[1000];\n"
9319 "#define LINE_SIZE 100\n"
9320 "    char line1[LINE_SIZE], line2[LINE_SIZE];\n"
9321 "    char *nextp;\n"
9322 msgstr ""
9323 "int\n"
9324 "main(int argc, char *argv[])\n"
9325 "{\n"
9326 "    struct file_handle *fhp;\n"
9327 "    int mount_id, fd, mount_fd, handle_bytes, j;\n"
9328 "    ssize_t nread;\n"
9329 "    char buf[1000];\n"
9330 "#define LINE_SIZE 100\n"
9331 "    char line1[LINE_SIZE], line2[LINE_SIZE];\n"
9332 "    char *nextp;\n"
9333
9334 #. type: Plain text
9335 #: build/C/man2/open_by_handle_at.2:660
9336 #, no-wrap
9337 msgid ""
9338 "    if ((argc E<gt> 1 && strcmp(argv[1], \"--help\") == 0) || argc E<gt> 2) {\n"
9339 "        fprintf(stderr, \"Usage: %s [mount-path]\\en\", argv[0]);\n"
9340 "        exit(EXIT_FAILURE);\n"
9341 "    }\n"
9342 msgstr ""
9343 "    if ((argc E<gt> 1 && strcmp(argv[1], \"--help\") == 0) || argc E<gt> 2) {\n"
9344 "        fprintf(stderr, \"Usage: %s [mount-path]\\en\", argv[0]);\n"
9345 "        exit(EXIT_FAILURE);\n"
9346 "    }\n"
9347
9348 #. type: Plain text
9349 #: build/C/man2/open_by_handle_at.2:662
9350 #, no-wrap
9351 msgid "    /* Standard input contains mount ID and file handle information:\n"
9352 msgstr "    /* Standard input contains mount ID and file handle information:\n"
9353
9354 #. type: Plain text
9355 #: build/C/man2/open_by_handle_at.2:666
9356 #, no-wrap
9357 msgid ""
9358 "         Line 1: E<lt>mount_idE<gt>\n"
9359 "         Line 2: E<lt>handle_bytesE<gt> E<lt>handle_typeE<gt>   E<lt>bytes of handle in hexE<gt>\n"
9360 "    */\n"
9361 msgstr ""
9362 "         Line 1: E<lt>mount_idE<gt>\n"
9363 "         Line 2: E<lt>handle_bytesE<gt> E<lt>handle_typeE<gt>   E<lt>bytes of handle in hexE<gt>\n"
9364 "    */\n"
9365
9366 #. type: Plain text
9367 #: build/C/man2/open_by_handle_at.2:672
9368 #, no-wrap
9369 msgid ""
9370 "    if ((fgets(line1, sizeof(line1), stdin) == NULL) ||\n"
9371 "           (fgets(line2, sizeof(line2), stdin) == NULL)) {\n"
9372 "        fprintf(stderr, \"Missing mount_id / file handle\\en\");\n"
9373 "        exit(EXIT_FAILURE);\n"
9374 "    }\n"
9375 msgstr ""
9376 "    if ((fgets(line1, sizeof(line1), stdin) == NULL) ||\n"
9377 "           (fgets(line2, sizeof(line2), stdin) == NULL)) {\n"
9378 "        fprintf(stderr, \"Missing mount_id / file handle\\en\");\n"
9379 "        exit(EXIT_FAILURE);\n"
9380 "    }\n"
9381
9382 #. type: Plain text
9383 #: build/C/man2/open_by_handle_at.2:674
9384 #, no-wrap
9385 msgid "    mount_id = atoi(line1);\n"
9386 msgstr "    mount_id = atoi(line1);\n"
9387
9388 #. type: Plain text
9389 #: build/C/man2/open_by_handle_at.2:676
9390 #, no-wrap
9391 msgid "    handle_bytes = strtoul(line2, &nextp, 0);\n"
9392 msgstr "    handle_bytes = strtoul(line2, &nextp, 0);\n"
9393
9394 #. type: Plain text
9395 #: build/C/man2/open_by_handle_at.2:678
9396 #, no-wrap
9397 msgid "    /* Given handle_bytes, we can now allocate file_handle structure */\n"
9398 msgstr "    /* Given handle_bytes, we can now allocate file_handle structure */\n"
9399
9400 #. type: Plain text
9401 #: build/C/man2/open_by_handle_at.2:682
9402 #, no-wrap
9403 msgid ""
9404 "    fhp = malloc(sizeof(struct file_handle) + handle_bytes);\n"
9405 "    if (fhp == NULL)\n"
9406 "        errExit(\"malloc\");\n"
9407 msgstr ""
9408 "    fhp = malloc(sizeof(struct file_handle) + handle_bytes);\n"
9409 "    if (fhp == NULL)\n"
9410 "        errExit(\"malloc\");\n"
9411
9412 #. type: Plain text
9413 #: build/C/man2/open_by_handle_at.2:684
9414 #, no-wrap
9415 msgid "    fhp-E<gt>handle_bytes = handle_bytes;\n"
9416 msgstr "    fhp-E<gt>handle_bytes = handle_bytes;\n"
9417
9418 #. type: Plain text
9419 #: build/C/man2/open_by_handle_at.2:686
9420 #, no-wrap
9421 msgid "    fhp-E<gt>handle_type = strtoul(nextp, &nextp, 0);\n"
9422 msgstr "    fhp-E<gt>handle_type = strtoul(nextp, &nextp, 0);\n"
9423
9424 #. type: Plain text
9425 #: build/C/man2/open_by_handle_at.2:689
9426 #, no-wrap
9427 msgid ""
9428 "    for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
9429 "        fhp-E<gt>f_handle[j] = strtoul(nextp, &nextp, 16);\n"
9430 msgstr ""
9431 "    for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
9432 "        fhp-E<gt>f_handle[j] = strtoul(nextp, &nextp, 16);\n"
9433
9434 #. type: Plain text
9435 #: build/C/man2/open_by_handle_at.2:694
9436 #, no-wrap
9437 msgid ""
9438 "    /* Obtain file descriptor for mount point, either by opening\n"
9439 "       the pathname specified on the command line, or by scanning\n"
9440 "       /proc/self/mounts to find a mount that matches the \\(aqmount_id\\(aq\n"
9441 "       that we received from stdin. */\n"
9442 msgstr ""
9443 "    /* Obtain file descriptor for mount point, either by opening\n"
9444 "       the pathname specified on the command line, or by scanning\n"
9445 "       /proc/self/mounts to find a mount that matches the \\(aqmount_id\\(aq\n"
9446 "       that we received from stdin. */\n"
9447
9448 #. type: Plain text
9449 #: build/C/man2/open_by_handle_at.2:699
9450 #, no-wrap
9451 msgid ""
9452 "    if (argc E<gt> 1)\n"
9453 "        mount_fd = open(argv[1], O_RDONLY);\n"
9454 "    else\n"
9455 "        mount_fd = open_mount_path_by_id(mount_id);\n"
9456 msgstr ""
9457 "    if (argc E<gt> 1)\n"
9458 "        mount_fd = open(argv[1], O_RDONLY);\n"
9459 "    else\n"
9460 "        mount_fd = open_mount_path_by_id(mount_id);\n"
9461
9462 #. type: Plain text
9463 #: build/C/man2/open_by_handle_at.2:702
9464 #, no-wrap
9465 msgid ""
9466 "    if (mount_fd == -1)\n"
9467 "        errExit(\"opening mount fd\");\n"
9468 msgstr ""
9469 "    if (mount_fd == -1)\n"
9470 "        errExit(\"opening mount fd\");\n"
9471
9472 #. type: Plain text
9473 #: build/C/man2/open_by_handle_at.2:704
9474 #, no-wrap
9475 msgid "    /* Open file using handle and mount point */\n"
9476 msgstr "    /* Open file using handle and mount point */\n"
9477
9478 #. type: Plain text
9479 #: build/C/man2/open_by_handle_at.2:708
9480 #, no-wrap
9481 msgid ""
9482 "    fd = open_by_handle_at(mount_fd, fhp, O_RDONLY);\n"
9483 "    if (fd == -1)\n"
9484 "        errExit(\"open_by_handle_at\");\n"
9485 msgstr ""
9486 "    fd = open_by_handle_at(mount_fd, fhp, O_RDONLY);\n"
9487 "    if (fd == -1)\n"
9488 "        errExit(\"open_by_handle_at\");\n"
9489
9490 #. type: Plain text
9491 #: build/C/man2/open_by_handle_at.2:710
9492 #, no-wrap
9493 msgid "    /* Try reading a few bytes from the file */\n"
9494 msgstr "    /* Try reading a few bytes from the file */\n"
9495
9496 #. type: Plain text
9497 #: build/C/man2/open_by_handle_at.2:714
9498 #, no-wrap
9499 msgid ""
9500 "    nread = read(fd, buf, sizeof(buf));\n"
9501 "    if (nread == -1)\n"
9502 "        errExit(\"read\");\n"
9503 msgstr ""
9504 "    nread = read(fd, buf, sizeof(buf));\n"
9505 "    if (nread == -1)\n"
9506 "        errExit(\"read\");\n"
9507
9508 #. type: Plain text
9509 #: build/C/man2/open_by_handle_at.2:716
9510 #, no-wrap
9511 msgid "    printf(\"Read %zd bytes\\en\", nread);\n"
9512 msgstr "    printf(\"Read %zd bytes\\en\", nread);\n"
9513
9514 #. type: Plain text
9515 #: build/C/man2/open_by_handle_at.2:726
9516 msgid "B<open>(2), B<libblkid>(3), B<blkid>(8), B<findfs>(8), B<mount>(8)"
9517 msgstr "B<open>(2), B<libblkid>(3), B<blkid>(8), B<findfs>(8), B<mount>(8)"
9518
9519 #. type: Plain text
9520 #: build/C/man2/open_by_handle_at.2:736
9521 msgid ""
9522 "The I<libblkid> and I<libmount> documentation in the latest I<util-linux> "
9523 "release at E<.UR https://www.kernel.org/pub/linux/utils/util-linux/> E<.UE>"
9524 msgstr ""
9525
9526 #. type: TH
9527 #: build/C/man3/perror.3:31
9528 #, no-wrap
9529 msgid "PERROR"
9530 msgstr "PERROR"
9531
9532 #. type: Plain text
9533 #: build/C/man3/perror.3:34
9534 msgid "perror - print a system error message"
9535 msgstr "perror - システムエラーメッセージを出力する"
9536
9537 #. type: Plain text
9538 #: build/C/man3/perror.3:38
9539 msgid "B<void perror(const char *>I<s>B<);>"
9540 msgstr "B<void perror(const char *>I<s>B<);>"
9541
9542 #. type: Plain text
9543 #: build/C/man3/perror.3:40
9544 msgid "B<#include E<lt>errno.hE<gt>>"
9545 msgstr "B<#include E<lt>errno.hE<gt>>"
9546
9547 #. type: Plain text
9548 #: build/C/man3/perror.3:42
9549 msgid "B<const char * const >I<sys_errlist>B<[];>"
9550 msgstr "B<const char * const >I<sys_errlist>B<[];>"
9551
9552 #. type: Plain text
9553 #: build/C/man3/perror.3:44
9554 msgid "B<int >I<sys_nerr>B<;>"
9555 msgstr "B<int >I<sys_nerr>B<;>"
9556
9557 #. type: Plain text
9558 #: build/C/man3/perror.3:46
9559 msgid "B<int >I<errno>B<; /* Not really declared this way; see errno(3). */>"
9560 msgstr ""
9561 "B<int >I<errno>B<; /* 実際にこのように宣言されているわけではない。 errno(3) "
9562 "参照 */>"
9563
9564 #. type: Plain text
9565 #: build/C/man3/perror.3:55
9566 msgid "I<sys_errlist>, I<sys_nerr>: _BSD_SOURCE"
9567 msgstr "I<sys_errlist>, I<sys_nerr>: _BSD_SOURCE"
9568
9569 #. type: Plain text
9570 #: build/C/man3/perror.3:68
9571 msgid ""
9572 "The routine B<perror>()  produces a message on the standard error output, "
9573 "describing the last error encountered during a call to a system or library "
9574 "function.  First (if I<s> is not NULL and I<*s> is not a null byte (\\(aq"
9575 "\\e0\\(aq)) the argument string I<s> is printed, followed by a colon and a "
9576 "blank.  Then the message and a new-line."
9577 msgstr ""
9578 "関数 B<perror>()  は、システムコールやライブラリ関数の呼び出しにおいて、最後"
9579 "に発生した エラーに関する説明メッセージを生成し、標準エラー出力に出力する。 "
9580 "(I<s> が NULL でなく、 I<*s> がヌルバイト (\\(aq\\e0\\(aq) でない場合には) 引"
9581 "き数の文字列 I<s> がまず出力され、続いてコロン、空白が出力され、 それからメッ"
9582 "セージと改行が出力される。"
9583
9584 #. type: Plain text
9585 #: build/C/man3/perror.3:76
9586 msgid ""
9587 "To be of most use, the argument string should include the name of the "
9588 "function that incurred the error.  The error number is taken from the "
9589 "external variable I<errno>, which is set when errors occur but not cleared "
9590 "when successful calls are made."
9591 msgstr ""
9592 "このメッセージを最大限活用するためには、引き数文字列にエラーが発生した 関数名"
9593 "を入れておくとよい。 エラー番号は外部変数 I<errno> から取得される。 I<errno> "
9594 "はエラーが発生した時に設定され、 成功した呼び出しではクリアされない。"
9595
9596 #. type: Plain text
9597 #: build/C/man3/perror.3:90
9598 msgid ""
9599 "The global error list I<sys_errlist>[] indexed by I<errno> can be used to "
9600 "obtain the error message without the newline.  The largest message number "
9601 "provided in the table is I<sys_nerr>-1.  Be careful when directly accessing "
9602 "this list because new error values may not have been added to "
9603 "I<sys_errlist>[].  The use of I<sys_errlist>[] is nowadays deprecated."
9604 msgstr ""
9605 "大域変数のエラーリスト I<sys_errlist>[] は I<errno> を添字とする配列で、こ"
9606 "の\n"
9607 "配列から改行無しのエラーメッセージが取得される。 テーブルでの最大のメッセー"
9608 "ジ\n"
9609 "番号は I<sys_nerr> -1 となる。 このテーブルを直接参照する際には注意するこ"
9610 "と。\n"
9611 "なぜなら、新しいエラー番号が I<sys_errlist>[] に追加済とは限らないからであ"
9612 "る。\n"
9613 "現在では、I<sys_errlist>[] の使用は非推奨となっている。"
9614
9615 #. type: Plain text
9616 #: build/C/man3/perror.3:111
9617 msgid ""
9618 "When a system call fails, it usually returns -1 and sets the variable "
9619 "I<errno> to a value describing what went wrong.  (These values can be found "
9620 "in I<E<lt>errno.hE<gt>>.)  Many library functions do likewise.  The function "
9621 "B<perror>()  serves to translate this error code into human-readable form.  "
9622 "Note that I<errno> is undefined after a successful library call: this call "
9623 "may well change this variable, even though it succeeds, for example because "
9624 "it internally used some other library function that failed.  Thus, if a "
9625 "failing call is not immediately followed by a call to B<perror>(), the value "
9626 "of I<errno> should be saved."
9627 msgstr ""
9628 "システムコールが失敗した場合、通常、返り値として -1 が返り、 I<errno> にエ"
9629 "ラーを識別する値が設定される (設定されるエラー番号は I<E<lt>errno.hE<gt>> に"
9630 "記載されている)。 多くのライブラリ関数も同様の動作となる。 関数 B<perror>()  "
9631 "は、このエラーコードの可読なメッセージへの変換を行う。 I<errno> は、ライブラ"
9632 "リ呼び出しが成功した後には未定義であることに注意が必要である: その呼び出し自"
9633 "身は成功したとしても、内部で呼び出した他のライブラリ関数が 失敗して、その結果"
9634 "をこの変数に設定することがあるからだ。 よって、失敗した呼び出しの直後に "
9635 "B<perror>()  を呼ばない場合には I<errno> の値を 保存しておかなければならな"
9636 "い。"
9637
9638 #. type: Plain text
9639 #: build/C/man3/perror.3:124
9640 msgid ""
9641 "The function B<perror>()  and the external I<errno> (see B<errno>(3))  "
9642 "conform to C89, C99, 4.3BSD, POSIX.1-2001.  The externals I<sys_nerr> and "
9643 "I<sys_errlist> conform to BSD."
9644 msgstr ""
9645 "関数 B<perror>()  と外部変数 I<errno> (B<errno>(3)  参照) は C89, 4.3BSD, "
9646 "POSIX.1-2001 に準拠している。 外部変数 I<sys_nerr> と I<sys_errlist> は BSD "
9647 "に準拠している。"
9648
9649 #.  and only when _BSD_SOURCE is defined.
9650 #.  When
9651 #.  .B _GNU_SOURCE
9652 #.  is defined, the symbols
9653 #.  .I _sys_nerr
9654 #.  and
9655 #.  .I _sys_errlist
9656 #.  are provided.
9657 #. type: Plain text
9658 #: build/C/man3/perror.3:139
9659 msgid ""
9660 "The externals I<sys_nerr> and I<sys_errlist> are defined by glibc, but in "
9661 "I<E<lt>stdio.hE<gt>>."
9662 msgstr ""
9663 "外部変数 I<sys_nerr> と I<sys_errlist> は glibc で定義されているが、 "
9664 "I<E<lt>stdio.hE<gt>> に含まれている。"
9665
9666 #. type: Plain text
9667 #: build/C/man3/perror.3:144
9668 msgid "B<err>(3), B<errno>(3), B<error>(3), B<strerror>(3)"
9669 msgstr "B<err>(3), B<errno>(3), B<error>(3), B<strerror>(3)"
9670
9671 #. type: TH
9672 #: build/C/man2/pipe.2:36
9673 #, no-wrap
9674 msgid "PIPE"
9675 msgstr "PIPE"
9676
9677 #. type: TH
9678 #: build/C/man2/pipe.2:36 build/C/man3/printf.3:34
9679 #, no-wrap
9680 msgid "2014-07-08"
9681 msgstr "2014-07-08"
9682
9683 #. type: Plain text
9684 #: build/C/man2/pipe.2:39
9685 msgid "pipe, pipe2 - create pipe"
9686 msgstr "pipe, pipe2 - パイプを生成する"
9687
9688 #. type: Plain text
9689 #: build/C/man2/pipe.2:44
9690 #, no-wrap
9691 msgid "B<int pipe(int >I<pipefd>B<[2]);>\n"
9692 msgstr "B<int pipe(int >I<pipefd>B<[2]);>\n"
9693
9694 #. type: Plain text
9695 #: build/C/man2/pipe.2:48
9696 #, no-wrap
9697 msgid ""
9698 "B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */\n"
9699 "B<#include E<lt>fcntl.hE<gt>>              /* Obtain O_* constant definitions */\n"
9700 "B<#include E<lt>unistd.hE<gt>>\n"
9701 msgstr ""
9702 "B<#define _GNU_SOURCE>             /* feature_test_macros(7) 参照 */\n"
9703 "B<#include E<lt>fcntl.hE<gt>>              /* O_* 定数の定義の取得 */\n"
9704 "B<#include E<lt>unistd.hE<gt>>\n"
9705
9706 #. type: Plain text
9707 #: build/C/man2/pipe.2:50
9708 #, no-wrap
9709 msgid "B<int pipe2(int >I<pipefd>B<[2], int >I<flags>B<);>\n"
9710 msgstr "B<int pipe2(int >I<pipefd>B<[2], int >I<flags>B<);>\n"
9711
9712 #. type: Plain text
9713 #: build/C/man2/pipe.2:66
9714 msgid ""
9715 "B<pipe>()  creates a pipe, a unidirectional data channel that can be used "
9716 "for interprocess communication.  The array I<pipefd> is used to return two "
9717 "file descriptors referring to the ends of the pipe.  I<pipefd[0]> refers to "
9718 "the read end of the pipe.  I<pipefd[1]> refers to the write end of the "
9719 "pipe.  Data written to the write end of the pipe is buffered by the kernel "
9720 "until it is read from the read end of the pipe.  For further details, see "
9721 "B<pipe>(7)."
9722 msgstr ""
9723 "B<pipe>()  はパイプを生成する。 パイプは、プロセス間通信に使用できる単方向の"
9724 "データチャネルである。 配列 I<pipefd> は、パイプの両端を参照する二つのファイ"
9725 "ルディスクリプタを 返すのに使用される。 I<pipefd[0]> がパイプの読み出し側、 "
9726 "I<pipefd[1]> がパイプの書き込み側である。 パイプの書き込み側に書き込まれた"
9727 "データは、 パイプの読み出し側から読み出されるまでカーネルでバッファリングされ"
9728 "る。 さらなる詳細は B<pipe>(7)  を参照のこと。"
9729
9730 #. type: Plain text
9731 #: build/C/man2/pipe.2:76
9732 msgid ""
9733 "If I<flags> is 0, then B<pipe2>()  is the same as B<pipe>().  The following "
9734 "values can be bitwise ORed in I<flags> to obtain different behavior:"
9735 msgstr ""
9736 "B<pipe2>()  は I<flags> が 0 の場合には B<pipe>()  と同じである。 I<flags> に"
9737 "以下の値をビット毎の論理和 (OR) で指定することで、 異なる動作をさせることがで"
9738 "きる。"
9739
9740 #. type: TP
9741 #: build/C/man2/pipe.2:76
9742 #, no-wrap
9743 msgid "B<O_CLOEXEC>"
9744 msgstr "B<O_CLOEXEC>"
9745
9746 #. type: Plain text
9747 #: build/C/man2/pipe.2:84
9748 msgid ""
9749 "Set the close-on-exec (B<FD_CLOEXEC>)  flag on the two new file "
9750 "descriptors.  See the description of the same flag in B<open>(2)  for "
9751 "reasons why this may be useful."
9752 msgstr ""
9753 "新しく生成される二つのファイルディスクリプタの close-on-exec "
9754 "(B<FD_CLOEXEC>)  フラグをセットする。 このフラグが役に立つ理由については、 "
9755 "B<open>(2)  の B<O_CLOEXEC> フラグの説明を参照のこと。"
9756
9757 #. type: TP
9758 #: build/C/man2/pipe.2:84
9759 #, no-wrap
9760 msgid "B<O_DIRECT> (since Linux 3.4)"
9761 msgstr "B<O_DIRECT> (Linux 3.4 以降)"
9762
9763 #.  commit 9883035ae7edef3ec62ad215611cb8e17d6a1a5d
9764 #. type: Plain text
9765 #: build/C/man2/pipe.2:94
9766 msgid ""
9767 "Create a pipe that performs I/O in \"packet\" mode.  Each B<write>(2)  to "
9768 "the pipe is dealt with as a separate packet, and B<read>(2)s from the pipe "
9769 "will read one packet at a time.  Note the following points:"
9770 msgstr ""
9771 "「パケット」モードで入出力を行うパイプを作成する。 このパイプへの "
9772 "B<write>(2) それぞれが別のパケットとして扱われ、 このパイプからの B<read>(2) "
9773 "では一度に一つパケットが読み出される。 以下の点に注意すること。"
9774
9775 #. type: Plain text
9776 #: build/C/man2/pipe.2:105
9777 msgid ""
9778 "Writes of greater than B<PIPE_BUF> bytes (see B<pipe>(7))  will be split "
9779 "into multiple packets.  The constant B<PIPE_BUF> is defined in I<E<lt>limits."
9780 "hE<gt>>."
9781 msgstr ""
9782 "B<PIPE_BUF> バイト (B<pipe>(7) 参照) より大きいデータを書き込んだ場合、複数の"
9783 "パケットに分割される。\n"
9784 "定数 B<PIPE_BUF> は I<E<lt>limits.hE<gt>> で定義されている。"
9785
9786 #. type: Plain text
9787 #: build/C/man2/pipe.2:115
9788 msgid ""
9789 "If a B<read>(2)  specifies a buffer size that is smaller than the next "
9790 "packet, then the requested number of bytes are read, and the excess bytes in "
9791 "the packet are discarded.  Specifying a buffer size of B<PIPE_BUF> will be "
9792 "sufficient to read the largest possible packets (see the previous point)."
9793 msgstr ""
9794 "B<read>(2) で次のパケットよりも小さなバッファサイズを指定した場合、要求された"
9795 "バイト数のデータが読み出され、そのパケットの超過分のバイトは破棄される。 可能"
9796 "性のある最大サイズのパケットを読み出すには、B<PIPE_BUF> のバッファサイズを指"
9797 "定すれば十分である (上の項目を参照)。"
9798
9799 #. type: Plain text
9800 #: build/C/man2/pipe.2:120
9801 msgid ""
9802 "Zero-length packets are not supported.  (A B<read>(2)  that specifies a "
9803 "buffer size of zero is a no-op, and returns 0.)"
9804 msgstr ""
9805 "長さ 0 のパケットはサポートされていない。 (バッファサイズ 0 を指定した "
9806 "B<read>(2) は何も行わず 0 を返す)。"
9807
9808 #. type: Plain text
9809 #: build/C/man2/pipe.2:125
9810 msgid ""
9811 "Older kernels that do not support this flag will indicate this via an "
9812 "B<EINVAL> error."
9813 msgstr ""
9814 "このフラグをサポートしていない古いカーネルでは、エラー B<EINVAL> が返る。これ"
9815 "によりカーネルがサポートしていないことが分かる。"
9816
9817 #. type: TP
9818 #: build/C/man2/pipe.2:125
9819 #, no-wrap
9820 msgid "B<O_NONBLOCK>"
9821 msgstr "B<O_NONBLOCK>"
9822
9823 #. type: Plain text
9824 #: build/C/man2/pipe.2:133
9825 msgid ""
9826 "Set the B<O_NONBLOCK> file status flag on the two new open file "
9827 "descriptions.  Using this flag saves extra calls to B<fcntl>(2)  to achieve "
9828 "the same result."
9829 msgstr ""
9830 "新しく生成される二つのオープンファイル記述 (open file description) の "
9831 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
9832 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2)  を追加で呼び出す必要がなく"
9833 "なる。"
9834
9835 #. type: Plain text
9836 #: build/C/man2/pipe.2:143
9837 msgid "I<pipefd> is not valid."
9838 msgstr "I<pipefd> が無効な値である。"
9839
9840 #. type: Plain text
9841 #: build/C/man2/pipe.2:148
9842 msgid "(B<pipe2>())  Invalid value in I<flags>."
9843 msgstr "(B<pipe2>())  I<flags> に無効な値が入っている。"
9844
9845 #. type: Plain text
9846 #: build/C/man2/pipe.2:151
9847 msgid "Too many file descriptors are in use by the process."
9848 msgstr "このプロセスで使われているファイルディスクリプタが多すぎる。"
9849
9850 #. type: Plain text
9851 #: build/C/man2/pipe.2:159
9852 msgid ""
9853 "B<pipe2>()  was added to Linux in version 2.6.27; glibc support is available "
9854 "starting with version 2.9."
9855 msgstr ""
9856 "B<pipe2>()  はバージョン 2.6.27 で Linux に追加された。 glibc によるサポート"
9857 "はバージョン 2.9 以降で利用できる。"
9858
9859 #. type: Plain text
9860 #: build/C/man2/pipe.2:162
9861 msgid "B<pipe>(): POSIX.1-2001."
9862 msgstr "B<pipe>(): POSIX.1-2001."
9863
9864 #. type: Plain text
9865 #: build/C/man2/pipe.2:165
9866 msgid "B<pipe2>()  is Linux-specific."
9867 msgstr "B<pipe2>()  は Linux 固有である。"
9868
9869 #.  fork.2 refers to this example program.
9870 #. type: Plain text
9871 #: build/C/man2/pipe.2:181
9872 msgid ""
9873 "The following program creates a pipe, and then B<fork>(2)s to create a child "
9874 "process; the child inherits a duplicate set of file descriptors that refer "
9875 "to the same pipe.  After the B<fork>(2), each process closes the descriptors "
9876 "that it doesn't need for the pipe (see B<pipe>(7)).  The parent then writes "
9877 "the string contained in the program's command-line argument to the pipe, and "
9878 "the child reads this string a byte at a time from the pipe and echoes it on "
9879 "standard output."
9880 msgstr ""
9881 "以下のプログラムではパイプを生成し、その後 B<fork>(2)  で子プロセスを生成す"
9882 "る。 子プロセスは同じパイプを参照するファイルディスクリプタ集合のコピーを 継"
9883 "承する。 B<fork>(2)  の後、各プロセスはパイプ (B<pipe>(7)  を参照) に必要がな"
9884 "くなったディスクリプタをクローズする。 親プロセスはプログラムのコマンドライン"
9885 "引き数に含まれる 文字列をパイプへ書き込み、 子プロセスはこの文字列をパイプか"
9886 "ら 1 バイトずつ読み込んで標準出力にエコーする。"
9887
9888 #. type: Plain text
9889 #: build/C/man2/pipe.2:189
9890 #, no-wrap
9891 msgid ""
9892 "#include E<lt>sys/types.hE<gt>\n"
9893 "#include E<lt>sys/wait.hE<gt>\n"
9894 "#include E<lt>stdio.hE<gt>\n"
9895 "#include E<lt>stdlib.hE<gt>\n"
9896 "#include E<lt>unistd.hE<gt>\n"
9897 "#include E<lt>string.hE<gt>\n"
9898 msgstr ""
9899 "#include E<lt>sys/types.hE<gt>\n"
9900 "#include E<lt>sys/wait.hE<gt>\n"
9901 "#include E<lt>stdio.hE<gt>\n"
9902 "#include E<lt>stdlib.hE<gt>\n"
9903 "#include E<lt>unistd.hE<gt>\n"
9904 "#include E<lt>string.hE<gt>\n"
9905
9906 #. type: Plain text
9907 #: build/C/man2/pipe.2:196
9908 #, no-wrap
9909 msgid ""
9910 "int\n"
9911 "main(int argc, char *argv[])\n"
9912 "{\n"
9913 "    int pipefd[2];\n"
9914 "    pid_t cpid;\n"
9915 "    char buf;\n"
9916 msgstr ""
9917 "int\n"
9918 "main(int argc, char *argv[])\n"
9919 "{\n"
9920 "    int pipefd[2];\n"
9921 "    pid_t cpid;\n"
9922 "    char buf;\n"
9923
9924 #. type: Plain text
9925 #: build/C/man2/pipe.2:201
9926 #, no-wrap
9927 msgid ""
9928 "    if (argc != 2) {\n"
9929 "        fprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
9930 "        exit(EXIT_FAILURE);\n"
9931 "    }\n"
9932 msgstr ""
9933 "    if (argc != 2) {\n"
9934 "        fprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
9935 "        exit(EXIT_FAILURE);\n"
9936 "    }\n"
9937
9938 #. type: Plain text
9939 #: build/C/man2/pipe.2:206
9940 #, no-wrap
9941 msgid ""
9942 "    if (pipe(pipefd) == -1) {\n"
9943 "        perror(\"pipe\");\n"
9944 "        exit(EXIT_FAILURE);\n"
9945 "    }\n"
9946 msgstr ""
9947 "    if (pipe(pipefd) == -1) {\n"
9948 "        perror(\"pipe\");\n"
9949 "        exit(EXIT_FAILURE);\n"
9950 "    }\n"
9951
9952 #. type: Plain text
9953 #: build/C/man2/pipe.2:212
9954 #, no-wrap
9955 msgid ""
9956 "    cpid = fork();\n"
9957 "    if (cpid == -1) {\n"
9958 "        perror(\"fork\");\n"
9959 "        exit(EXIT_FAILURE);\n"
9960 "    }\n"
9961 msgstr ""
9962 "    cpid = fork();\n"
9963 "    if (cpid == -1) {\n"
9964 "        perror(\"fork\");\n"
9965 "        exit(EXIT_FAILURE);\n"
9966 "    }\n"
9967
9968 #. type: Plain text
9969 #: build/C/man2/pipe.2:215
9970 #, no-wrap
9971 msgid ""
9972 "    if (cpid == 0) {    /* Child reads from pipe */\n"
9973 "        close(pipefd[1]);          /* Close unused write end */\n"
9974 msgstr ""
9975 "    if (cpid == 0) {    /* 子プロセスがパイプから読み込む */\n"
9976 "        close(pipefd[1]);  /* 使用しない write 側はクローズする */\n"
9977
9978 #. type: Plain text
9979 #: build/C/man2/pipe.2:218
9980 #, no-wrap
9981 msgid ""
9982 "        while (read(pipefd[0], &buf, 1) E<gt> 0)\n"
9983 "            write(STDOUT_FILENO, &buf, 1);\n"
9984 msgstr ""
9985 "        while (read(pipefd[0], &buf, 1) E<gt> 0)\n"
9986 "            write(STDOUT_FILENO, &buf, 1);\n"
9987
9988 #. type: Plain text
9989 #: build/C/man2/pipe.2:222
9990 #, no-wrap
9991 msgid ""
9992 "        write(STDOUT_FILENO, \"\\en\", 1);\n"
9993 "        close(pipefd[0]);\n"
9994 "        _exit(EXIT_SUCCESS);\n"
9995 msgstr ""
9996 "        write(STDOUT_FILENO, \"\\en\", 1);\n"
9997 "        close(pipefd[0]);\n"
9998 "        _exit(EXIT_SUCCESS);\n"
9999
10000 #. type: Plain text
10001 #: build/C/man2/pipe.2:231
10002 #, no-wrap
10003 msgid ""
10004 "    } else {            /* Parent writes argv[1] to pipe */\n"
10005 "        close(pipefd[0]);          /* Close unused read end */\n"
10006 "        write(pipefd[1], argv[1], strlen(argv[1]));\n"
10007 "        close(pipefd[1]);          /* Reader will see EOF */\n"
10008 "        wait(NULL);                /* Wait for child */\n"
10009 "        exit(EXIT_SUCCESS);\n"
10010 "    }\n"
10011 "}\n"
10012 msgstr ""
10013 "    } else {            /* 親プロセスは argv[1] をパイプへ書き込む */\n"
10014 "        close(pipefd[0]);          /* 使用しない read 側はクローズする */\n"
10015 "        write(pipefd[1], argv[1], strlen(argv[1]));\n"
10016 "        close(pipefd[1]);          /* 読み込み側が EOF に出会う */\n"
10017 "        wait(NULL);                /* 子プロセスを待つ */\n"
10018 "        exit(EXIT_SUCCESS);\n"
10019 "    }\n"
10020 "}\n"
10021
10022 #. type: Plain text
10023 #: build/C/man2/pipe.2:239
10024 msgid ""
10025 "B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), "
10026 "B<pipe>(7)"
10027 msgstr ""
10028 "B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), "
10029 "B<pipe>(7)"
10030
10031 #. type: TH
10032 #: build/C/man3/popen.3:40
10033 #, no-wrap
10034 msgid "POPEN"
10035 msgstr "POPEN"
10036
10037 #. type: Plain text
10038 #: build/C/man3/popen.3:43
10039 msgid "popen, pclose - pipe stream to or from a process"
10040 msgstr "popen, pclose - プロセスとの入力/出力用のパイプストリーム"
10041
10042 #. type: Plain text
10043 #: build/C/man3/popen.3:48
10044 #, no-wrap
10045 msgid "B<FILE *popen(const char *>I<command>B<, const char *>I<type>B<);>\n"
10046 msgstr "B<FILE *popen(const char *>I<command>B<, const char *>I<type>B<);>\n"
10047
10048 #. type: Plain text
10049 #: build/C/man3/popen.3:50
10050 #, no-wrap
10051 msgid "B<int pclose(FILE *>I<stream>B<);>\n"
10052 msgstr "B<int pclose(FILE *>I<stream>B<);>\n"
10053
10054 #. type: Plain text
10055 #: build/C/man3/popen.3:60
10056 msgid "B<popen>(), B<pclose>():"
10057 msgstr "B<popen>(), B<pclose>():"
10058
10059 #. type: Plain text
10060 #: build/C/man3/popen.3:62
10061 msgid ""
10062 "_POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE"
10063 msgstr ""
10064 "_POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE"
10065
10066 #. type: Plain text
10067 #: build/C/man3/popen.3:73
10068 msgid ""
10069 "The B<popen>()  function opens a process by creating a pipe, forking, and "
10070 "invoking the shell.  Since a pipe is by definition unidirectional, the "
10071 "I<type> argument may specify only reading or writing, not both; the "
10072 "resulting stream is correspondingly read-only or write-only."
10073 msgstr ""
10074 "B<popen>()  関数は、プロセスをオープンする。具体的には、 パイプを生成し、"
10075 "フォークを行い、シェルを起動する。 定義から分かるように、パイプは一方向なの"
10076 "で、 I<type> 引き数には読み込みか書き込みのどちらか一方だけを指定できる (両方"
10077 "は指定できない)。 生成されるストリームは、この指定に対応して、読み取り専用ま"
10078 "たは 書き込み専用のいずれかとなる。"
10079
10080 #. type: Plain text
10081 #: build/C/man3/popen.3:97
10082 msgid ""
10083 "The I<command> argument is a pointer to a null-terminated string containing "
10084 "a shell command line.  This command is passed to I</bin/sh> using the B<-c> "
10085 "flag; interpretation, if any, is performed by the shell.  The I<type> "
10086 "argument is a pointer to a null-terminated string which must contain either "
10087 "the letter \\(aqr\\(aq for reading or the letter \\(aqw\\(aq for writing.  "
10088 "Since glibc 2.9, this argument can additionally include the letter \\(aqe"
10089 "\\(aq, which causes the close-on-exec flag (B<FD_CLOEXEC>)  to be set on the "
10090 "underlying file descriptor; see the description of the B<O_CLOEXEC> flag in "
10091 "B<open>(2)  for reasons why this may be useful."
10092 msgstr ""
10093 "I<command> 引き数は、シェルのコマンドラインを含むヌル終端された文字列へのポイ"
10094 "ンタである。 このコマンドは B<-c> フラグを用いて I</bin/sh> に渡される。 コマ"
10095 "ンドの解釈は (もし必要ならば) シェルによって行われる。 I<type> 引き数は、ヌル"
10096 "終端された文字列へのポインタで、 読み込みを示す文字 \\(aqr\\(aq か、書き込み"
10097 "を示す文字 \\(aqw\\(aq の どちらか一方を指定しなければならない。 glibc 2.9 以"
10098 "降では、この引き数に文字 \\(aqe\\(aq を追加で指定できる。 文字 \\(aqe\\(aq を"
10099 "指定すると、 対応するファイルディスクリプタにおいて、 close-on-exec フラグ "
10100 "(B<FD_CLOEXEC>)  がセットされる。 これが役に立つ理由については、 B<open>(2)  "
10101 "の B<O_CLOEXEC> フラグの説明を参照のこと。"
10102
10103 #. type: Plain text
10104 #: build/C/man3/popen.3:113
10105 msgid ""
10106 "The return value from B<popen>()  is a normal standard I/O stream in all "
10107 "respects save that it must be closed with B<pclose>()  rather than "
10108 "B<fclose>(3).  Writing to such a stream writes to the standard input of the "
10109 "command; the command's standard output is the same as that of the process "
10110 "that called B<popen>(), unless this is altered by the command itself.  "
10111 "Conversely, reading from the stream reads the command's standard output, and "
10112 "the command's standard input is the same as that of the process that called "
10113 "B<popen>()."
10114 msgstr ""
10115 "B<popen>()  からの返り値は、通常の標準 I/O ストリームと同じであるが、 "
10116 "B<fclose>(3)  ではなく B<pclose>()  で閉じなくてはならないことだけが異なる。 "
10117 "このストリームへ書き込んだ結果はコマンドの標準入力に書き込まれる。 そして、コ"
10118 "マンドの標準出力は、 コマンドそのものが置き換わってしまわない限り、 "
10119 "B<popen>()  を呼んだプロセスの標準出力と同じことになる。 逆に、 ストリームか"
10120 "らの読み込みは、 そのコマンドの標準出力を読み込むことになる。 そして、そのコ"
10121 "マンドの標準入力は B<popen>()  を呼んだプロセスの標準入力と同一である。"
10122
10123 #. type: Plain text
10124 #: build/C/man3/popen.3:117
10125 msgid "Note that output B<popen>()  streams are fully buffered by default."
10126 msgstr ""
10127 "デフォルトでは、 B<popen>()  の出力ストリームは完全にバッファリングされること"
10128 "に注意しよう。"
10129
10130 #. type: Plain text
10131 #: build/C/man3/popen.3:123
10132 msgid ""
10133 "The B<pclose>()  function waits for the associated process to terminate and "
10134 "returns the exit status of the command as returned by B<wait4>(2)."
10135 msgstr ""
10136 "B<pclose>()  関数は、(パイプに) 関連づけられたプロセスが終了するのを待ち、 "
10137 "B<wait4>(2)  によって返されたコマンドの終了状態を返す。"
10138
10139 #. type: Plain text
10140 #: build/C/man3/popen.3:131
10141 msgid ""
10142 "The B<popen>()  function returns NULL if the B<fork>(2)  or B<pipe>(2)  "
10143 "calls fail, or if it cannot allocate memory."
10144 msgstr ""
10145 "B<popen>()  関数は、 B<fork>(2)  または B<pipe>(2)  呼び出しが失敗した場合"
10146 "や、 メモリ割り当てができなかった場合、 NULL を返す。"
10147
10148 #.  These conditions actually give undefined results, so I commented
10149 #.  them out.
10150 #.  .I stream
10151 #.  is not associated with a "popen()ed" command, if
10152 #. .I stream
10153 #.  already "pclose()d", or if
10154 #. type: Plain text
10155 #: build/C/man3/popen.3:146
10156 msgid ""
10157 "The B<pclose>()  function returns -1 if B<wait4>(2)  returns an error, or "
10158 "some other error is detected.  In the event of an error, these functions set "
10159 "I<errno> to indicate the cause of the error."
10160 msgstr ""
10161 "B<pclose>()  関数は、 B<wait4>(2)  がエラーを返したり、何か他のエラーが見つ"
10162 "かった場合、 -1 を返す。 その場合、 I<errno> にエラーの原因を示す値が設定され"
10163 "る。"
10164
10165 #. type: Plain text
10166 #: build/C/man3/popen.3:165
10167 msgid ""
10168 "The B<popen>()  function does not set I<errno> if memory allocation fails.  "
10169 "If the underlying B<fork>(2)  or B<pipe>(2)  fails, I<errno> is set "
10170 "appropriately.  If the I<type> argument is invalid, and this condition is "
10171 "detected, I<errno> is set to B<EINVAL>."
10172 msgstr ""
10173 "B<popen>()  関数は、メモリアロケーションに失敗しても I<errno> をセットしな"
10174 "い。 B<popen>()  が中で呼び出す B<fork>(2)  や B<pipe>(2)  が失敗した場合に"
10175 "は、 I<errno> が適切にセットされる。 引き数 I<type> が無効であり、この状態が"
10176 "検知された場合には、 I<errno> が B<EINVAL> にセットされる。"
10177
10178 #. type: Plain text
10179 #: build/C/man3/popen.3:172
10180 msgid ""
10181 "If B<pclose>()  cannot obtain the child status, I<errno> is set to B<ECHILD>."
10182 msgstr ""
10183 "B<pclose>()  が、子プロセスの状態を取得できなかった場合、 I<errno> が "
10184 "B<ECHILD> にセットされる。"
10185
10186 #. type: Plain text
10187 #: build/C/man3/popen.3:178
10188 msgid "The \\(aqe\\(aq value for I<type> is a Linux extension."
10189 msgstr "I<type> に指定できる \\(aqe\\(aq は Linux での拡張である。"
10190
10191 #. type: Plain text
10192 #: build/C/man3/popen.3:191
10193 msgid ""
10194 "Since the standard input of a command opened for reading shares its seek "
10195 "offset with the process that called B<popen>(), if the original process has "
10196 "done a buffered read, the command's input position may not be as expected.  "
10197 "Similarly, the output from a command opened for writing may become "
10198 "intermingled with that of the original process.  The latter can be avoided "
10199 "by calling B<fflush>(3)  before B<popen>()."
10200 msgstr ""
10201 "読み込みのために開かれたコマンドの標準入力は B<popen>(), を呼んだプロセスと一"
10202 "緒に、その読み取り位置を共有する。 そのため、もとのプロセスがバッファリングさ"
10203 "れた読み取りを終了したら、 そのコマンドの入力位置は予想されたものには なって"
10204 "いないかもしれない。 同様に、書き込みのために開かれたコマンドからの出力は、 "
10205 "もとのプロセスの出力と混ざり合うことになるかもしれない。 後者は B<popen>()  "
10206 "の前に B<fflush>(3)  を呼び出すことによって回避可能である。"
10207
10208 #.  .SH HISTORY
10209 #.  A
10210 #.  .BR popen ()
10211 #.  and a
10212 #.  .BR pclose ()
10213 #.  function appeared in Version 7 AT&T UNIX.
10214 #. type: Plain text
10215 #: build/C/man3/popen.3:201
10216 msgid ""
10217 "Failure to execute the shell is indistinguishable from the shell's failure "
10218 "to execute command, or an immediate exit of the command.  The only hint is "
10219 "an exit status of 127."
10220 msgstr ""
10221 "シェルの実行の失敗は、 シェルがコマンドの実行に失敗したことや、 コマンドがす"
10222 "ぐに終了してしまったことと、区別がつかない。 唯一のヒントは終了状態が 127 に"
10223 "なることである。"
10224
10225 #. type: Plain text
10226 #: build/C/man3/popen.3:211
10227 msgid ""
10228 "B<sh>(1), B<fork>(2), B<pipe>(2), B<wait4>(2), B<fclose>(3), B<fflush>(3), "
10229 "B<fopen>(3), B<stdio>(3), B<system>(3)"
10230 msgstr ""
10231 "B<sh>(1), B<fork>(2), B<pipe>(2), B<wait4>(2), B<fclose>(3), B<fflush>(3), "
10232 "B<fopen>(3), B<stdio>(3), B<system>(3)"
10233
10234 #. type: TH
10235 #: build/C/man3/printf.3:34
10236 #, no-wrap
10237 msgid "PRINTF"
10238 msgstr "PRINTF"
10239
10240 #. type: Plain text
10241 #: build/C/man3/printf.3:38
10242 msgid ""
10243 "printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - "
10244 "formatted output conversion"
10245 msgstr ""
10246 "printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - "
10247 "指定された書式に変換して出力を行う"
10248
10249 #. type: Plain text
10250 #: build/C/man3/printf.3:42
10251 msgid "B<int printf(const char *>I<format>B<, ...);>"
10252 msgstr "B<int printf(const char *>I<format>B<, ...);>"
10253
10254 #. type: Plain text
10255 #: build/C/man3/printf.3:44
10256 msgid "B<int fprintf(FILE *>I<stream>B<, const char *>I<format>B<, ...);>"
10257 msgstr "B<int fprintf(FILE *>I<stream>B<, const char *>I<format>B<, ...);>"
10258
10259 #. type: Plain text
10260 #: build/C/man3/printf.3:46
10261 msgid "B<int sprintf(char *>I<str>B<, const char *>I<format>B<, ...);>"
10262 msgstr "B<int sprintf(char *>I<str>B<, const char *>I<format>B<, ...);>"
10263
10264 #. type: Plain text
10265 #: build/C/man3/printf.3:48
10266 msgid ""
10267 "B<int snprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10268 "*>I<format>B<, ...);>"
10269 msgstr ""
10270 "B<int snprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10271 "*>I<format>B<, ...);>"
10272
10273 #. type: Plain text
10274 #: build/C/man3/printf.3:50
10275 msgid "B<#include E<lt>stdarg.hE<gt>>"
10276 msgstr "B<#include E<lt>stdarg.hE<gt>>"
10277
10278 #. type: Plain text
10279 #: build/C/man3/printf.3:52
10280 msgid "B<int vprintf(const char *>I<format>B<, va_list >I<ap>B<);>"
10281 msgstr "B<int vprintf(const char *>I<format>B<, va_list >I<ap>B<);>"
10282
10283 #. type: Plain text
10284 #: build/C/man3/printf.3:54
10285 msgid ""
10286 "B<int vfprintf(FILE *>I<stream>B<, const char *>I<format>B<, va_list "
10287 ">I<ap>B<);>"
10288 msgstr ""
10289 "B<int vfprintf(FILE *>I<stream>B<, const char *>I<format>B<, va_list "
10290 ">I<ap>B<);>"
10291
10292 #. type: Plain text
10293 #: build/C/man3/printf.3:56
10294 msgid ""
10295 "B<int vsprintf(char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
10296 msgstr ""
10297 "B<int vsprintf(char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
10298
10299 #. type: Plain text
10300 #: build/C/man3/printf.3:59
10301 msgid ""
10302 "B<int vsnprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10303 "*>I<format>B<, va_list >I<ap>B<);>"
10304 msgstr ""
10305 "B<int vsnprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10306 "*>I<format>B<, va_list >I<ap>B<);>"
10307
10308 #. type: Plain text
10309 #: build/C/man3/printf.3:68
10310 msgid "B<snprintf>(), B<vsnprintf>():"
10311 msgstr "B<snprintf>(), B<vsnprintf>():"
10312
10313 #. type: Plain text
10314 #: build/C/man3/printf.3:71
10315 msgid ""
10316 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE || "
10317 "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
10318 msgstr ""
10319 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE || "
10320 "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
10321
10322 #. type: Plain text
10323 #: build/C/man3/printf.3:74 build/C/man3/scanf.3:85
10324 msgid "or I<cc -std=c99>"
10325 msgstr "または I<cc -std=c99>"
10326
10327 #. type: Plain text
10328 #: build/C/man3/printf.3:101
10329 msgid ""
10330 "The functions in the B<printf>()  family produce output according to a "
10331 "I<format> as described below.  The functions B<printf>()  and B<vprintf>()  "
10332 "write output to I<stdout>, the standard output stream; B<fprintf>()  and "
10333 "B<vfprintf>()  write output to the given output I<stream>; B<sprintf>(), "
10334 "B<snprintf>(), B<vsprintf>()  and B<vsnprintf>()  write to the character "
10335 "string I<str>."
10336 msgstr ""
10337 "B<printf>()  関数グループは、以下で述べるように、 I<format> に従って出力を生"
10338 "成するものである。 B<printf>()  と B<vprintf>()  は出力を I<stdout> (標準出力"
10339 "ストリーム) に書き出す。 B<fprintf>()  と B<vfprintf>()  は出力を指定された出"
10340 "力 I<stream> に書き出す。 B<sprintf>(), B<snprintf>(), B<vsprintf>(), "
10341 "B<vsnprintf>()  は出力を文字列 I<str> に書き込む。"
10342
10343 #. type: Plain text
10344 #: build/C/man3/printf.3:110
10345 msgid ""
10346 "The functions B<snprintf>()  and B<vsnprintf>()  write at most I<size> bytes "
10347 "(including the terminating null byte (\\(aq\\e0\\(aq)) to I<str>."
10348 msgstr ""
10349 "B<snprintf>()  と B<vsnprintf>()  は最大で I<size> バイトを I<str> に書き込"
10350 "む (I<size> には文字列を終端するヌルバイト (\\(aq\\e0\\(aq) もを含まれる)。"
10351
10352 #. type: Plain text
10353 #: build/C/man3/printf.3:134
10354 msgid ""
10355 "The functions B<vprintf>(), B<vfprintf>(), B<vsprintf>(), B<vsnprintf>()  "
10356 "are equivalent to the functions B<printf>(), B<fprintf>(), B<sprintf>(), "
10357 "B<snprintf>(), respectively, except that they are called with a I<va_list> "
10358 "instead of a variable number of arguments.  These functions do not call the "
10359 "I<va_end> macro.  Because they invoke the I<va_arg> macro, the value of "
10360 "I<ap> is undefined after the call.  See B<stdarg>(3)."
10361 msgstr ""
10362 "B<vprintf>(), B<vfprintf>(), B<vsprintf>(), B<vsnprintf>()  の各関数はそれぞ"
10363 "れ B<printf>(), B<fprintf>(), B<sprintf>(), B<snprintf>(), の各関数と等価であ"
10364 "り、可変数引き数の代わりに I<va_list> を引き数として呼び出される点だけが異な"
10365 "る。 これらの関数では I<va_end> マクロは呼び出されない。 これらの関数は "
10366 "I<va_arg> を呼び出すので、呼び出し後の I<ap> の値は未定義である。 "
10367 "B<stdarg>(3)  を参照のこと。"
10368
10369 #. type: Plain text
10370 #: build/C/man3/printf.3:141
10371 msgid ""
10372 "These eight functions write the output under the control of a I<format> "
10373 "string that specifies how subsequent arguments (or arguments accessed via "
10374 "the variable-length argument facilities of B<stdarg>(3))  are converted for "
10375 "output."
10376 msgstr ""
10377 "これらの 8 つの関数は I<format> 文字列の制御に従って出力を書き出す。 "
10378 "I<format> 文字列は、これに続く引き数 (または B<stdarg>(3)  の可変長引き数機構"
10379 "を使ってアクセスできる引き数)  をどのように変換して出力するかを指定する。"
10380
10381 #. type: Plain text
10382 #: build/C/man3/printf.3:152
10383 msgid ""
10384 "C99 and POSIX.1-2001 specify that the results are undefined if a call to "
10385 "B<sprintf>(), B<snprintf>(), B<vsprintf>(), or B<vsnprintf>()  would cause "
10386 "copying to take place between objects that overlap (e.g., if the target "
10387 "string array and one of the supplied input arguments refer to the same "
10388 "buffer).  See NOTES."
10389 msgstr ""
10390 "C99 と POSIX.1-2001 では、 B<sprintf>(), B<snprintf>(), B<vsprintf>(), "
10391 "B<vsnprintf>()  の呼び出しで、範囲が重複するオブジェクト間でコピーが発生する"
10392 "場合の 結果は不定であると規定されている (例えば、出力先の文字列と入力された "
10393 "引き数の一つが同じバッファを参照している場合などである)。 「注意」の節を参"
10394 "照。"
10395
10396 #. type: SS
10397 #: build/C/man3/printf.3:152
10398 #, no-wrap
10399 msgid "Return value"
10400 msgstr "Return Values"
10401
10402 #. type: Plain text
10403 #: build/C/man3/printf.3:155
10404 msgid ""
10405 "Upon successful return, these functions return the number of characters "
10406 "printed (excluding the null byte used to end output to strings)."
10407 msgstr ""
10408 "成功時には、上記の関数は書き込まれた文字数を返す (文字列の最後を示すために使"
10409 "用するヌルバイトは数に含まれない)。"
10410
10411 #. type: Plain text
10412 #: build/C/man3/printf.3:171
10413 msgid ""
10414 "The functions B<snprintf>()  and B<vsnprintf>()  do not write more than "
10415 "I<size> bytes (including the terminating null byte (\\(aq\\e0\\(aq)).  If "
10416 "the output was truncated due to this limit, then the return value is the "
10417 "number of characters (excluding the terminating null byte)  which would have "
10418 "been written to the final string if enough space had been available.  Thus, "
10419 "a return value of I<size> or more means that the output was truncated.  (See "
10420 "also below under NOTES.)"
10421 msgstr ""
10422 "B<snprintf>()  と B<vsnprintf>()  は、 I<size> バイトを越える文字数を書き込ま"
10423 "ない (I<size> には文字列を終端するヌルバイト (\\(aq\\e0\\(aq) も含まれる)。 "
10424 "この制限によって出力が切り詰められた場合には、 もし十分なスペースがあれば書き"
10425 "込まれたであろう文字の個数 (文字列を終端するヌルバイトを除く) を返す。 従っ"
10426 "て、返り値が I<size> 以上だった場合、出力が切り詰められたことを意味する (後述"
10427 "の注意も参照のこと)。"
10428
10429 #. type: Plain text
10430 #: build/C/man3/printf.3:173
10431 msgid "If an output error is encountered, a negative value is returned."
10432 msgstr "エラーが発生した場合は、負の数を返す。"
10433
10434 #. type: SS
10435 #: build/C/man3/printf.3:173
10436 #, no-wrap
10437 msgid "Format of the format string"
10438 msgstr "フォーマット文字列のフォーマット"
10439
10440 #. type: Plain text
10441 #: build/C/man3/printf.3:195
10442 msgid ""
10443 "The format string is a character string, beginning and ending in its initial "
10444 "shift state, if any.  The format string is composed of zero or more "
10445 "directives: ordinary characters (not B<%>), which are copied unchanged to "
10446 "the output stream; and conversion specifications, each of which results in "
10447 "fetching zero or more subsequent arguments.  Each conversion specification "
10448 "is introduced by the character B<%>, and ends with a I<conversion "
10449 "specifier>.  In between there may be (in this order) zero or more I<flags>, "
10450 "an optional minimum I<field width>, an optional I<precision> and an optional "
10451 "I<length modifier>."
10452 msgstr ""
10453 "フォーマット文字列は文字の列で、 (もしあるなら) 初期シフト状態で始まり、初期"
10454 "シフト状態で終わる。 フォーマット用の文字列は 0 個以上の命令 (directives) に"
10455 "よって構成される。 命令には、通常文字と変換指定 (conversion specifications) "
10456 "がある。 通常文字は B<%> 以外の文字で、出力ストリームにそのままコピーされ"
10457 "る。 変換指定は、それぞれが 0 個以上の引き数を取る。 各変換指定は文字 B<%> で"
10458 "始まり、 I<変換指定子 (conversion specifier)> で終わる。 B<%> と変換指定子の"
10459 "間には、0 個以上の I<フラグ 、> 最小 I<フィールド幅 、> I<精度 、> I<長さ修飾"
10460 "子> を (この順序で) 置くことができる。"
10461
10462 #. type: Plain text
10463 #: build/C/man3/printf.3:208
10464 msgid ""
10465 "The arguments must correspond properly (after type promotion) with the "
10466 "conversion specifier.  By default, the arguments are used in the order "
10467 "given, where each \\(aq*\\(aq and each conversion specifier asks for the "
10468 "next argument (and it is an error if insufficiently many arguments are "
10469 "given).  One can also specify explicitly which argument is taken, at each "
10470 "place where an argument is required, by writing \"%m$\" instead of \\(aq%"
10471 "\\(aq and \"*m$\" instead of \\(aq*\\(aq, where the decimal integer m "
10472 "denotes the position in the argument list of the desired argument, indexed "
10473 "starting from 1.  Thus,"
10474 msgstr ""
10475 "引き数は (型の格上げの後は) 変換指定子が表す型と正確に対応しなければならな"
10476 "い。 デフォルトでは、\\(aq*\\(aq や変換指定子が出てくる毎に次の引き数を要求さ"
10477 "れ、 引き数は指定された順序で使用されていく (指定された引き数の個数が不十分な"
10478 "らエラーとなる)。 また、引き数が必要な箇所で \\(aq%\\(aq の代わりに \"%m$"
10479 "\"、 \\(aq*\\(aqの代わりに \"*m$\" と書くことで、 明示的にどの引き数を使用す"
10480 "るかを指定することもできる。 ここで 10進の整数 m は希望の引き数の引き数リスト"
10481 "での位置を示す (最初の引き数の番号が 1 である)。 従って、"
10482
10483 #. type: Plain text
10484 #: build/C/man3/printf.3:212
10485 #, no-wrap
10486 msgid "printf(\"%*d\", width, num);\n"
10487 msgstr "printf(\"%*d\", width, num);\n"
10488
10489 #. type: Plain text
10490 #: build/C/man3/printf.3:216
10491 msgid "and"
10492 msgstr "と"
10493
10494 #. type: Plain text
10495 #: build/C/man3/printf.3:220
10496 #, no-wrap
10497 msgid "printf(\"%2$*1$d\", width, num);\n"
10498 msgstr "printf(\"%2$*1$d\", width, num);\n"
10499
10500 #. type: Plain text
10501 #: build/C/man3/printf.3:236
10502 msgid ""
10503 "are equivalent.  The second style allows repeated references to the same "
10504 "argument.  The C99 standard does not include the style using \\(aq$\\(aq, "
10505 "which comes from the Single UNIX Specification.  If the style using \\(aq$"
10506 "\\(aq is used, it must be used throughout for all conversions taking an "
10507 "argument and all width and precision arguments, but it may be mixed with \"%%"
10508 "\" formats which do not consume an argument.  There may be no gaps in the "
10509 "numbers of arguments specified using \\(aq$\\(aq; for example, if arguments "
10510 "1 and 3 are specified, argument 2 must also be specified somewhere in the "
10511 "format string."
10512 msgstr ""
10513 "は等価である。 二番目の書き方では同じ引き数を繰り返し参照することができる。 "
10514 "C99 標準には、 Single UNIX Specification 由来の \\(aq$\\(aq を使った書き方は"
10515 "含まれていない。 \\(aq$\\(aq を使ったスタイルを使うと、引き数を取る変換及び幅"
10516 "と精度の引き数を 全てこのスタイルで指定しなければならないが、 引き数を消費し"
10517 "ない \"%%\" フォーマットと混ざっているかもしれない。 \\(aq$\\(aq で指定される"
10518 "引き数の番号に空きがあってはならない。 例えば、もし引き数 1 と 3 が指定される"
10519 "と、引き数 2 もフォーマット文字列のどこかで 指定されなければならない。"
10520
10521 #. type: Plain text
10522 #: build/C/man3/printf.3:246
10523 msgid ""
10524 "For some numeric conversions a radix character (\"decimal point\") or "
10525 "thousands' grouping character is used.  The actual character used depends on "
10526 "the B<LC_NUMERIC> part of the locale.  The POSIX locale uses \\(aq.\\(aq as "
10527 "radix character, and does not have a grouping character.  Thus,"
10528 msgstr ""
10529 "数値変換には小数点や 1000 単位の区切り文字を使うものもある。 実際にどの文字を"
10530 "使うかはロケールの B<LC_NUMERIC> による。 POSIX ロケールでは小数点に \\(aq."
10531 "\\(aq を用い、 区切り文字は使わない。 従って、"
10532
10533 #. type: Plain text
10534 #: build/C/man3/printf.3:250
10535 #, no-wrap
10536 msgid "    printf(\"%\\(aq.2f\", 1234567.89);\n"
10537 msgstr "printf(\"%\\(aq.2f\", 1234567.89);\n"
10538
10539 #. type: Plain text
10540 #: build/C/man3/printf.3:255
10541 msgid ""
10542 "results in \"1234567.89\" in the POSIX locale, in \"1234567,89\" in the "
10543 "nl_NL locale, and in \"1.234.567,89\" in the da_DK locale."
10544 msgstr ""
10545 "は、 POSIX ロケールでは \"1234567.89\" 、 nl_NL ロケールでは "
10546 "\"1234567,89\"、 da_DK ロケールでは \"1.234.567,89\" となる。"
10547
10548 #. type: SS
10549 #: build/C/man3/printf.3:255
10550 #, no-wrap
10551 msgid "The flag characters"
10552 msgstr "フラグ文字"
10553
10554 #. type: Plain text
10555 #: build/C/man3/printf.3:257
10556 msgid "The character % is followed by zero or more of the following flags:"
10557 msgstr "% 文字の後ろには 0 個以上のフラグ文字が続く。"
10558
10559 #. type: TP
10560 #: build/C/man3/printf.3:257
10561 #, no-wrap
10562 msgid "B<#>"
10563 msgstr "B<#>"
10564
10565 #. type: Plain text
10566 #: build/C/man3/printf.3:291
10567 msgid ""
10568 "The value should be converted to an \"alternate form\".  For B<o> "
10569 "conversions, the first character of the output string is made zero (by "
10570 "prefixing a 0 if it was not zero already).  For B<x> and B<X> conversions, a "
10571 "nonzero result has the string \"0x\" (or \"0X\" for B<X> conversions) "
10572 "prepended to it.  For B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, and B<G> "
10573 "conversions, the result will always contain a decimal point, even if no "
10574 "digits follow it (normally, a decimal point appears in the results of those "
10575 "conversions only if a digit follows).  For B<g> and B<G> conversions, "
10576 "trailing zeros are not removed from the result as they would otherwise be.  "
10577 "For other conversions, the result is undefined."
10578 msgstr ""
10579 "値は「別の形式」に変換される。 B<o> 変換の場合、(先頭文字が 0 になっていない"
10580 "場合に先頭に 0 を追加することで)  出力文字列の最初の文字を 0 にする。 B<x> "
10581 "と B<X> 変換の場合、数値が 0 でないときには文字列 \"0x\" (B<X> 変換の場合に"
10582 "は \"0X\") が前に付与される。 B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, B<G> "
10583 "変換では、 小数点に続く数字がなくても、 出力には常に小数点が含まれる (通常"
10584 "は、小数点の後に数字が続く場合にのみ、 小数点が表示される)。 B<g> と B<G> 変"
10585 "換の場合、他の変換とは異なり、末尾のゼロが変換結果から削除されない。 その他の"
10586 "変換では、結果は未定義である。"
10587
10588 #. type: TP
10589 #: build/C/man3/printf.3:291
10590 #, no-wrap
10591 msgid "B<\\&0>"
10592 msgstr "B<\\&0>"
10593
10594 #. type: Plain text
10595 #: build/C/man3/printf.3:331
10596 msgid ""
10597 "The value should be zero padded.  For B<d>, B<i>, B<o>, B<u>, B<x>, B<X>, "
10598 "B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, and B<G> conversions, the "
10599 "converted value is padded on the left with zeros rather than blanks.  If the "
10600 "B<\\&0> and B<-> flags both appear, the B<\\&0> flag is ignored.  If a "
10601 "precision is given with a numeric conversion (B<d>, B<i>, B<o>, B<u>, B<x>, "
10602 "and B<X>), the B<\\&0> flag is ignored.  For other conversions, the behavior "
10603 "is undefined."
10604 msgstr ""
10605 "値をゼロで埋める。 B<d>, B<i>, B<o>, B<u>, B<x>, B<X>, B<a>, B<A>, B<e>, "
10606 "B<E>, B<f>, B<F>, B<g>, B<G> 変換では、変換した値の左側を空白文字の代わりにゼ"
10607 "ロで埋める。 B<\\&0> と B<-> が両方とも指定された場合は、 B<\\&0> フラグは無"
10608 "視される。 精度が数値変換 (B<d>, B<i>, B<o>, B<u>, B<x>, B<X>)  と同時に指定"
10609 "された場合には、 B<\\&0> フラグは無視される。 その他の変換では、動作は未定義"
10610 "である。"
10611
10612 #. type: TP
10613 #: build/C/man3/printf.3:331
10614 #, no-wrap
10615 msgid "B<->"
10616 msgstr "B<->"
10617
10618 #. type: Plain text
10619 #: build/C/man3/printf.3:342
10620 msgid ""
10621 "The converted value is to be left adjusted on the field boundary.  (The "
10622 "default is right justification.)  The converted value is padded on the right "
10623 "with blanks, rather than on the left with blanks or zeros.  A B<-> overrides "
10624 "a B<\\&0> if both are given."
10625 msgstr ""
10626 "変換値をフィールド境界で左揃えにする (デフォルトは右揃えである)。 変換された"
10627 "値は 左側ではなく右側を空白文字やゼロで埋められる。 B<-> と B<\\&0> の両方が"
10628 "指定された場合には、 B<-> が優先される。"
10629
10630 #. type: TP
10631 #: build/C/man3/printf.3:342
10632 #, no-wrap
10633 msgid "B<\\(aq \\(aq>"
10634 msgstr "B<' '>"
10635
10636 #. type: Plain text
10637 #: build/C/man3/printf.3:346
10638 msgid ""
10639 "(a space) A blank should be left before a positive number (or empty string) "
10640 "produced by a signed conversion."
10641 msgstr ""
10642 "(1個の半角スペース)  符号付き変換で生成された正の数字の前に空白 (または空文字"
10643 "列) が置かれる。"
10644
10645 #. type: TP
10646 #: build/C/man3/printf.3:346
10647 #, no-wrap
10648 msgid "B<+>"
10649 msgstr "B<+>"
10650
10651 #. type: Plain text
10652 #: build/C/man3/printf.3:354
10653 msgid ""
10654 "A sign (+ or -) should always be placed before a number produced by a signed "
10655 "conversion.  By default a sign is used only for negative numbers.  A B<+> "
10656 "overrides a space if both are used."
10657 msgstr ""
10658 "符号付き変換によって出力される数字の前に、常に符号 (+ か -) が置かれる。 デ"
10659 "フォルトでは、符号は負の数字の場合のみ付与される。 B<+> と半角スペースの 両方"
10660 "が使われている場合には、 B<+> が優先される。"
10661
10662 #. type: Plain text
10663 #: build/C/man3/printf.3:357
10664 msgid ""
10665 "The five flag characters above are defined in the C99 standard.  The Single "
10666 "UNIX Specification specifies one further flag character."
10667 msgstr ""
10668 "上記の 5 つのフラグは C99 標準で定義されている。 Single UNIX Specified では、"
10669 "さらにもう一つフラグ文字が規定されている。"
10670
10671 #. type: TP
10672 #: build/C/man3/printf.3:357
10673 #, no-wrap
10674 msgid "B<\\(aq>"
10675 msgstr "B<\\(aq>"
10676
10677 #. type: Plain text
10678 #: build/C/man3/printf.3:374
10679 msgid ""
10680 "For decimal conversion (B<i>, B<d>, B<u>, B<f>, B<F>, B<g>, B<G>)  the "
10681 "output is to be grouped with thousands' grouping characters if the locale "
10682 "information indicates any.  Note that many versions of B<gcc>(1)  cannot "
10683 "parse this option and will issue a warning.  (SUSv2 did not include I<%"
10684 "\\(aqF>, but SUSv3 added it.)"
10685 msgstr ""
10686 "10進数変換 (B<i>, B<d>, B<u>, B<f>, B<F>, B<g>, B<G>)  において、ロケール情報"
10687 "に指定があれば 1000 単位の区切り文字を出力する。 B<gcc>(1)  の多くのバージョ"
10688 "ンは、このオプションを解釈することができず、 警告を出力することに注意せよ。 "
10689 "(I<%\\(aqF> は SUSv2 には含まれていなかったが、 SUSv3 で追加された。"
10690
10691 #. type: Plain text
10692 #: build/C/man3/printf.3:376
10693 msgid "glibc 2.2 adds one further flag character."
10694 msgstr "glibc 2.2 では、さらに一つフラグ文字が追加されている。"
10695
10696 #. type: TP
10697 #: build/C/man3/printf.3:376
10698 #, no-wrap
10699 msgid "B<I>"
10700 msgstr "B<I>"
10701
10702 #.  outdigits keyword in locale file
10703 #. type: Plain text
10704 #: build/C/man3/printf.3:386
10705 msgid ""
10706 "For decimal integer conversion (B<i>, B<d>, B<u>)  the output uses the "
10707 "locale's alternative output digits, if any.  For example, since glibc 2.2.3 "
10708 "this will give Arabic-Indic digits in the Persian (\"fa_IR\") locale."
10709 msgstr ""
10710 "10進整数変換 (B<i>, B<d>, B<u>)  において、ロケールの代替出力数字があれば、そ"
10711 "れを用いて出力する。 例えば、 glibc 2.2.3 以降では、ペルシア (\"fa_IR\") ロ"
10712 "ケールで アラビア数字 (Arabic-Indic digits) を出力できる。"
10713
10714 #. type: SS
10715 #: build/C/man3/printf.3:386
10716 #, no-wrap
10717 msgid "The field width"
10718 msgstr "フィールド幅"
10719
10720 #. type: Plain text
10721 #: build/C/man3/printf.3:402
10722 msgid ""
10723 "An optional decimal digit string (with nonzero first digit) specifying a "
10724 "minimum field width.  If the converted value has fewer characters than the "
10725 "field width, it will be padded with spaces on the left (or right, if the "
10726 "left-adjustment flag has been given).  Instead of a decimal digit string one "
10727 "may write \"*\" or \"*m$\" (for some decimal integer I<m>) to specify that "
10728 "the field width is given in the next argument, or in the I<m>-th argument, "
10729 "respectively, which must be of type I<int>.  A negative field width is taken "
10730 "as a \\(aq-\\(aq flag followed by a positive field width.  In no case does a "
10731 "nonexistent or small field width cause truncation of a field; if the result "
10732 "of a conversion is wider than the field width, the field is expanded to "
10733 "contain the conversion result."
10734 msgstr ""
10735 "最小のフィールド幅を指定する 10進数の数値文字列 (文字列の最初の文字は ゼロ以"
10736 "外)。本項目はオプションである。 変換された値の文字数がフィールド長よりも少な"
10737 "い場合、 フィールドの左側をスペースで埋める (左揃えのフラグがある場合は右側を"
10738 "埋める)。 10進数の文字列の代わりに \"*\" や \"*m$\" (I<m> は 10進整数) を書く"
10739 "こともできる。 \"*\" と \"*m$\" はそれぞれ、次の引き数と I<m> 番目の引き数を"
10740 "フィールド幅として 使うことを指定する (これらの引き数は I<int> 型でなければな"
10741 "らない)。 フィールド幅に負の数が指定された場合は、 \\(aq-\\(aq フラグと正の数"
10742 "のフィールド幅として扱われる。 フィールド幅が小さかったり指定がなかったりして"
10743 "も、フィールドが切り詰められる ことはない。もし変換結果がフィールド幅よりも広"
10744 "かった場合、 フィールドは変換結果が入る幅に広げられる。"
10745
10746 #. type: SS
10747 #: build/C/man3/printf.3:402
10748 #, no-wrap
10749 msgid "The precision"
10750 msgstr "精度"
10751
10752 #. type: Plain text
10753 #: build/C/man3/printf.3:439
10754 msgid ""
10755 "An optional precision, in the form of a period (\\(aq.\\(aq)  followed by an "
10756 "optional decimal digit string.  Instead of a decimal digit string one may "
10757 "write \"*\" or \"*m$\" (for some decimal integer m) to specify that the "
10758 "precision is given in the next argument, or in the m-th argument, "
10759 "respectively, which must be of type I<int>.  If the precision is given as "
10760 "just \\(aq.\\(aq, the precision is taken to be zero.  A negative precision "
10761 "is taken as if the precision were omitted.  This gives the minimum number of "
10762 "digits to appear for B<d>, B<i>, B<o>, B<u>, B<x>, and B<X> conversions, the "
10763 "number of digits to appear after the radix character for B<a>, B<A>, B<e>, "
10764 "B<E>, B<f>, and B<F> conversions, the maximum number of significant digits "
10765 "for B<g> and B<G> conversions, or the maximum number of characters to be "
10766 "printed from a string for B<s> and B<S> conversions."
10767 msgstr ""
10768 "オプションである精度は、ピリオド (\\(aq.\\(aq) とそれに続く10進数という 形式"
10769 "で指定する (10進数はオプション) 。 10進数の文字列の代わりに \"*\" や \"*m$"
10770 "\" (m は 10 進整数)を書くこともできる。 \"*\" と \"*m$\" はそれぞれ、次の引き"
10771 "数と m 番目の引き数を精度として 使うことを指定する (これらの引き数は I<int> "
10772 "型でなければならない)。 精度として \\(aq.\\(aq だけが指定された場合、 精度は"
10773 "ゼロとみなされる。 精度が負の数だった場合、 精度は指定されなかったものとみな"
10774 "される。 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変換では、表示される最小の桁数を"
10775 "指定する。 B<a>, B<A>, B<e>, B<E>, B<f>, B<F> 変換では、小数点以下に表示され"
10776 "る数字の桁数を指定する。 B<g> と B<G> 変換では、有効数字の最大桁数を指定す"
10777 "る。 B<s> と B<S> 変換では、文字列から出力される最大文字数を指定する。"
10778
10779 #. type: SS
10780 #: build/C/man3/printf.3:439
10781 #, no-wrap
10782 msgid "The length modifier"
10783 msgstr "長さ修飾子"
10784
10785 #. type: Plain text
10786 #: build/C/man3/printf.3:449
10787 msgid ""
10788 "Here, \"integer conversion\" stands for B<d>, B<i>, B<o>, B<u>, B<x>, or "
10789 "B<X> conversion."
10790 msgstr ""
10791 "「整数変換」とは、 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変換のことである。"
10792
10793 #. type: TP
10794 #: build/C/man3/printf.3:449 build/C/man3/scanf.3:294
10795 #, no-wrap
10796 msgid "B<hh>"
10797 msgstr "B<hh>"
10798
10799 #. type: Plain text
10800 #: build/C/man3/printf.3:460
10801 msgid ""
10802 "A following integer conversion corresponds to a I<signed char> or I<unsigned "
10803 "char> argument, or a following B<n> conversion corresponds to a pointer to a "
10804 "I<signed char> argument."
10805 msgstr ""
10806 "整数変換に対応する引き数が I<signed char> か I<unsigned char> で、 B<n> 変換"
10807 "に対応する引き数が I<signed char> へのポインタであることを示す。"
10808
10809 #. type: TP
10810 #: build/C/man3/printf.3:460 build/C/man3/scanf.3:284
10811 #, no-wrap
10812 msgid "B<h>"
10813 msgstr "B<h>"
10814
10815 #. type: Plain text
10816 #: build/C/man3/printf.3:471
10817 msgid ""
10818 "A following integer conversion corresponds to a I<short int> or I<unsigned "
10819 "short int> argument, or a following B<n> conversion corresponds to a pointer "
10820 "to a I<short int> argument."
10821 msgstr ""
10822 "整数変換に対応する引き数が I<short int> か I<unsigned short int> で、 B<n> 変"
10823 "換に対応する引き数が I<short int> へのポインタであることを示す。"
10824
10825 #. type: TP
10826 #: build/C/man3/printf.3:471 build/C/man3/scanf.3:311
10827 #, no-wrap
10828 msgid "B<l>"
10829 msgstr "B<l>"
10830
10831 #. type: Plain text
10832 #: build/C/man3/printf.3:490
10833 msgid ""
10834 "(ell) A following integer conversion corresponds to a I<long int> or "
10835 "I<unsigned long int> argument, or a following B<n> conversion corresponds to "
10836 "a pointer to a I<long int> argument, or a following B<c> conversion "
10837 "corresponds to a I<wint_t> argument, or a following B<s> conversion "
10838 "corresponds to a pointer to I<wchar_t> argument."
10839 msgstr ""
10840 "各変換に対応する引き数が、 整数変換では I<long int>か I<unsigned long int>、 "
10841 "B<n> 変換では I<long long int> へのポインタ、 B<c> 変換では I<wint_t>、 B<s> "
10842 "変換では I<wchar_t> へのポインタであることを示す。"
10843
10844 #. type: TP
10845 #: build/C/man3/printf.3:490
10846 #, no-wrap
10847 msgid "B<ll>"
10848 msgstr "B<ll> (エルエル)"
10849
10850 #. type: Plain text
10851 #: build/C/man3/printf.3:502
10852 msgid ""
10853 "(ell-ell).  A following integer conversion corresponds to a I<long long int> "
10854 "or I<unsigned long long int> argument, or a following B<n> conversion "
10855 "corresponds to a pointer to a I<long long int> argument."
10856 msgstr ""
10857 "整数変換に対応する引き数が I<long long int> か I<unsigned long long int> "
10858 "で、 B<n> 変換に対応する引き数が I<long int> へのポインタであることを示す。"
10859
10860 #. type: TP
10861 #: build/C/man3/printf.3:502 build/C/man3/scanf.3:338
10862 #, no-wrap
10863 msgid "B<L>"
10864 msgstr "B<L>"
10865
10866 #.  .TP
10867 #.  .B q
10868 #.  ("quad". 4.4BSD and Linux libc5 only.
10869 #.  Don't use.)
10870 #. type: Plain text
10871 #: build/C/man3/printf.3:524
10872 msgid ""
10873 "A following B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, or B<G> conversion "
10874 "corresponds to a I<long double> argument.  (C99 allows %LF, but SUSv2 does "
10875 "not.)  This is a synonym for B<ll>."
10876 msgstr ""
10877 "B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, B<G> 変換に対応する引き数が I<long "
10878 "double> であることを示す。 (C99 では %LF を使うことを認めているが、SUSv2 では"
10879 "認められていない。) これは B<ll> の同義語である。"
10880
10881 #. type: TP
10882 #: build/C/man3/printf.3:524 build/C/man3/scanf.3:302
10883 #, no-wrap
10884 msgid "B<j>"
10885 msgstr "B<j>"
10886
10887 #. type: Plain text
10888 #: build/C/man3/printf.3:535
10889 msgid ""
10890 "A following integer conversion corresponds to an I<intmax_t> or I<uintmax_t> "
10891 "argument, or a following B<n> conversion corresponds to a pointer to an "
10892 "I<intmax_t> argument."
10893 msgstr ""
10894 "整数変換に対応する引き数が I<intmax_t> か I<uintmax_t> で、 B<n> 変換に対応す"
10895 "る引き数が I<intmax_t> へのポインタであることを示す。"
10896
10897 #. type: TP
10898 #: build/C/man3/printf.3:535 build/C/man3/scanf.3:366
10899 #, no-wrap
10900 msgid "B<z>"
10901 msgstr "B<z>"
10902
10903 #.  (Linux libc5 has
10904 #.  .B Z
10905 #.  with this meaning.
10906 #.  Don't use it.)
10907 #. type: Plain text
10908 #: build/C/man3/printf.3:550
10909 msgid ""
10910 "A following integer conversion corresponds to a I<size_t> or I<ssize_t> "
10911 "argument, or a following B<n> conversion corresponds to a pointer to a "
10912 "I<size_t> argument."
10913 msgstr ""
10914 "整数変換に対応する引き数が I<size_t> か I<ssize_t> で、 B<n> 変換に対応する引"
10915 "き数が I<size_t> へのポインタであることを示す。"
10916
10917 #. type: TP
10918 #: build/C/man3/printf.3:550 build/C/man3/scanf.3:359
10919 #, no-wrap
10920 msgid "B<t>"
10921 msgstr "B<t>"
10922
10923 #. type: Plain text
10924 #: build/C/man3/printf.3:559
10925 msgid ""
10926 "A following integer conversion corresponds to a I<ptrdiff_t> argument, or a "
10927 "following B<n> conversion corresponds to a pointer to a I<ptrdiff_t> "
10928 "argument."
10929 msgstr ""
10930 "整数変換に対応する引き数が I<ptrdiff_t> で、 B<n> 変換に対応する引き数が "
10931 "I<ptrdiff_t> へのポインタであることを示す。"
10932
10933 #. type: Plain text
10934 #: build/C/man3/printf.3:589
10935 msgid ""
10936 "SUSv3 specifies all of the above.  SUSv2 specified only the length modifiers "
10937 "B<h> (in B<hd>, B<hi>, B<ho>, B<hx>, B<hX>, B<hn>)  and B<l> (in B<ld>, "
10938 "B<li>, B<lo>, B<lx>, B<lX>, B<ln>, B<lc>, B<ls>)  and B<L> (in B<Le>, B<LE>, "
10939 "B<Lf>, B<Lg>, B<LG>)."
10940 msgstr ""
10941 "SUSv3 では上記のすべてが規定されている。 SUSv2 で規定されていたのは、 長さ修"
10942 "飾子 B<h> (B<hd>, B<hi>, B<ho>, B<hx>, B<hX>, B<hn>), B<l> (B<ld>, B<li>, "
10943 "B<lo>, B<lx>, B<lX>, B<ln>, B<lc>, B<ls>), B<L> (B<Le>, B<LE>, B<Lf>, B<Lg>, "
10944 "B<LG>)  だけであった。"
10945
10946 #. type: SS
10947 #: build/C/man3/printf.3:589
10948 #, no-wrap
10949 msgid "The conversion specifier"
10950 msgstr "変換指定子"
10951
10952 #. type: Plain text
10953 #: build/C/man3/printf.3:592
10954 msgid ""
10955 "A character that specifies the type of conversion to be applied.  The "
10956 "conversion specifiers and their meanings are:"
10957 msgstr ""
10958 "適用される変換の型を指定する文字。 変換指定子とその意味は以下の通りである。"
10959
10960 #. type: TP
10961 #: build/C/man3/printf.3:592
10962 #, no-wrap
10963 msgid "B<d>, B<i>"
10964 msgstr "B<d>, B<i>"
10965
10966 #. type: Plain text
10967 #: build/C/man3/printf.3:602
10968 msgid ""
10969 "The I<int> argument is converted to signed decimal notation.  The precision, "
10970 "if any, gives the minimum number of digits that must appear; if the "
10971 "converted value requires fewer digits, it is padded on the left with zeros.  "
10972 "The default precision is 1.  When 0 is printed with an explicit precision 0, "
10973 "the output is empty."
10974 msgstr ""
10975 "I<int> 引き数を符号付き 10 進表記に変換する。 精度指定があれば、精度で指定し"
10976 "た桁数は必ず出力される。変換後の値が 指定された桁数に足りない場合は、左側が "
10977 "0 で埋められる。 デフォルトの精度は 1 である。 0 を表示しようとした時に、明示"
10978 "的に精度として 0 が指定されていると、 出力は空文字列となる。"
10979
10980 #. type: TP
10981 #: build/C/man3/printf.3:602
10982 #, no-wrap
10983 msgid "B<o>, B<u>, B<x>, B<X>"
10984 msgstr "B<o>, B<u>, B<x>, B<X>"
10985
10986 #. type: Plain text
10987 #: build/C/man3/printf.3:629
10988 msgid ""
10989 "The I<unsigned int> argument is converted to unsigned octal (B<o>), unsigned "
10990 "decimal (B<u>), or unsigned hexadecimal (B<x> and B<X>)  notation.  The "
10991 "letters B<abcdef> are used for B<x> conversions; the letters B<ABCDEF> are "
10992 "used for B<X> conversions.  The precision, if any, gives the minimum number "
10993 "of digits that must appear; if the converted value requires fewer digits, it "
10994 "is padded on the left with zeros.  The default precision is 1.  When 0 is "
10995 "printed with an explicit precision 0, the output is empty."
10996 msgstr ""
10997 "I<unsigned int> 引き数を、 符号なし8進数 (B<o>), 符号なし10進数 (B<u>), 符号"
10998 "なし16進数 (B<x> と B<X>)  に変換する。 B<x> 変換では B<abcdef> が使用され、 "
10999 "B<X> 変換では B<ABCDEF> が使用される。 精度指定があれば、精度で指定した桁数は"
11000 "必ず出力される。変換後の値が 指定された桁数に足りない場合は、左側が 0 で埋め"
11001 "られる。"
11002
11003 #. type: TP
11004 #: build/C/man3/printf.3:629
11005 #, no-wrap
11006 msgid "B<e>, B<E>"
11007 msgstr "B<e>, B<E>"
11008
11009 #. type: Plain text
11010 #: build/C/man3/printf.3:648
11011 msgid ""
11012 "The I<double> argument is rounded and converted in the style [-]dB<\\&."
11013 ">dddB<e>\\(+-dd where there is one digit before the decimal-point character "
11014 "and the number of digits after it is equal to the precision; if the "
11015 "precision is missing, it is taken as 6; if the precision is zero, no decimal-"
11016 "point character appears.  An B<E> conversion uses the letter B<E> (rather "
11017 "than B<e>)  to introduce the exponent.  The exponent always contains at "
11018 "least two digits; if the value is zero, the exponent is 00."
11019 msgstr ""
11020 "I<double> 引き数を丸めて [-]dB<\\&.>dddB<e>\\(+-dd の形に変換する。\n"
11021 "小数点の前には一桁の数字があり、小数点以下の桁数は精度で指定された桁数\n"
11022 "になる。精度は指定されなかった場合 6 とみなされる。 精度が 0 の場合には、\n"
11023 "小数点以下は表示されない。B<E> 変換では、指数を表現するときに (B<e> で\n"
11024 "はなく) B<E> が使われる。指数部分は少なくとも 2桁表示される。つまり、\n"
11025 "指数の値が 0 の場合には、00 と表示される。"
11026
11027 #. type: TP
11028 #: build/C/man3/printf.3:648
11029 #, no-wrap
11030 msgid "B<f>, B<F>"
11031 msgstr "B<f>, B<F>"
11032
11033 #. type: Plain text
11034 #: build/C/man3/printf.3:659
11035 msgid ""
11036 "The I<double> argument is rounded and converted to decimal notation in the "
11037 "style [-]dddB<\\&.>ddd, where the number of digits after the decimal-point "
11038 "character is equal to the precision specification.  If the precision is "
11039 "missing, it is taken as 6; if the precision is explicitly zero, no decimal-"
11040 "point character appears.  If a decimal point appears, at least one digit "
11041 "appears before it."
11042 msgstr ""
11043 "I<double> 引き数を丸めて [-]dddB<\\&.>ddd の形の10進表現に変換する。 小数点の"
11044 "後の桁数は、精度で指定された値となる。 精度が指定されていない場合には 6 とし"
11045 "て扱われる。 精度として明示的に 0 が指定されたときには、小数点以下は表示され"
11046 "ない。 小数点を表示する際には、小数点の前に少なくとも一桁は数字が表示される。"
11047
11048 #. type: Plain text
11049 #: build/C/man3/printf.3:672
11050 msgid ""
11051 "(SUSv2 does not know about B<F> and says that character string "
11052 "representations for infinity and NaN may be made available.  SUSv3 adds a "
11053 "specification for B<F>.  The C99 standard specifies \"[-]inf\" or "
11054 "\"[-]infinity\" for infinity, and a string starting with \"nan\" for NaN, in "
11055 "the case of B<f> conversion, and \"[-]INF\" or \"[-]INFINITY\" or \"NAN*\" "
11056 "in the case of B<F> conversion.)"
11057 msgstr ""
11058 "(SUSv2 では、B<F> は規定されておらず、無限や NaN に関する文字列表現を行っても"
11059 "よいことになっている。 SUSv3 では B<F> の規定が追加された。 C99 標準では、"
11060 "B<f> 変換では、無限は \"[-]inf\" か \"[-]infinity\" と表示し、 NaN は文字列の"
11061 "先頭に `nan' をつけて表示するように規定されている。 B<F> 変換の場合は "
11062 "\"[-]INF\", \"[-]INFINITY\", \"NAN*\" と表示される。)"
11063
11064 #. type: TP
11065 #: build/C/man3/printf.3:672
11066 #, no-wrap
11067 msgid "B<g>, B<G>"
11068 msgstr "B<g>, B<G>"
11069
11070 #. type: Plain text
11071 #: build/C/man3/printf.3:697
11072 msgid ""
11073 "The I<double> argument is converted in style B<f> or B<e> (or B<F> or B<E> "
11074 "for B<G> conversions).  The precision specifies the number of significant "
11075 "digits.  If the precision is missing, 6 digits are given; if the precision "
11076 "is zero, it is treated as 1.  Style B<e> is used if the exponent from its "
11077 "conversion is less than -4 or greater than or equal to the precision.  "
11078 "Trailing zeros are removed from the fractional part of the result; a decimal "
11079 "point appears only if it is followed by at least one digit."
11080 msgstr ""
11081 "I<double> 引き数を B<f> か B<e> (B<G> 変換の場合は B<F> か B<E>)  の形式に変"
11082 "換する。 精度は表示する桁数を指定する。 精度が指定されない場合は、6桁とみなさ"
11083 "れる。 精度が 0 の場合は、1桁とみなされる。 変換される値の指数が、 -4 より小"
11084 "さいか、精度以上の場合に、 B<e> 形式が使用される。 変換された結果の小数部分の"
11085 "末尾の 0 は削除される。小数点が表示されるのは、 小数点以下に数字が少なくとも"
11086 "一つある場合にだけである。"
11087
11088 #. type: TP
11089 #: build/C/man3/printf.3:697
11090 #, no-wrap
11091 msgid "B<a>, B<A>"
11092 msgstr "B<a>, B<A>"
11093
11094 #. type: Plain text
11095 #: build/C/man3/printf.3:722
11096 msgid ""
11097 "(C99; not in SUSv2, but added in SUSv3)  For B<a> conversion, the I<double> "
11098 "argument is converted to hexadecimal notation (using the letters abcdef)  in "
11099 "the style [-]B<0x>hB<\\&.>hhhhB<p>\\(+-; for B<A> conversion the prefix "
11100 "B<0X>, the letters ABCDEF, and the exponent separator B<P> is used.  There "
11101 "is one hexadecimal digit before the decimal point, and the number of digits "
11102 "after it is equal to the precision.  The default precision suffices for an "
11103 "exact representation of the value if an exact representation in base 2 "
11104 "exists and otherwise is sufficiently large to distinguish values of type "
11105 "I<double>.  The digit before the decimal point is unspecified for "
11106 "nonnormalized numbers, and nonzero but otherwise unspecified for normalized "
11107 "numbers."
11108 msgstr ""
11109 "(C99 にはあるが SUSv2 にはないが SUSv3 で追加された) \n"
11110 "B<a> 変換では、 I<double> 引き数を\n"
11111 "(abcdef の文字を使って) [-]B<0x>hB<\\&.>hhhhB<p>\\(+- 形式の\n"
11112 "16 進表記に変換する。\n"
11113 "B<A> 変換では、前置文字列 B<0X>, 文字 ABCDEF, 指数文字 B<P> を用いる。\n"
11114 "小数点の前には 1 桁の 16 進数が置かれ、小数点の後ろの桁数は 精度で指定\n"
11115 "された値となる。デフォルトの精度は、その値が 2 進数で正確に表現できる\n"
11116 "場合には、その値を正確に表現できる桁数となる。それ以外の場合は、\n"
11117 "I<double> 型の値を区別するのに十分な大きさとなる。 小数点の前の数字は、\n"
11118 "正規化されていない数の場合はいくつになるか分からない。 正規化された数の\n"
11119 "場合は、 0 以外の値になるが、いくつになるかは分からない。"
11120
11121 #. type: TP
11122 #: build/C/man3/printf.3:722 build/C/man3/scanf.3:459
11123 #: build/C/man3/wprintf.3:149
11124 #, no-wrap
11125 msgid "B<c>"
11126 msgstr "B<c>"
11127
11128 #. type: Plain text
11129 #: build/C/man3/printf.3:740
11130 msgid ""
11131 "If no B<l> modifier is present, the I<int> argument is converted to an "
11132 "I<unsigned char>, and the resulting character is written.  If an B<l> "
11133 "modifier is present, the I<wint_t> (wide character) argument is converted to "
11134 "a multibyte sequence by a call to the B<wcrtomb>(3)  function, with a "
11135 "conversion state starting in the initial state, and the resulting multibyte "
11136 "string is written."
11137 msgstr ""
11138 "B<l> 修飾子がなければ、 I<int> 引き数を I<unsigned char> に変換して、その結果"
11139 "に対応する文字を出力する。 B<l> 修飾子があれば、 I<wint_t> (ワイド文字) 引き"
11140 "数を、 B<wcrtomb>(3)  関数を初期シフト状態で呼び出してマルチバイト文字列に変"
11141 "換し、 変換されたマルチバイト文字列を出力する。"
11142
11143 #. type: TP
11144 #: build/C/man3/printf.3:740 build/C/man3/scanf.3:451
11145 #: build/C/man3/wprintf.3:163
11146 #, no-wrap
11147 msgid "B<s>"
11148 msgstr "B<s>"
11149
11150 #. type: Plain text
11151 #: build/C/man3/printf.3:755
11152 msgid ""
11153 "If no B<l> modifier is present: The I<const char\\ *> argument is expected "
11154 "to be a pointer to an array of character type (pointer to a string).  "
11155 "Characters from the array are written up to (but not including) a "
11156 "terminating null byte (\\(aq\\e0\\(aq); if a precision is specified, no more "
11157 "than the number specified are written.  If a precision is given, no null "
11158 "byte need be present; if the precision is not specified, or is greater than "
11159 "the size of the array, the array must contain a terminating null byte."
11160 msgstr ""
11161 "B<l> 修飾子がない場合、 引き数は I<const char\\ *> 型で文字型の配列へのポイン"
11162 "タ (文字列へのポインタ) であることが 期待されている。配列中の文字は、終端の "
11163 "ヌルバイト (\\(aq\\e0\\(aq)  が出てくるまで出力される (終端文字は出力されな"
11164 "い)。 精度が指定されていると、指定された字数以上は出力されない。 精度が指定さ"
11165 "れた場合には、終端バイトが存在する必要はない。 精度が指定されていなかったり、"
11166 "精度の値が配列の大きさより大きい場合には、 配列は終端のヌルバイトを含んでいな"
11167 "ければならない。"
11168
11169 #. type: Plain text
11170 #: build/C/man3/printf.3:782
11171 msgid ""
11172 "If an B<l> modifier is present: The I<const wchar_t\\ *> argument is "
11173 "expected to be a pointer to an array of wide characters.  Wide characters "
11174 "from the array are converted to multibyte characters (each by a call to the "
11175 "B<wcrtomb>(3)  function, with a conversion state starting in the initial "
11176 "state before the first wide character), up to and including a terminating "
11177 "null wide character.  The resulting multibyte characters are written up to "
11178 "(but not including) the terminating null byte.  If a precision is specified, "
11179 "no more bytes than the number specified are written, but no partial "
11180 "multibyte characters are written.  Note that the precision determines the "
11181 "number of I<bytes> written, not the number of I<wide characters> or I<screen "
11182 "positions>.  The array must contain a terminating null wide character, "
11183 "unless a precision is given and it is so small that the number of bytes "
11184 "written exceeds it before the end of the array is reached."
11185 msgstr ""
11186 "B<l> 修飾子が指定されている場合、 引き数は I<const wchar_t\\ *> 型でワイド文"
11187 "字の配列へのポインタであることが期待されている。 配列中のワイド文字は (1文字"
11188 "毎に B<wcrtomb>(3)  を呼び出して) マルチバイト文字に変換される (最初のワイド"
11189 "文字の変換の前に B<wcrtomb>()  のシフト状態を初期状態に戻してから変換は行われ"
11190 "る)。 マルチバイト文字への変換は、文字列を終端するヌルワイド文字が 出てくるま"
11191 "で行われ、終端ヌルワイド文字も含めて変換される。 結果のマルチバイト文字列は、"
11192 "終端のヌルバイトが出てくるまで 出力される (終端のヌルバイトは出力されない)。 "
11193 "精度が指定された場合、指定されたバイト数以上には出力されない。 但し、マルチバ"
11194 "イト文字の一部分だけが出力されることはない。 精度は「バイト」数を指定するもの"
11195 "であり、「ワイド文字」数や 「画面での位置」を指定するものではないことに注"
11196 "意。 精度が指定されていて、さらに出力が配列の末尾に達する前に出力バイト数が "
11197 "精度の値を超える場合だけは、配列はヌルワイド文字で終端されていなくてもよい。 "
11198 "それ以外の場合は、必ず配列はヌルワイド文字で終端されていなければならない。"
11199
11200 #. type: TP
11201 #: build/C/man3/printf.3:782
11202 #, no-wrap
11203 msgid "B<C>"
11204 msgstr "B<C>"
11205
11206 #. type: Plain text
11207 #: build/C/man3/printf.3:788
11208 msgid ""
11209 "(Not in C99 or C11, but in SUSv2, SUSv3, and SUSv4.)  Synonym for B<lc>.  "
11210 "Don't use."
11211 msgstr ""
11212 "(C99, C11 にはないが SUSv2, SUSv3, SUSv4 にはある)  B<lc> と同じ。使ってはな"
11213 "らない。"
11214
11215 #. type: TP
11216 #: build/C/man3/printf.3:788
11217 #, no-wrap
11218 msgid "B<S>"
11219 msgstr "B<S>"
11220
11221 #. type: Plain text
11222 #: build/C/man3/printf.3:794
11223 msgid ""
11224 "(Not in C99 or C11, but in SUSv2, SUSv3, and SUSv4.)  Synonym for B<ls>.  "
11225 "Don't use."
11226 msgstr ""
11227 "(C99, C11 にはないが SUSv2, SUSv3, SUSv4 にはある)  B<ls> と同じ。使ってはな"
11228 "らない。"
11229
11230 #. type: TP
11231 #: build/C/man3/printf.3:794 build/C/man3/scanf.3:502
11232 #, no-wrap
11233 msgid "B<p>"
11234 msgstr "B<p>"
11235
11236 #. type: Plain text
11237 #: build/C/man3/printf.3:802
11238 msgid ""
11239 "The I<void\\ *> pointer argument is printed in hexadecimal (as if by B<%#x> "
11240 "or B<%#lx>)."
11241 msgstr ""
11242 "I<void\\ *> ポインタ引き数を (B<%#x> や B<%#lx> のような) 16 進数で出力する。"
11243
11244 #. type: TP
11245 #: build/C/man3/printf.3:802 build/C/man3/scanf.3:510
11246 #, no-wrap
11247 msgid "B<n>"
11248 msgstr "B<n>"
11249
11250 #. type: Plain text
11251 #: build/C/man3/printf.3:813
11252 msgid ""
11253 "The number of characters written so far is stored into the integer pointed "
11254 "to by the corresponding argument.  That argument shall be an I<int\\ *>, or "
11255 "variant whose size matches the (optionally)  supplied integer length "
11256 "modifier.  No argument is converted.  The behavior is undefined if the "
11257 "conversion specification includes any flags, a field width, or a precision."
11258 msgstr ""
11259 "これまでに書き込まれた文字数が対応する引き数が指す整数に格納される。 この引き"
11260 "数は I<int\\ *> 系でなければならず、そのサイズは指定された整数の長さ修飾子 "
11261 "(省略可能) と一致していなければならない。 引き数の変換は行われない。 変換指定"
11262 "にフラグ、フィールド幅、精度に含まれていた場合の動作は不定である。"
11263
11264 #. type: TP
11265 #: build/C/man3/printf.3:813
11266 #, no-wrap
11267 msgid "B<m>"
11268 msgstr "B<m>"
11269
11270 #. type: Plain text
11271 #: build/C/man3/printf.3:819
11272 msgid ""
11273 "(Glibc extension.)  Print output of I<strerror(errno)>.  No argument is "
11274 "required."
11275 msgstr ""
11276 "(glibc での拡張)  I<strerror(errno)> の出力を表示する。引き数は必要ない。"
11277
11278 #. type: TP
11279 #: build/C/man3/printf.3:819 build/C/man3/scanf.3:377
11280 #, no-wrap
11281 msgid "B<%>"
11282 msgstr "B<%>"
11283
11284 #. type: Plain text
11285 #: build/C/man3/printf.3:825
11286 msgid ""
11287 "A \\(aq%\\(aq is written.  No argument is converted.  The complete "
11288 "conversion specification is \\(aq%%\\(aq."
11289 msgstr ""
11290 "\\(aq%\\(aq 文字を出力する。変換される引き数は無い。 変換指定全体を書くと \"%"
11291 "%\" となる。"
11292
11293 #. type: Plain text
11294 #: build/C/man3/printf.3:840
11295 msgid ""
11296 "The B<fprintf>(), B<printf>(), B<sprintf>(), B<vprintf>(), B<vfprintf>(), "
11297 "and B<vsprintf>()  functions conform to C89 and C99.  The B<snprintf>()  and "
11298 "B<vsnprintf>()  functions conform to C99."
11299 msgstr ""
11300 "B<fprintf>(), B<printf>(), B<sprintf>(), B<vprintf>(), B<vfprintf>(), "
11301 "B<vsprintf>()  関数は、C89 と C99 に準拠している。 B<snprintf>()  と "
11302 "B<vsnprintf>()  は C99 に準拠している。"
11303
11304 #.  .PP
11305 #.  Linux libc4 knows about the five C standard flags.
11306 #.  It knows about the length modifiers \fBh\fP, \fBl\fP, \fBL\fP,
11307 #.  and the conversions
11308 #.  \fBc\fP, \fBd\fP, \fBe\fP, \fBE\fP, \fBf\fP, \fBF\fP,
11309 #.  \fBg\fP, \fBG\fP, \fBi\fP, \fBn\fP, \fBo\fP, \fBp\fP,
11310 #.  \fBs\fP, \fBu\fP, \fBx\fP, and \fBX\fP,
11311 #.  where \fBF\fP is a synonym for \fBf\fP.
11312 #.  Additionally, it accepts \fBD\fP, \fBO\fP, and \fBU\fP as synonyms
11313 #.  for \fBld\fP, \fBlo\fP, and \fBlu\fP.
11314 #.  (This is bad, and caused serious bugs later, when
11315 #.  support for \fB%D\fP disappeared.)
11316 #.  No locale-dependent radix character,
11317 #.  no thousands' separator, no NaN or infinity, no "%m$" and "*m$".
11318 #.  .PP
11319 #.  Linux libc5 knows about the five C standard flags and the \(aq flag,
11320 #.  locale, "%m$" and "*m$".
11321 #.  It knows about the length modifiers \fBh\fP, \fBl\fP, \fBL\fP,
11322 #.  \fBZ\fP, and \fBq\fP, but accepts \fBL\fP and \fBq\fP
11323 #.  both for \fIlong double\fP and for \fIlong long int\fP (this is a bug).
11324 #.  It no longer recognizes \fBF\fP, \fBD\fP, \fBO\fP, and \fBU\fP,
11325 #.  but adds the conversion character
11326 #.  .BR m ,
11327 #.  which outputs
11328 #.  .IR strerror(errno) .
11329 #.  .PP
11330 #.  glibc 2.0 adds conversion characters \fBC\fP and \fBS\fP.
11331 #. type: Plain text
11332 #: build/C/man3/printf.3:883
11333 msgid ""
11334 "Concerning the return value of B<snprintf>(), SUSv2 and C99 contradict each "
11335 "other: when B<snprintf>()  is called with I<size>=0 then SUSv2 stipulates an "
11336 "unspecified return value less than 1, while C99 allows I<str> to be NULL in "
11337 "this case, and gives the return value (as always)  as the number of "
11338 "characters that would have been written in case the output string has been "
11339 "large enough.  SUSv3 and later align their specification of B<snprintf>()  "
11340 "with C99."
11341 msgstr ""
11342 "B<snprintf>()  の返り値を見ると、 SUSv2 と C99 標準は互いに矛盾している。 "
11343 "SUSv2 では、 B<snprintf>()  が I<size>=0 で呼び出された場合、 1 未満の値を何"
11344 "か返り値とするように規定している。 一方 C99 では、このような場合 I<str> を "
11345 "NULL とし、返り値として (通常通り) 出力バッファが十分な大きさが あった場合に"
11346 "出力されるであろう文字数を返す。 SUSv3 やそれ以降では C99 の B<snprintf>() の"
11347 "規定にあわせたものとなっている。"
11348
11349 #. type: Plain text
11350 #: build/C/man3/printf.3:886
11351 msgid ""
11352 "glibc 2.1 adds length modifiers B<hh>, B<j>, B<t>, and B<z> and conversion "
11353 "characters B<a> and B<A>."
11354 msgstr ""
11355 "glibc 2.1 では、長さ修飾子 B<hh>, B<j>, B<t>, B<z> と変換文字 B<a>, B<A> が追"
11356 "加された。"
11357
11358 #. type: Plain text
11359 #: build/C/man3/printf.3:889
11360 msgid ""
11361 "glibc 2.2 adds the conversion character B<F> with C99 semantics, and the "
11362 "flag character B<I>."
11363 msgstr ""
11364 "glibc 2.2 では、 C99 で規定された意味での変換文字 B<F> と フラグ文字 B<I> が"
11365 "追加された。"
11366
11367 #. type: Plain text
11368 #: build/C/man3/printf.3:891
11369 msgid "Some programs imprudently rely on code such as the following"
11370 msgstr ""
11371 "テキストを I<buf> に追加するのに、軽率にも次のようなコードを使っているプログ"
11372 "ラムがある。"
11373
11374 #. type: Plain text
11375 #: build/C/man3/printf.3:893
11376 #, no-wrap
11377 msgid "    sprintf(buf, \"%s some further text\", buf);\n"
11378 msgstr "    sprintf(buf, \"%s some further text\", buf);\n"
11379
11380 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=7075
11381 #. type: Plain text
11382 #: build/C/man3/printf.3:909
11383 msgid ""
11384 "to append text to I<buf>.  However, the standards explicitly note that the "
11385 "results are undefined if source and destination buffers overlap when calling "
11386 "B<sprintf>(), B<snprintf>(), B<vsprintf>(), and B<vsnprintf>().  Depending "
11387 "on the version of B<gcc>(1)  used, and the compiler options employed, calls "
11388 "such as the above will B<not> produce the expected results."
11389 msgstr ""
11390 "しかしながら、標準規格では、 B<sprintf>(), B<snprintf>(), B<vsprintf>(), "
11391 "B<vsnprintf>()  の呼び出しにおいて、コピー元とコピー先のバッファが重なってい"
11392 "た場合の 結果は不定である、と明記されている。 使用する B<gcc>(1)  のバージョ"
11393 "ンや指定したコンパイラのオプション次第では、 上記のような呼び出しで、期待した"
11394 "結果が得られ「ない」ことがある。"
11395
11396 #.  .SH HISTORY
11397 #.  UNIX V7 defines the three routines
11398 #.  .BR printf (),
11399 #.  .BR fprintf (),
11400 #.  .BR sprintf (),
11401 #.  and has the flag \-, the width or precision *, the length modifier l,
11402 #.  and the conversions doxfegcsu, and also D,O,U,X as synonyms for ld,lo,lu,lx.
11403 #.  This is still true for 2.9.1BSD, but 2.10BSD has the flags
11404 #.  #, + and <space> and no longer mentions D,O,U,X.
11405 #.  2.11BSD has
11406 #.  .BR vprintf (),
11407 #.  .BR vfprintf (),
11408 #.  .BR vsprintf (),
11409 #.  and warns not to use D,O,U,X.
11410 #.  4.3BSD Reno has the flag 0, the length modifiers h and L,
11411 #.  and the conversions n, p, E, G, X (with current meaning)
11412 #.  and deprecates D,O,U.
11413 #.  4.4BSD introduces the functions
11414 #.  .BR snprintf ()
11415 #.  and
11416 #.  .BR vsnprintf (),
11417 #.  and the length modifier q.
11418 #.  FreeBSD also has functions
11419 #.  .BR asprintf ()
11420 #.  and
11421 #.  .BR vasprintf (),
11422 #.  that allocate a buffer large enough for
11423 #.  .BR sprintf ().
11424 #.  In glibc there are functions
11425 #.  .BR dprintf ()
11426 #.  and
11427 #.  .BR vdprintf ()
11428 #.  that print to a file descriptor instead of a stream.
11429 #. type: Plain text
11430 #: build/C/man3/printf.3:951
11431 msgid ""
11432 "The glibc implementation of the functions B<snprintf>()  and B<vsnprintf>()  "
11433 "conforms to the C99 standard, that is, behaves as described above, since "
11434 "glibc version 2.1.  Until glibc 2.0.6, they would return -1 when the output "
11435 "was truncated."
11436 msgstr ""
11437 "glibc の B<snprintf>()  と B<vsnprintf>()  の実装は、バージョン 2.1 以降は "
11438 "C99 標準に準拠しており、 上記の通りの動作をする。 glibc 2.0.6 までは、出力が"
11439 "切り詰められた場合は -1 を返す。"
11440
11441 #.  .PP
11442 #.  Linux libc4.[45] does not have a
11443 #.  .BR snprintf (),
11444 #.  but provides a libbsd that contains an
11445 #.  .BR snprintf ()
11446 #.  equivalent to
11447 #.  .BR sprintf (),
11448 #.  that is, one that ignores the
11449 #.  .I size
11450 #.  argument.
11451 #.  Thus, the use of
11452 #.  .BR snprintf ()
11453 #.  with early libc4 leads to serious security problems.
11454 #. type: Plain text
11455 #: build/C/man3/printf.3:981
11456 msgid ""
11457 "Because B<sprintf>()  and B<vsprintf>()  assume an arbitrarily long string, "
11458 "callers must be careful not to overflow the actual space; this is often "
11459 "impossible to assure.  Note that the length of the strings produced is "
11460 "locale-dependent and difficult to predict.  Use B<snprintf>()  and "
11461 "B<vsnprintf>()  instead (or B<asprintf>(3)  and B<vasprintf>(3))."
11462 msgstr ""
11463 "B<sprintf>()  と B<vsprintf>()  は勝手に十分に長い文字列領域があると仮定する"
11464 "ので、呼び出し側は 実際の領域からあふれないように注意しなければならない。 し"
11465 "かし、これを保証することが不可能な場合が多い。 生成される文字列の長さはロケー"
11466 "ル依存であり、予測が難しいことに注意。 代わりに B<snprintf>()  と "
11467 "B<vsnprintf>()  (または B<asprintf>(3)  と B<vasprintf>(3))  を使うこと。"
11468
11469 #.  .PP
11470 #.  Some floating-point conversions under early libc4
11471 #.  caused memory leaks.
11472 #. type: Plain text
11473 #: build/C/man3/printf.3:995
11474 msgid ""
11475 "Code such as B<printf(>I<foo>B<);> often indicates a bug, since I<foo> may "
11476 "contain a % character.  If I<foo> comes from untrusted user input, it may "
11477 "contain B<%n>, causing the B<printf>()  call to write to memory and creating "
11478 "a security hole."
11479 msgstr ""
11480 "B<printf(>I<foo>B<);> のようなコードはしばしばバグを引き起こす。 なぜなら "
11481 "I<foo> に % 文字が含まれてるかもしれないからである。 I<foo> が信頼できない"
11482 "ユーザー入力から作られている場合には、 その中に B<%n> が含まれていることがあ"
11483 "り、 B<printf>()  呼び出し時にメモリへの書き込みが起こり、 セキュリティーホー"
11484 "ルを作ることになるかもしれない。"
11485
11486 #. type: Plain text
11487 #: build/C/man3/printf.3:999
11488 msgid "To print I<Pi> to five decimal places:"
11489 msgstr "I<Pi> を 5 桁で出力する。"
11490
11491 #. type: Plain text
11492 #: build/C/man3/printf.3:1005
11493 #, no-wrap
11494 msgid ""
11495 "#include E<lt>math.hE<gt>\n"
11496 "#include E<lt>stdio.hE<gt>\n"
11497 "fprintf(stdout, \"pi = %.5f\\en\", 4 * atan(1.0));\n"
11498 msgstr ""
11499 "#include E<lt>math.hE<gt>\n"
11500 "#include E<lt>stdio.hE<gt>\n"
11501 "fprintf(stdout, \"pi = %.5f\\en\", 4 * atan(1.0));\n"
11502
11503 #. type: Plain text
11504 #: build/C/man3/printf.3:1014
11505 msgid ""
11506 "To print a date and time in the form \"Sunday, July 3, 10:02\", where "
11507 "I<weekday> and I<month> are pointers to strings:"
11508 msgstr ""
11509 "日付と時間を \"Sunday, July 3, 10:02\" の形式で出力する。 (I<weekday> と "
11510 "I<month> は文字列へのポインタである)"
11511
11512 #. type: Plain text
11513 #: build/C/man3/printf.3:1020
11514 #, no-wrap
11515 msgid ""
11516 "#include E<lt>stdio.hE<gt>\n"
11517 "fprintf(stdout, \"%s, %s %d, %.2d:%.2d\\en\",\n"
11518 "        weekday, month, day, hour, min);\n"
11519 msgstr ""
11520 "#include E<lt>stdio.hE<gt>\n"
11521 "fprintf(stdout, \"%s, %s %d, %.2d:%.2d\\en\",\n"
11522 "\tweekday, month, day, hour, min);\n"
11523
11524 #. type: Plain text
11525 #: build/C/man3/printf.3:1026
11526 msgid ""
11527 "Many countries use the day-month-year order.  Hence, an internationalized "
11528 "version must be able to print the arguments in an order specified by the "
11529 "format:"
11530 msgstr ""
11531 "日 - 月 - 年 の順序で表示を行う国も多い。 従って、国際版では書式で指定された"
11532 "順番で 引き数を表示できなければならない。"
11533
11534 #. type: Plain text
11535 #: build/C/man3/printf.3:1032
11536 #, no-wrap
11537 msgid ""
11538 "#include E<lt>stdio.hE<gt>\n"
11539 "fprintf(stdout, format,\n"
11540 "        weekday, month, day, hour, min);\n"
11541 msgstr ""
11542 "#include E<lt>stdio.hE<gt>\n"
11543 "fprintf(stdout, format,\n"
11544 "\tweekday, month, day, hour, min);\n"
11545
11546 #. type: Plain text
11547 #: build/C/man3/printf.3:1039
11548 msgid ""
11549 "where I<format> depends on locale, and may permute the arguments.  With the "
11550 "value:"
11551 msgstr ""
11552 "I<format> はロケールに依存しており、引き数の順番を変えることもできる。 "
11553 "I<format> が"
11554
11555 #. type: Plain text
11556 #: build/C/man3/printf.3:1043
11557 #, no-wrap
11558 msgid "\"%1$s, %3$d. %2$s, %4$d:%5$.2d\\en\"\n"
11559 msgstr "\"%1$s, %3$d. %2$s, %4$d:%5$.2d\\en\"\n"
11560
11561 #. type: Plain text
11562 #: build/C/man3/printf.3:1047
11563 msgid "one might obtain \"Sonntag, 3. Juli, 10:02\"."
11564 msgstr "であれば、 \"Sonntag, 3. Juli, 10:02\" という結果になる。"
11565
11566 #. type: Plain text
11567 #: build/C/man3/printf.3:1050
11568 msgid ""
11569 "To allocate a sufficiently large string and print into it (code correct for "
11570 "both glibc 2.0 and glibc 2.1):"
11571 msgstr ""
11572 "十分に大きな文字列領域を確保して、そこにメッセージを格納するには (glibc 2.0 "
11573 "と glibc 2.1 の両方で正しく動作するコード):"
11574
11575 #. type: Plain text
11576 #: build/C/man3/printf.3:1055
11577 #, no-wrap
11578 msgid ""
11579 "#include E<lt>stdio.hE<gt>\n"
11580 "#include E<lt>stdlib.hE<gt>\n"
11581 "#include E<lt>stdarg.hE<gt>\n"
11582 msgstr ""
11583 "#include E<lt>stdio.hE<gt>\n"
11584 "#include E<lt>stdlib.hE<gt>\n"
11585 "#include E<lt>stdarg.hE<gt>\n"
11586
11587 #. type: Plain text
11588 #: build/C/man3/printf.3:1063
11589 #, no-wrap
11590 msgid ""
11591 "char *\n"
11592 "make_message(const char *fmt, ...)\n"
11593 "{\n"
11594 "    int n;\n"
11595 "    int size = 100;     /* Guess we need no more than 100 bytes */\n"
11596 "    char *p, *np;\n"
11597 "    va_list ap;\n"
11598 msgstr ""
11599 "char *\n"
11600 "make_message(const char *fmt, ...)\n"
11601 "{\n"
11602 "    int n;\n"
11603 "    int size = 100;     /* Guess we need no more than 100 bytes */\n"
11604 "    char *p, *np;\n"
11605 "    va_list ap;\n"
11606
11607 #. type: Plain text
11608 #: build/C/man3/printf.3:1067
11609 #, no-wrap
11610 msgid ""
11611 "    p = malloc(size);\n"
11612 "    if (p == NULL)\n"
11613 "        return NULL;\n"
11614 msgstr ""
11615 "    p = malloc(size);\n"
11616 "    if (p == NULL)\n"
11617 "        return NULL;\n"
11618
11619 #. type: Plain text
11620 #: build/C/man3/printf.3:1069
11621 #, no-wrap
11622 msgid "    while (1) {\n"
11623 msgstr "    while (1) {\n"
11624
11625 #. type: Plain text
11626 #: build/C/man3/printf.3:1071
11627 #, no-wrap
11628 msgid "        /* Try to print in the allocated space */\n"
11629 msgstr "        /* Try to print in the allocated space */\n"
11630
11631 #. type: Plain text
11632 #: build/C/man3/printf.3:1075
11633 #, no-wrap
11634 msgid ""
11635 "        va_start(ap, fmt);\n"
11636 "        n = vsnprintf(p, size, fmt, ap);\n"
11637 "        va_end(ap);\n"
11638 msgstr ""
11639 "        va_start(ap, fmt);\n"
11640 "        n = vsnprintf(p, size, fmt, ap);\n"
11641 "        va_end(ap);\n"
11642
11643 #. type: Plain text
11644 #: build/C/man3/printf.3:1077
11645 #, no-wrap
11646 msgid "        /* Check error code */\n"
11647 msgstr "        /* Check error code */\n"
11648
11649 #. type: Plain text
11650 #: build/C/man3/printf.3:1082
11651 #, no-wrap
11652 msgid ""
11653 "        if (n E<lt> 0) {\n"
11654 "            free(p);\n"
11655 "            return NULL;\n"
11656 "        }\n"
11657 msgstr ""
11658 "        if (n E<lt> 0) {\n"
11659 "            free(p);\n"
11660 "            return NULL;\n"
11661 "        }\n"
11662
11663 #. type: Plain text
11664 #: build/C/man3/printf.3:1084
11665 #, no-wrap
11666 msgid "        /* If that worked, return the string */\n"
11667 msgstr "        /* If that worked, return the string */\n"
11668
11669 #. type: Plain text
11670 #: build/C/man3/printf.3:1087
11671 #, no-wrap
11672 msgid ""
11673 "        if (n E<lt> size)\n"
11674 "            return p;\n"
11675 msgstr ""
11676 "        if (n E<lt> size)\n"
11677 "            return p;\n"
11678
11679 #. type: Plain text
11680 #: build/C/man3/printf.3:1089
11681 #, no-wrap
11682 msgid "        /* Else try again with more space */\n"
11683 msgstr "        /* Else try again with more space */\n"
11684
11685 #. type: Plain text
11686 #: build/C/man3/printf.3:1091
11687 #, no-wrap
11688 msgid "        size = n + 1;       /* Precisely what is needed */\n"
11689 msgstr "        size = n + 1;       /* Precisely what is needed */\n"
11690
11691 #. type: Plain text
11692 #: build/C/man3/printf.3:1102
11693 #, no-wrap
11694 msgid ""
11695 "        np = realloc(p, size);\n"
11696 "        if (np == NULL) {\n"
11697 "            free(p);\n"
11698 "            return NULL;\n"
11699 "        } else {\n"
11700 "            p = np;\n"
11701 "        }\n"
11702 "    }\n"
11703 "}\n"
11704 msgstr ""
11705 "        np = realloc(p, size);\n"
11706 "        if (np == NULL) {\n"
11707 "            free(p);\n"
11708 "            return NULL;\n"
11709 "        } else {\n"
11710 "            p = np;\n"
11711 "        }\n"
11712 "    }\n"
11713 "}\n"
11714
11715 #. type: Plain text
11716 #: build/C/man3/printf.3:1106
11717 msgid ""
11718 "If truncation occurs in glibc versions prior to 2.0.6, this is treated as an "
11719 "error instead of being handled gracefully."
11720 msgstr ""
11721 "バージョン 2.0.6 より前の glibc で切り詰めが起こった場合、切り詰めは適切に処"
11722 "理されず、エラーとして扱われる。"
11723
11724 #. type: Plain text
11725 #: build/C/man3/printf.3:1115
11726 msgid ""
11727 "B<printf>(1), B<asprintf>(3), B<dprintf>(3), B<scanf>(3), B<setlocale>(3), "
11728 "B<wcrtomb>(3), B<wprintf>(3), B<locale>(5)"
11729 msgstr ""
11730 "B<printf>(1), B<asprintf>(3), B<dprintf>(3), B<scanf>(3), B<setlocale>(3), "
11731 "B<wcrtomb>(3), B<wprintf>(3), B<locale>(5)"
11732
11733 #. type: TH
11734 #: build/C/man3/puts.3:26
11735 #, no-wrap
11736 msgid "PUTS"
11737 msgstr "PUTS"
11738
11739 #. type: TH
11740 #: build/C/man3/puts.3:26 build/C/man3/scanf.3:52
11741 #, no-wrap
11742 msgid "2014-01-11"
11743 msgstr "2014-01-11"
11744
11745 #. type: Plain text
11746 #: build/C/man3/puts.3:29
11747 msgid "fputc, fputs, putc, putchar, puts - output of characters and strings"
11748 msgstr "fputc, fputs, putc, putchar, puts - 文字と文字列の出力"
11749
11750 #. type: Plain text
11751 #: build/C/man3/puts.3:34
11752 #, no-wrap
11753 msgid "B<int fputc(int >I<c>B<, FILE *>I<stream>B<);>\n"
11754 msgstr "B<int fputc(int >I<c>B<, FILE *>I<stream>B<);>\n"
11755
11756 #. type: Plain text
11757 #: build/C/man3/puts.3:36
11758 #, no-wrap
11759 msgid "B<int fputs(const char *>I<s>B<, FILE *>I<stream>B<);>\n"
11760 msgstr "B<int fputs(const char *>I<s>B<, FILE *>I<stream>B<);>\n"
11761
11762 #. type: Plain text
11763 #: build/C/man3/puts.3:38
11764 #, no-wrap
11765 msgid "B<int putc(int >I<c>B<, FILE *>I<stream>B<);>\n"
11766 msgstr "B<int putc(int >I<c>B<, FILE *>I<stream>B<);>\n"
11767
11768 #. type: Plain text
11769 #: build/C/man3/puts.3:40
11770 #, no-wrap
11771 msgid "B<int putchar(int >I<c>B<);>\n"
11772 msgstr "B<int putchar(int >I<c>B<);>\n"
11773
11774 #. type: Plain text
11775 #: build/C/man3/puts.3:42
11776 #, no-wrap
11777 msgid "B<int puts(const char *>I<s>B<);>\n"
11778 msgstr "B<int puts(const char *>I<s>B<);>\n"
11779
11780 #. type: Plain text
11781 #: build/C/man3/puts.3:51
11782 msgid ""
11783 "B<fputc>()  writes the character I<c>, cast to an I<unsigned char>, to "
11784 "I<stream>."
11785 msgstr ""
11786 "B<fputc>()  は、キャラクタ I<c> を I<unsigned char> にキャストし、 I<stream> "
11787 "に書き込む。"
11788
11789 #. type: Plain text
11790 #: build/C/man3/puts.3:58
11791 msgid ""
11792 "B<fputs>()  writes the string I<s> to I<stream>, without its terminating "
11793 "null byte (\\(aq\\e0\\(aq)."
11794 msgstr ""
11795 "B<fputs>()  は、文字列 I<s> を I<stream> に書き込む。 文字列終端のヌルバイト "
11796 "(\\(aq\\e0\\(aq) は出力しない。"
11797
11798 #. type: Plain text
11799 #: build/C/man3/puts.3:65
11800 msgid ""
11801 "B<putc>()  is equivalent to B<fputc>()  except that it may be implemented as "
11802 "a macro which evaluates I<stream> more than once."
11803 msgstr ""
11804 "B<putc>()  は、 I<stream> を一度以上評価するマクロとして実装されているかも知"
11805 "れないという点を除き、 B<fputc>()  と同じである。"
11806
11807 #. type: Plain text
11808 #: build/C/man3/puts.3:69
11809 msgid "B<putchar(>I<c>B<)> is equivalent to B<putc(>I<c>B<, >I<stdout>B<).>"
11810 msgstr "B<putchar(>I<c>B<)> は、 B<putc(>I<c>B<,>I<stdout>B<)> と同じである。"
11811
11812 #. type: Plain text
11813 #: build/C/man3/puts.3:76
11814 msgid "B<puts>()  writes the string I<s> and a trailing newline to I<stdout>."
11815 msgstr "B<puts>()  は、文字列 I<s> と改行を I<stdout> に書き込む。"
11816
11817 #. type: Plain text
11818 #: build/C/man3/puts.3:81
11819 msgid ""
11820 "Calls to the functions described here can be mixed with each other and with "
11821 "calls to other output functions from the I<stdio> library for the same "
11822 "output stream."
11823 msgstr ""
11824 "ここで説明された関数はお互いに混在して使用することができ、また、 I<stdio> ラ"
11825 "イブラリに含まれる他の出力関数を同じ出力ストリームに対して 呼び出す事が出来"
11826 "る。"
11827
11828 #. type: Plain text
11829 #: build/C/man3/puts.3:96
11830 msgid ""
11831 "B<fputc>(), B<putc>()  and B<putchar>()  return the character written as an "
11832 "I<unsigned char> cast to an I<int> or B<EOF> on error."
11833 msgstr ""
11834 "B<fputc>(), B<putc>(), B<putchar>()  は I<unsigned char> として書き込まれた文"
11835 "字を I<int> にキャストして返す。 エラーが発生した場合は B<EOF> を返す。"
11836
11837 #. type: Plain text
11838 #: build/C/man3/puts.3:103
11839 msgid ""
11840 "B<puts>()  and B<fputs>()  return a nonnegative number on success, or B<EOF> "
11841 "on error."
11842 msgstr ""
11843 "B<puts>()  と B<fputs>()  は、成功すると負ではない数を、エラーが発生した場合"
11844 "は B<EOF> を返す。"
11845
11846 #. type: Plain text
11847 #: build/C/man3/puts.3:112
11848 msgid ""
11849 "It is not advisable to mix calls to output functions from the I<stdio> "
11850 "library with low-level calls to B<write>(2)  for the file descriptor "
11851 "associated with the same output stream; the results will be undefined and "
11852 "very probably not what you want."
11853 msgstr ""
11854 "I<stdio> ライブラリに含まれる出力関数と、同じ出力ストリームに結びつけられた "
11855 "ファイルディスクリプタに対する B<write>(2)  の低レベル呼び出しを混在して 使用"
11856 "することは賢明ではない。 その結果は定義されておらず、望む結果が得られない可能"
11857 "性が高い。"
11858
11859 #. type: Plain text
11860 #: build/C/man3/puts.3:124
11861 msgid ""
11862 "B<write>(2), B<ferror>(3), B<fgets>(3), B<fopen>(3), B<fputwc>(3), "
11863 "B<fputws>(3), B<fseek>(3), B<fwrite>(3), B<putwchar>(3), B<scanf>(3), "
11864 "B<unlocked_stdio>(3)"
11865 msgstr ""
11866 "B<write>(2), B<ferror>(3), B<fgets>(3), B<fopen>(3), B<fputwc>(3), "
11867 "B<fputws>(3), B<fseek>(3), B<fwrite>(3), B<putwchar>(3), B<scanf>(3), "
11868 "B<unlocked_stdio>(3)"
11869
11870 #. type: TH
11871 #: build/C/man2/read.2:35
11872 #, no-wrap
11873 msgid "READ"
11874 msgstr "READ"
11875
11876 #. type: TH
11877 #: build/C/man2/read.2:35 build/C/man2/write.2:39
11878 #, no-wrap
11879 msgid "2014-05-04"
11880 msgstr "2014-05-04"
11881
11882 #. type: Plain text
11883 #: build/C/man2/read.2:38
11884 msgid "read - read from a file descriptor"
11885 msgstr "read - ファイルディスクリプタから読み込む"
11886
11887 #. type: Plain text
11888 #: build/C/man2/read.2:43
11889 #, no-wrap
11890 msgid "B<ssize_t read(int >I<fd>B<, void *>I<buf>B<, size_t >I<count>B<);>\n"
11891 msgstr "B<ssize_t read(int >I<fd>B<, void *>I<buf>B<, size_t >I<count>B<);>\n"
11892
11893 #. type: Plain text
11894 #: build/C/man2/read.2:52
11895 msgid ""
11896 "B<read>()  attempts to read up to I<count> bytes from file descriptor I<fd> "
11897 "into the buffer starting at I<buf>."
11898 msgstr ""
11899 "B<read>()  はファイルディスクリプタ (file descriptor)  I<fd> から最大 "
11900 "I<count> バイトを I<buf> で始まるバッファーへ読み込もうとする。"
11901
11902 #. type: Plain text
11903 #: build/C/man2/read.2:60
11904 msgid ""
11905 "On files that support seeking, the read operation commences at the current "
11906 "file offset, and the file offset is incremented by the number of bytes "
11907 "read.  If the current file offset is at or past the end of file, no bytes "
11908 "are read, and B<read>()  returns zero."
11909 msgstr ""
11910 "seek に対応しているファイルでは、read は現在のファイルオフセットから行われ、"
11911 "ファイルオフセットは読み込んだバイト数分だけ進められる。現在のファイルオフ"
11912 "セットがファイル末尾かそれより先の場合は、読み出しは行われず、 B<read>() は "
11913 "0 を返す。"
11914
11915 #. type: Plain text
11916 #: build/C/man2/read.2:75
11917 msgid ""
11918 "If I<count> is zero, B<read>()  I<may> detect the errors described below.  "
11919 "In the absence of any errors, or if B<read>()  does not check for errors, a "
11920 "B<read>()  with a I<count> of 0 returns zero and has no other effects."
11921 msgstr ""
11922 "I<count> が 0 の場合、 B<read>() は以下で説明するエラーを検出するI<場合がある"
11923 ">。 どのエラーもなかった場合、もしくは B<read>() がエラーのチェックを行わない"
11924 "場合、 I<count> が 0 で呼び出された B<read>() は 0 を返し、何も行わない。"
11925
11926 #. type: Plain text
11927 #: build/C/man2/read.2:81
11928 msgid "If I<count> is greater than B<SSIZE_MAX>, the result is unspecified."
11929 msgstr "I<count> が B<SSIZE_MAX> より大きければ、結果は規定できない。"
11930
11931 #. type: Plain text
11932 #: build/C/man2/read.2:95
11933 msgid ""
11934 "On success, the number of bytes read is returned (zero indicates end of "
11935 "file), and the file position is advanced by this number.  It is not an error "
11936 "if this number is smaller than the number of bytes requested; this may "
11937 "happen for example because fewer bytes are actually available right now "
11938 "(maybe because we were close to end-of-file, or because we are reading from "
11939 "a pipe, or from a terminal), or because B<read>()  was interrupted by a "
11940 "signal.  On error, -1 is returned, and I<errno> is set appropriately.  In "
11941 "this case, it is left unspecified whether the file position (if any) changes."
11942 msgstr ""
11943 "成功した場合、読み込んだバイト数を返す (0 はファイルの終りを意味する)。 ファ"
11944 "イル位置はこの数だけ進められる。 この数が要求した数より小さかったとしてもエ"
11945 "ラーではない; 例えば今すぐには実際にそれだけの数しかない場合 (ファイルの最後"
11946 "に近いのかも しれないし、パイプ (pipe) や端末 (terminal) から読み込んでいるか"
11947 "もしれない) や B<read>()  がシグナル (signal) によって割り込まれた場合にこれ"
11948 "は起こりえる。 エラーの場合は、-1 が返され、 I<errno> が適切に設定される。こ"
11949 "の場合はファイル位置が変更されるかどうかは 不定である。"
11950
11951 #. type: TP
11952 #: build/C/man2/read.2:96 build/C/man3/scanf.3:548 build/C/man2/write.2:108
11953 #, no-wrap
11954 msgid "B<EAGAIN>"
11955 msgstr "B<EAGAIN>"
11956
11957 #. type: Plain text
11958 #: build/C/man2/read.2:103
11959 msgid ""
11960 "The file descriptor I<fd> refers to a file other than a socket and has been "
11961 "marked nonblocking (B<O_NONBLOCK>), and the read would block."
11962 msgstr ""
11963 "ファイルディスクリプタ I<fd> がソケット以外のファイルを参照していて、 非停止 "
11964 "(nonblocking) モード (B<O_NONBLOCK>)  に設定されており、読み込みを行うと停止"
11965 "する状況にある。"
11966
11967 #. type: TP
11968 #: build/C/man2/read.2:103 build/C/man2/write.2:115
11969 #, no-wrap
11970 msgid "B<EAGAIN> or B<EWOULDBLOCK>"
11971 msgstr "B<EAGAIN> または B<EWOULDBLOCK>"
11972
11973 #.  Actually EAGAIN on Linux
11974 #. type: Plain text
11975 #: build/C/man2/read.2:114
11976 msgid ""
11977 "The file descriptor I<fd> refers to a socket and has been marked nonblocking "
11978 "(B<O_NONBLOCK>), and the read would block.  POSIX.1-2001 allows either error "
11979 "to be returned for this case, and does not require these constants to have "
11980 "the same value, so a portable application should check for both "
11981 "possibilities."
11982 msgstr ""
11983 "ファイルディスクリプタ I<fd> がソケットを参照していて、非停止 (nonblocking) "
11984 "モード (B<O_NONBLOCK>)  に設定されており、読み込みを行うと停止する状況にあ"
11985 "る。 POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 これ"
11986 "ら 2 つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なア"
11987 "プリケーションでは、両方の可能性を 確認すべきである。"
11988
11989 #. type: Plain text
11990 #: build/C/man2/read.2:118
11991 msgid "I<fd> is not a valid file descriptor or is not open for reading."
11992 msgstr ""
11993 "I<fd> が有効なファイルディスクリプタでないか、読み込みのために オープン "
11994 "(open) されていない。"
11995
11996 #. type: Plain text
11997 #: build/C/man2/read.2:122 build/C/man2/write.2:145
11998 msgid "I<buf> is outside your accessible address space."
11999 msgstr "I<buf> がアクセス可能なアドレス空間の外にある。"
12000
12001 #. type: Plain text
12002 #: build/C/man2/read.2:126
12003 msgid ""
12004 "The call was interrupted by a signal before any data was read; see "
12005 "B<signal>(7)."
12006 msgstr ""
12007 "何のデータも読み込まないうちにシグナルに割り込まれた。 B<signal>(7)  参照。"
12008
12009 #. type: Plain text
12010 #: build/C/man2/read.2:137
12011 msgid ""
12012 "I<fd> is attached to an object which is unsuitable for reading; or the file "
12013 "was opened with the B<O_DIRECT> flag, and either the address specified in "
12014 "I<buf>, the value specified in I<count>, or the current file offset is not "
12015 "suitably aligned."
12016 msgstr ""
12017 "I<fd> は読み込みに適していないオブジェクトを参照している。 もしくは、ファイル"
12018 "が B<O_DIRECT> フラグを指定してオープンされているが、 I<buf> に指定されたアド"
12019 "レス、 I<count> に指定された値、 現在のファイルオフセットのいずれかの アライ"
12020 "ンメントが不適切である。"
12021
12022 #. type: Plain text
12023 #: build/C/man2/read.2:147
12024 msgid ""
12025 "I<fd> was created via a call to B<timerfd_create>(2)  and the wrong size "
12026 "buffer was given to B<read>(); see B<timerfd_create>(2)  for further "
12027 "information."
12028 msgstr ""
12029 "I<fd> が B<timerfd_create>(2)  の呼び出しで作成されたが、 B<read>()  に間違っ"
12030 "たサイズのバッファが渡された。 さらなる情報は B<timerfd_create>(2)  を参照の"
12031 "こと。"
12032
12033 #. type: Plain text
12034 #: build/C/man2/read.2:158
12035 msgid ""
12036 "I/O error.  This will happen for example when the process is in a background "
12037 "process group, tries to read from its controlling terminal, and either it is "
12038 "ignoring or blocking B<SIGTTIN> or its process group is orphaned.  It may "
12039 "also occur when there is a low-level I/O error while reading from a disk or "
12040 "tape."
12041 msgstr ""
12042 "I/O エラー。これは例えばプロセスがバックグランド・プロセスグループで、それを"
12043 "制御している端末から読み込もうとし、 B<SIGTTIN> が無視 (ignore) または禁止 "
12044 "(blocking) されている場合や、 そのプロセスグループが孤立 (orphan) している場"
12045 "合に起こる。 またディスクやテープを読んでいる時に低レベル I/O エラー が発生し"
12046 "た場合にも起こる。"
12047
12048 #. type: Plain text
12049 #: build/C/man2/read.2:162
12050 msgid "I<fd> refers to a directory."
12051 msgstr "I<fd> がディレクトリを参照している。"
12052
12053 #. type: Plain text
12054 #: build/C/man2/read.2:173
12055 msgid ""
12056 "Other errors may occur, depending on the object connected to I<fd>.  POSIX "
12057 "allows a B<read>()  that is interrupted after reading some data to return -1 "
12058 "(with I<errno> set to B<EINTR>)  or to return the number of bytes already "
12059 "read."
12060 msgstr ""
12061 "I<fd> が接続しているオブジェクトによっては他のエラーも起こりえる。 POSIX で"
12062 "は、 いくらかのデータを読んだ後に割り込みが起こった場合、 B<read>()  は "
12063 "(I<errno> に B<EINTR> を設定して) -1 を返してもよいし、 既に読み込んだバイト"
12064 "数を返してもよい。"
12065
12066 #. type: Plain text
12067 #: build/C/man2/read.2:187
12068 msgid ""
12069 "On NFS filesystems, reading small amounts of data will update the timestamp "
12070 "only the first time, subsequent calls may not do so.  This is caused by "
12071 "client side attribute caching, because most if not all NFS clients leave "
12072 "st_atime (last file access time)  updates to the server and client side "
12073 "reads satisfied from the client's cache will not cause st_atime updates on "
12074 "the server as there are no server side reads.  UNIX semantics can be "
12075 "obtained by disabling client side attribute caching, but in most situations "
12076 "this will substantially increase server load and decrease performance."
12077 msgstr ""
12078 "NFS において。少量のデータを読み込む場合、最初の時のみにタイム スタンプが更新"
12079 "され、続くコールでは更新されないだろう。 これはクライアント側で属性のキャッシ"
12080 "ングを行なうためである。 なぜならば、もし全ての NFS クライアントが st_atime "
12081 "(最終ファイルアクセス時刻)  の更新をサーバーに送らず、クライアント側でキャッ"
12082 "シュを読むことに満足して いれば、サーバー側での read は発生しないので "
12083 "st_atime の更新は行なわれからだ。 UNIX の方式では、クライアント側の属性の"
12084 "キャッシングを無効にすることで、 これを得ることができる。しかしほとんどの状況"
12085 "ではこれは続くサーバーの 負荷を増加させ、パフォーマンスの低下をもたらす。"
12086
12087 #. type: Plain text
12088 #: build/C/man2/read.2:190 build/C/man2/write.2:214
12089 msgid ""
12090 "According to POSIX.1-2008/SUSv4 Section XSI 2.9.7 (\"Thread Interactions "
12091 "with Regular File Operations\"):"
12092 msgstr ""
12093 "POSIX.1-2008/SUSv4 セクション XSI 2.9.7 (\"Thread Interactions with Regular "
12094 "File Operations\") によると、"
12095
12096 #. type: Plain text
12097 #: build/C/man2/read.2:195 build/C/man2/write.2:219
12098 msgid ""
12099 "All of the following functions shall be atomic with respect to each other in "
12100 "the effects specified in POSIX.1-2008 when they operate on regular files or "
12101 "symbolic links: ..."
12102 msgstr ""
12103 "以下のすべての関数では、 通常ファイルもしくはシンボリックリンクに対する操作で"
12104 "は POSIX.1-2008 で規定された効果が互いにアトミックに行われなければならな"
12105 "い: ..."
12106
12107 #
12108 #.  http://thread.gmane.org/gmane.linux.kernel/1649458
12109 #.     From: Michael Kerrisk (man-pages <mtk.manpages <at> gmail.com>
12110 #.     Subject: Update of file offset on write() etc. is non-atomic with I/O
12111 #.     Date: 2014-02-17 15:41:37 GMT
12112 #.     Newsgroups: gmane.linux.kernel, gmane.linux.file-systems
12113 #.  commit 9c225f2655e36a470c4f58dbbc99244c5fc7f2d4
12114 #.     Author: Linus Torvalds <torvalds@linux-foundation.org>
12115 #.     Date:   Mon Mar 3 09:36:58 2014 -0800
12116 #.         vfs: atomic f_pos accesses as per POSIX
12117 #. type: Plain text
12118 #: build/C/man2/read.2:226
12119 msgid ""
12120 "Among the APIs subsequently listed are B<read>()  and B<readv>(2).  And "
12121 "among the effects that should be atomic across threads (and processes)  are "
12122 "updates of the file offset.  However, on Linux before version 3.14, this was "
12123 "not the case: if two processes that share an open file description (see "
12124 "B<open>(2))  perform a B<read>()  (or B<readv>(2))  at the same time, then "
12125 "the I/O operations were not atomic with respect updating the file offset, "
12126 "with the result that the reads in the two processes might (incorrectly) "
12127 "overlap in the blocks of data that they obtained.  This problem was fixed in "
12128 "Linux 3.14."
12129 msgstr ""
12130 "この後に書かれている API の中に B<read>() と B<readv>(2) である。 スレッド"
12131 "(やプロセス) 間でアトミックに適用することが求められる効果の一つとして、 ファ"
12132 "イルオフセットの更新がある。 しかしながら、 バージョン 3.14 より前の Linux で"
12133 "は、 この限りではない。 オープンファイル記述 (open file description) を共有す"
12134 "る 2 つのプロセスが同時に B<read>() (や B<readv>(2)) を実行した場合、 この I/"
12135 "O 操作ではファイルオフセットの更新に関してはアトミックではなく、 2 つのプロセ"
12136 "スの read で取得されるデータブロックが (間違って) 重なる可能性がある。 この問"
12137 "題は Linux 3.14 で修正された。"
12138
12139 #. type: Plain text
12140 #: build/C/man2/read.2:239
12141 msgid ""
12142 "B<close>(2), B<fcntl>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), B<pread>(2), "
12143 "B<readdir>(2), B<readlink>(2), B<readv>(2), B<select>(2), B<write>(2), "
12144 "B<fread>(3)"
12145 msgstr ""
12146 "B<close>(2), B<fcntl>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), B<pread>(2), "
12147 "B<readdir>(2), B<readlink>(2), B<readv>(2), B<select>(2), B<write>(2), "
12148 "B<fread>(3)"
12149
12150 #. type: TH
12151 #: build/C/man2/readlink.2:44
12152 #, no-wrap
12153 msgid "READLINK"
12154 msgstr "READLINK"
12155
12156 #. type: TH
12157 #: build/C/man2/readlink.2:44 build/C/man2/readv.2:32
12158 #, no-wrap
12159 msgid "2014-10-15"
12160 msgstr "2014-10-15"
12161
12162 #. type: Plain text
12163 #: build/C/man2/readlink.2:47
12164 msgid "readlink, readlinkat - read value of a symbolic link"
12165 msgstr "readlink, readlinkat - シンボリックリンクの値を読む"
12166
12167 #. type: Plain text
12168 #: build/C/man2/readlink.2:53
12169 #, no-wrap
12170 msgid "B<ssize_t readlink(const char *>I<pathname>B<, char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
12171 msgstr "B<ssize_t readlink(const char *>I<pathname>B<, char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
12172
12173 #. type: Plain text
12174 #: build/C/man2/readlink.2:59
12175 #, no-wrap
12176 msgid ""
12177 "B<ssize_t readlinkat(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
12178 "B<                   char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
12179 msgstr ""
12180 "B<ssize_t readlinkat(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
12181 "B<                   char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
12182
12183 #. type: Plain text
12184 #: build/C/man2/readlink.2:68
12185 msgid "B<readlink>():"
12186 msgstr "B<readlink>():"
12187
12188 #. type: Plain text
12189 #: build/C/man2/readlink.2:71 build/C/man2/symlink.2:59
12190 msgid ""
12191 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12192 "_XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
12193 msgstr ""
12194 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12195 "_XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
12196
12197 #. type: Plain text
12198 #: build/C/man2/readlink.2:74
12199 msgid "B<readlinkat>():"
12200 msgstr "B<readlinkat>():"
12201
12202 #. type: Plain text
12203 #: build/C/man2/readlink.2:100
12204 msgid ""
12205 "B<readlink>()  places the contents of the symbolic link I<pathname> in the "
12206 "buffer I<buf>, which has size I<bufsiz>.  B<readlink>()  does not append a "
12207 "null byte to I<buf>.  It will truncate the contents (to a length of "
12208 "I<bufsiz> characters), in case the buffer is too small to hold all of the "
12209 "contents."
12210 msgstr ""
12211 "B<readlink>()  は I<pathname> で与えられたシンボリックリンクの内容を I<buf> "
12212 "バッファーへ格納する、 I<buf> のサイズは I<bufsiz> である。 B<readlink>()  は"
12213 "ヌルバイトを I<buf> に追加しない。 その内容全てを格納するのにバッファーが小さ"
12214 "過ぎる場合は、 (I<bufsiz> バイトの長さに) 内容を切り詰める。"
12215
12216 #. type: SS
12217 #: build/C/man2/readlink.2:100
12218 #, no-wrap
12219 msgid "readlinkat()"
12220 msgstr "readlinkat()"
12221
12222 #. type: Plain text
12223 #: build/C/man2/readlink.2:106
12224 msgid ""
12225 "The B<readlinkat>()  system call operates in exactly the same way as "
12226 "B<readlink>(), except for the differences described here."
12227 msgstr ""
12228 "B<readlinkat>() システムコールは B<readlink>() と全く同様に動作するが、以下で"
12229 "説明する点が異なる。"
12230
12231 #. type: Plain text
12232 #: build/C/man2/readlink.2:116
12233 msgid ""
12234 "If the pathname given in I<pathname> is relative, then it is interpreted "
12235 "relative to the directory referred to by the file descriptor I<dirfd> "
12236 "(rather than relative to the current working directory of the calling "
12237 "process, as is done by B<readlink>()  for a relative pathname)."
12238 msgstr ""
12239 "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
12240 "リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
12241 "(B<readlink>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
12242 "ワーキングディレクトリに対する相対パスではない)。"
12243
12244 #. type: Plain text
12245 #: build/C/man2/readlink.2:128
12246 msgid ""
12247 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
12248 "then I<pathname> is interpreted relative to the current working directory of "
12249 "the calling process (like B<readlink>())."
12250 msgstr ""
12251 "I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
12252 "の場合、 (B<readlink>() と同様に) I<pathname> は呼び出したプロセスのカレント"
12253 "ワーキングディレクトリに対する相対パスと解釈される。"
12254
12255 #.  commit 65cfc6722361570bfe255698d9cd4dccaf47570d
12256 #. type: Plain text
12257 #: build/C/man2/readlink.2:148
12258 msgid ""
12259 "Since Linux 2.6.39, I<pathname> can be an empty string, in which case the "
12260 "call operates on the symbolic link referred to by I<dirfd> (which should "
12261 "have been obtained using B<open>(2)  with the B<O_PATH> and B<O_NOFOLLOW> "
12262 "flags)."
12263 msgstr ""
12264 "Linux 2.6.39 以降では、 I<pathname> に空文字列を指定できる。 その場合、呼び出"
12265 "しは I<dirfd> が参照するシンボリックリンクに対して行われる (I<dirfd> はフラ"
12266 "グ B<O_PATH> と B<O_NOFOLLOW> を指定した B<open>(2) を使って取得すべきであ"
12267 "る)。"
12268
12269 #. type: Plain text
12270 #: build/C/man2/readlink.2:153
12271 msgid "See B<openat>(2)  for an explanation of the need for B<readlinkat>()."
12272 msgstr "B<readlinkat>() の必要性についての説明については B<openat>(2) を参照。"
12273
12274 #. type: Plain text
12275 #: build/C/man2/readlink.2:159
12276 msgid ""
12277 "On success, these calls return the number of bytes placed in I<buf>.  On "
12278 "error, -1 is returned and I<errno> is set to indicate the error."
12279 msgstr ""
12280 "成功すると、これらのシステムコールは I<buf> に格納されたバイト数を返す。 エ"
12281 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12282
12283 #. type: Plain text
12284 #: build/C/man2/readlink.2:165
12285 msgid ""
12286 "Search permission is denied for a component of the path prefix.  (See also "
12287 "B<path_resolution>(7).)"
12288 msgstr ""
12289 "パスのディレクトリ部分に検索許可が与えられていない (B<path_resolution>(7)  も"
12290 "参照すること)。"
12291
12292 #. type: Plain text
12293 #: build/C/man2/readlink.2:169
12294 msgid "I<buf> extends outside the process's allocated address space."
12295 msgstr "I<buf> がプロセスに割り当てられたアドレス空間の外を指している。"
12296
12297 #.  At the glibc level, bufsiz is unsigned, so this error can only occur
12298 #.  if bufsiz==0.  However, the in the kernel syscall, bufsiz is signed,
12299 #.  and this error can also occur if bufsiz < 0.
12300 #.  See: http://thread.gmane.org/gmane.linux.man/380
12301 #.  Subject: [patch 0/3] [RFC] kernel/glibc mismatch of "readlink" syscall?
12302 #. type: Plain text
12303 #: build/C/man2/readlink.2:178
12304 msgid "I<bufsiz> is not positive."
12305 msgstr "I<bufsiz> が正でない。"
12306
12307 #. type: Plain text
12308 #: build/C/man2/readlink.2:181
12309 msgid "The named file is not a symbolic link."
12310 msgstr "指定したファイルがシンボリックリンクでない。"
12311
12312 #. type: Plain text
12313 #: build/C/man2/readlink.2:184
12314 msgid "An I/O error occurred while reading from the filesystem."
12315 msgstr "ファイルシステムの読み込み中に I/O エラーが起こった。"
12316
12317 #. type: Plain text
12318 #: build/C/man2/readlink.2:187
12319 msgid "Too many symbolic links were encountered in translating the pathname."
12320 msgstr "パス名にシンボリックリンクが多すぎる。"
12321
12322 #. type: Plain text
12323 #: build/C/man2/readlink.2:190
12324 msgid "A pathname, or a component of a pathname, was too long."
12325 msgstr "パス名かパス名の一部分が長過ぎる。"
12326
12327 #. type: Plain text
12328 #: build/C/man2/readlink.2:193
12329 msgid "The named file does not exist."
12330 msgstr "その名前のファイルが存在しない。"
12331
12332 #. type: Plain text
12333 #: build/C/man2/readlink.2:199
12334 msgid "A component of the path prefix is not a directory."
12335 msgstr "パスのディレクトリ部分がディレクトリでない。"
12336
12337 #. type: Plain text
12338 #: build/C/man2/readlink.2:202
12339 msgid "The following additional errors can occur for B<readlinkat>():"
12340 msgstr "B<readlinkat>() では以下のエラーも発生する。"
12341
12342 #. type: Plain text
12343 #: build/C/man2/readlink.2:212 build/C/man2/unlink.2:269
12344 msgid ""
12345 "I<pathname> is relative and I<dirfd> is a file descriptor referring to a "
12346 "file other than a directory."
12347 msgstr ""
12348 "I<pathname> が相対パスで、 I<dirfd> がディレクトリ以外のファイルを参照してい"
12349 "るファイルディスクリプタである。"
12350
12351 #. type: Plain text
12352 #: build/C/man2/readlink.2:216
12353 msgid ""
12354 "B<readlinkat>()  was added to Linux in kernel 2.6.16; library support was "
12355 "added to glibc in version 2.4."
12356 msgstr ""
12357 "B<readlinkat>()  はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
12358 "ポートはバージョン 2.4 で glibc に追加された。"
12359
12360 #. type: Plain text
12361 #: build/C/man2/readlink.2:222
12362 msgid ""
12363 "B<readlink>(): 4.4BSD (B<readlink>()  first appeared in 4.2BSD), "
12364 "POSIX.1-2001, POSIX.1-2008."
12365 msgstr ""
12366 "4.4BSD (B<readlink>()  は 4.2BSD で初めて登場した), POSIX.1-2001, "
12367 "POSIX.1-2008."
12368
12369 #. type: Plain text
12370 #: build/C/man2/readlink.2:225
12371 msgid "B<readlinkat>(): POSIX.1-2008."
12372 msgstr "B<readlinkat>(): POSIX.1-2008."
12373
12374 #. type: Plain text
12375 #: build/C/man2/readlink.2:233
12376 msgid ""
12377 "In versions of glibc up to and including glibc 2.4, the return type of "
12378 "B<readlink>()  was declared as I<int>.  Nowadays, the return type is "
12379 "declared as I<ssize_t>, as (newly) required in POSIX.1-2001."
12380 msgstr ""
12381 "バージョン 2.4 以前の glibc (バージョン 2.4 を含む) では、 B<readlink>()  の"
12382 "返り値の型は I<int> で宣言されていた。現在では、返り値の型は I<ssize_t> であ"
12383 "る (返り値 I<ssize_t> は POSIX.1-2001 で (新たに) 必須となった)。"
12384
12385 #. type: Plain text
12386 #: build/C/man2/readlink.2:256
12387 msgid ""
12388 "Using a statically sized buffer might not provide enough room for the "
12389 "symbolic link contents.  The required size for the buffer can be obtained "
12390 "from the I<stat.st_size> value returned by a call to B<lstat>(2)  on the "
12391 "link.  However, the number of bytes written by B<readlink>()  and "
12392 "B<readlinkat>()  should be checked to make sure that the size of the "
12393 "symbolic link did not increase between the calls.  Dynamically allocating "
12394 "the buffer for B<readlink>()  and B<readlinkat>()  also addresses a common "
12395 "portability problem when using I<PATH_MAX> for the buffer size, as this "
12396 "constant is not guaranteed to be defined per POSIX if the system does not "
12397 "have such limit."
12398 msgstr ""
12399 "静的な大きさのバッファを使うと、 シンボリックリンクの内容を格納するのに十分な"
12400 "領域がない場合がある。 バッファに必要なサイズは、 そのシンボリックリンクに対"
12401 "して B<lstat>(2) の呼び出しで返される I<stat.st_size> の値から取得できる。 た"
12402 "だし、 B<readlink>() や B<readlinkat>() が書き込んだバイト数をチェックして、 "
12403 "シンボリックリンクのサイズが二つの呼び出しの間で増えていないことを確認すべき"
12404 "である。 B<readlink>() や B<readlinkat>() 用のバッファを動的に割り当てる方法"
12405 "でも、 バッファサイズとして I<PATH_MAX> を使用する場合に共通する移植性の問題"
12406 "を解決することができる。 なぜなら、POSIX では、 システムがそのような上限値を"
12407 "定義していない場合には、 I<PATH_MAX> が定義されることが保証されていないからで"
12408 "ある。"
12409
12410 #. type: Plain text
12411 #: build/C/man2/readlink.2:269
12412 msgid ""
12413 "On older kernels where B<readlinkat>()  is unavailable, the glibc wrapper "
12414 "function falls back to the use of B<readlink>().  When I<pathname> is a "
12415 "relative pathname, glibc constructs a pathname based on the symbolic link in "
12416 "I</proc/self/fd> that corresponds to the I<dirfd> argument."
12417 msgstr ""
12418 "B<readlinkat>() が利用できない古いカーネルでは、 glibc ラッパー関数は "
12419 "B<readlink>() を使用するモードにフォールバックする。 I<pathname> が相対パスの"
12420 "場合、 glibc は I<dirfd> 引き数に対応する I</proc/self/fd> のシンボリックリン"
12421 "クに基づいてパス名を構成する。"
12422
12423 #. type: Plain text
12424 #: build/C/man2/readlink.2:275
12425 msgid ""
12426 "The following program allocates the buffer needed by B<readlink>()  "
12427 "dynamically from the information provided by B<lstat>(), making sure there's "
12428 "no race condition between the calls."
12429 msgstr ""
12430 "以下のプログラムは、 B<readlink>() が必要とするバッファを、\n"
12431 "B<lstat>() が提供する情報に基づいて動的に割り当てる。\n"
12432 "また、両方の呼び出し間で競合条件がないことを保証している。"
12433
12434 #. type: Plain text
12435 #: build/C/man2/readlink.2:282
12436 #, no-wrap
12437 msgid ""
12438 "#include E<lt>sys/types.hE<gt>\n"
12439 "#include E<lt>sys/stat.hE<gt>\n"
12440 "#include E<lt>stdio.hE<gt>\n"
12441 "#include E<lt>stdlib.hE<gt>\n"
12442 "#include E<lt>unistd.hE<gt>\n"
12443 msgstr ""
12444 "#include E<lt>sys/types.hE<gt>\n"
12445 "#include E<lt>sys/stat.hE<gt>\n"
12446 "#include E<lt>stdio.hE<gt>\n"
12447 "#include E<lt>stdlib.hE<gt>\n"
12448 "#include E<lt>unistd.hE<gt>\n"
12449
12450 #. type: Plain text
12451 #: build/C/man2/readlink.2:289
12452 #, no-wrap
12453 msgid ""
12454 "int\n"
12455 "main(int argc, char *argv[])\n"
12456 "{\n"
12457 "    struct stat sb;\n"
12458 "    char *linkname;\n"
12459 "    ssize_t r;\n"
12460 msgstr ""
12461 "int\n"
12462 "main(int argc, char *argv[])\n"
12463 "{\n"
12464 "    struct stat sb;\n"
12465 "    char *linkname;\n"
12466 "    ssize_t r;\n"
12467
12468 #. type: Plain text
12469 #: build/C/man2/readlink.2:294
12470 #, no-wrap
12471 msgid ""
12472 "    if (argc != 2) {\n"
12473 "        fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt>\\en\", argv[0]);\n"
12474 "        exit(EXIT_FAILURE);\n"
12475 "    }\n"
12476 msgstr ""
12477 "    if (argc != 2) {\n"
12478 "        fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt>\\en\", argv[0]);\n"
12479 "        exit(EXIT_FAILURE);\n"
12480 "    }\n"
12481
12482 #. type: Plain text
12483 #: build/C/man2/readlink.2:299
12484 #, no-wrap
12485 msgid ""
12486 "    if (lstat(argv[1], &sb) == -1) {\n"
12487 "        perror(\"lstat\");\n"
12488 "        exit(EXIT_FAILURE);\n"
12489 "    }\n"
12490 msgstr ""
12491 "    if (lstat(argv[1], &sb) == -1) {\n"
12492 "        perror(\"lstat\");\n"
12493 "        exit(EXIT_FAILURE);\n"
12494 "    }\n"
12495
12496 #. type: Plain text
12497 #: build/C/man2/readlink.2:305
12498 #, no-wrap
12499 msgid ""
12500 "    linkname = malloc(sb.st_size + 1);\n"
12501 "    if (linkname == NULL) {\n"
12502 "        fprintf(stderr, \"insufficient memory\\en\");\n"
12503 "        exit(EXIT_FAILURE);\n"
12504 "    }\n"
12505 msgstr ""
12506 "    linkname = malloc(sb.st_size + 1);\n"
12507 "    if (linkname == NULL) {\n"
12508 "        fprintf(stderr, \"insufficient memory\\en\");\n"
12509 "        exit(EXIT_FAILURE);\n"
12510 "    }\n"
12511
12512 #. type: Plain text
12513 #: build/C/man2/readlink.2:307
12514 #, no-wrap
12515 msgid "    r = readlink(argv[1], linkname, sb.st_size + 1);\n"
12516 msgstr "    r = readlink(argv[1], linkname, sb.st_size + 1);\n"
12517
12518 #. type: Plain text
12519 #: build/C/man2/readlink.2:312
12520 #, no-wrap
12521 msgid ""
12522 "    if (r == -1) {\n"
12523 "        perror(\"readlink\");\n"
12524 "        exit(EXIT_FAILURE);\n"
12525 "    }\n"
12526 msgstr ""
12527 "    if (r == -1) {\n"
12528 "        perror(\"readlink\");\n"
12529 "        exit(EXIT_FAILURE);\n"
12530 "    }\n"
12531
12532 #. type: Plain text
12533 #: build/C/man2/readlink.2:318
12534 #, no-wrap
12535 msgid ""
12536 "    if (r E<gt> sb.st_size) {\n"
12537 "        fprintf(stderr, \"symlink increased in size \"\n"
12538 "                        \"between lstat() and readlink()\\en\");\n"
12539 "        exit(EXIT_FAILURE);\n"
12540 "    }\n"
12541 msgstr ""
12542 "    if (r E<gt> sb.st_size) {\n"
12543 "        fprintf(stderr, \"symlink increased in size \"\n"
12544 "                        \"between lstat() and readlink()\\en\");\n"
12545 "        exit(EXIT_FAILURE);\n"
12546 "    }\n"
12547
12548 #. type: Plain text
12549 #: build/C/man2/readlink.2:320
12550 #, no-wrap
12551 msgid "    linkname[r] = \\(aq\\e0\\(aq;\n"
12552 msgstr "    linkname[r] = \\(aq\\e0\\(aq;\n"
12553
12554 #. type: Plain text
12555 #: build/C/man2/readlink.2:322
12556 #, no-wrap
12557 msgid "    printf(\"\\(aq%s\\(aq points to \\(aq%s\\(aq\\en\", argv[1], linkname);\n"
12558 msgstr "    printf(\"\\(aq%s\\(aq points to \\(aq%s\\(aq\\en\", argv[1], linkname);\n"
12559
12560 #. type: Plain text
12561 #: build/C/man2/readlink.2:324
12562 #, no-wrap
12563 msgid "    free(linkname);\n"
12564 msgstr "    free(linkname);\n"
12565
12566 #. type: Plain text
12567 #: build/C/man2/readlink.2:336
12568 msgid ""
12569 "B<readlink>(1), B<lstat>(2), B<stat>(2), B<symlink>(2), B<realpath>(3), "
12570 "B<path_resolution>(7), B<symlink>(7)"
12571 msgstr ""
12572 "B<readlink>(1), B<lstat>(2), B<stat>(2), B<symlink>(2), B<realpath>(3), "
12573 "B<path_resolution>(7), B<symlink>(7)"
12574
12575 #. type: TH
12576 #: build/C/man2/readv.2:32
12577 #, no-wrap
12578 msgid "READV"
12579 msgstr "READV"
12580
12581 #. type: Plain text
12582 #: build/C/man2/readv.2:35
12583 msgid ""
12584 "readv, writev, preadv, pwritev - read or write data into multiple buffers"
12585 msgstr "readv, writev, preadv, pwritev - 複数のバッファへの読み書きを行なう"
12586
12587 #. type: Plain text
12588 #: build/C/man2/readv.2:38
12589 #, no-wrap
12590 msgid "B<#include E<lt>sys/uio.hE<gt>>\n"
12591 msgstr "B<#include E<lt>sys/uio.hE<gt>>\n"
12592
12593 #. type: Plain text
12594 #: build/C/man2/readv.2:40
12595 #, no-wrap
12596 msgid "B<ssize_t readv(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<);>\n"
12597 msgstr "B<ssize_t readv(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<);>\n"
12598
12599 #. type: Plain text
12600 #: build/C/man2/readv.2:42
12601 #, no-wrap
12602 msgid "B<ssize_t writev(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<);>\n"
12603 msgstr "B<ssize_t writev(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<);>\n"
12604
12605 #. type: Plain text
12606 #: build/C/man2/readv.2:45
12607 #, no-wrap
12608 msgid ""
12609 "B<ssize_t preadv(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<,>\n"
12610 "B<               off_t >I<offset>B<);>\n"
12611 msgstr ""
12612 "B<ssize_t preadv(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<,>\n"
12613 "B<               off_t >I<offset>B<);>\n"
12614
12615 #. type: Plain text
12616 #: build/C/man2/readv.2:48
12617 #, no-wrap
12618 msgid ""
12619 "B<ssize_t pwritev(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<,>\n"
12620 "B<                off_t >I<offset>B<);>\n"
12621 msgstr ""
12622 "B<ssize_t pwritev(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<,>\n"
12623 "B<                off_t >I<offset>B<);>\n"
12624
12625 #. type: Plain text
12626 #: build/C/man2/readv.2:58
12627 msgid "B<preadv>(), B<pwritev>(): _BSD_SOURCE"
12628 msgstr "B<preadv>(), B<pwritev>(): _BSD_SOURCE"
12629
12630 #. type: Plain text
12631 #: build/C/man2/readv.2:68
12632 msgid ""
12633 "The B<readv>()  system call reads I<iovcnt> buffers from the file associated "
12634 "with the file descriptor I<fd> into the buffers described by I<iov> "
12635 "(\"scatter input\")."
12636 msgstr ""
12637 "B<readv>() システムコールは、ファイルディスクリプタ I<fd> に関連付けられた\n"
12638 "ファイルから、 I<iovcnt> 個のバッファ分のデータを読み込み、 I<iov> で指定\n"
12639 "されたバッファに格納する (\"scatter input\";「ばらまき入力」)。"
12640
12641 #. type: Plain text
12642 #: build/C/man2/readv.2:78
12643 msgid ""
12644 "The B<writev>()  system call writes I<iovcnt> buffers of data described by "
12645 "I<iov> to the file associated with the file descriptor I<fd> (\"gather output"
12646 "\")."
12647 msgstr ""
12648 "B<writev>() システムコールは、 I<iov> で指定されたバッファから最大 "
12649 "I<iovcnt>\n"
12650 "個のバッファ分のデータを取り出し、 ファイルディスクリプタ I<fd> に関連付け"
12651 "ら\n"
12652 "れたファイルに書き込む (\"gather output\";「かき集め出力」)。"
12653
12654 #. type: Plain text
12655 #: build/C/man2/readv.2:87
12656 msgid ""
12657 "The pointer I<iov> points to an array of I<iovec> structures, defined in "
12658 "I<E<lt>sys/uio.hE<gt>> as:"
12659 msgstr ""
12660 "ポインタ I<iov> は I<iovec> 構造体の配列へのポインタである。 I<iovec> 構造体"
12661 "は I<E<lt>sys/uio.hE<gt>> で以下のように定義されている:"
12662
12663 #. type: Plain text
12664 #: build/C/man2/readv.2:95
12665 #, no-wrap
12666 msgid ""
12667 "struct iovec {\n"
12668 "    void  *iov_base;    /* Starting address */\n"
12669 "    size_t iov_len;     /* Number of bytes to transfer */\n"
12670 "};\n"
12671 msgstr ""
12672 "struct iovec {\n"
12673 "    void  *iov_base;    /* Starting address */\n"
12674 "    size_t iov_len;     /* Number of bytes to transfer */\n"
12675 "};\n"
12676
12677 #. type: Plain text
12678 #: build/C/man2/readv.2:103
12679 msgid ""
12680 "The B<readv>()  system call works just like B<read>(2)  except that multiple "
12681 "buffers are filled."
12682 msgstr ""
12683 "B<readv>() システムコールは、複数のバッファにデータを読み込む点を除いて\n"
12684 "B<read>(2) と全く同様の動作を行う。"
12685
12686 #. type: Plain text
12687 #: build/C/man2/readv.2:109
12688 msgid ""
12689 "The B<writev>()  system call works just like B<write>(2)  except that "
12690 "multiple buffers are written out."
12691 msgstr ""
12692 "B<writev>() システムコールは、複数のバッファのデータを書き出す点以外は\n"
12693 "B<write>(2) と全く同様の動作を行う。"
12694
12695 #. type: Plain text
12696 #: build/C/man2/readv.2:128
12697 msgid ""
12698 "Buffers are processed in array order.  This means that B<readv>()  "
12699 "completely fills I<iov>[0] before proceeding to I<iov>[1], and so on.  (If "
12700 "there is insufficient data, then not all buffers pointed to by I<iov> may be "
12701 "filled.)  Similarly, B<writev>()  writes out the entire contents of "
12702 "I<iov>[0] before proceeding to I<iov>[1], and so on."
12703 msgstr ""
12704 "バッファは配列の順序で処理される。これは、 B<readv>()  が I<iov>[0] が完全に"
12705 "一杯になるまでデータを詰めてから、 I<iov>[1] などに進むことを意味する (データ"
12706 "が十分ない場合は、 I<iov> が指すバッファのいずれも一杯にならない)。 同様に、 "
12707 "B<writev>()  は I<iov>[0] の内容を全部書き出してから I<iov>[1] などに進む。"
12708
12709 #. type: Plain text
12710 #: build/C/man2/readv.2:146
12711 msgid ""
12712 "The data transfers performed by B<readv>()  and B<writev>()  are atomic: the "
12713 "data written by B<writev>()  is written as a single block that is not "
12714 "intermingled with output from writes in other processes (but see B<pipe>(7)  "
12715 "for an exception); analogously, B<readv>()  is guaranteed to read a "
12716 "contiguous block of data from the file, regardless of read operations "
12717 "performed in other threads or processes that have file descriptors referring "
12718 "to the same open file description (see B<open>(2))."
12719 msgstr ""
12720 "B<readv>()  と B<writev>()  によるデータ転送は atomic に行われる。つまり、 "
12721 "B<writev>()  によるデータ書き込みは一つのブロックとして行われ、他のプロセス"
12722 "の write による書き込みと混ざり合うことはない (例外に関しては B<pipe>(7)  を"
12723 "参照のこと)。同様に、 B<readv>()  はファイルから連続するデータブロックが読み"
12724 "出すことが保証され、 同じファイル記述 (file description; B<open>(2)  参照) を"
12725 "参照するファイルディスクリプタを持つ他のスレッドやプロセスが 実行した read 操"
12726 "作の影響を受けることはない。"
12727
12728 #. type: SS
12729 #: build/C/man2/readv.2:146
12730 #, no-wrap
12731 msgid "preadv() and pwritev()"
12732 msgstr "preadv() と pwritev()"
12733
12734 #. type: Plain text
12735 #: build/C/man2/readv.2:159
12736 msgid ""
12737 "The B<preadv>()  system call combines the functionality of B<readv>()  and "
12738 "B<pread>(2).  It performs the same task as B<readv>(), but adds a fourth "
12739 "argument, I<offset>, which specifies the file offset at which the input "
12740 "operation is to be performed."
12741 msgstr ""
12742 "B<preadv>() システムコールは B<readv>() と B<preadv>(2) の機能を\n"
12743 "組み合わせたものである。\n"
12744 "B<readv>() と同じ処理を実行するが、\n"
12745 "4 番目の引き数 I<offset> が追加されており、\n"
12746 "この引き数は入力操作を行うファイルオフセットを指定する。"
12747
12748 #. type: Plain text
12749 #: build/C/man2/readv.2:172
12750 msgid ""
12751 "The B<pwritev>()  system call combines the functionality of B<writev>()  and "
12752 "B<pwrite>(2).  It performs the same task as B<writev>(), but adds a fourth "
12753 "argument, I<offset>, which specifies the file offset at which the output "
12754 "operation is to be performed."
12755 msgstr ""
12756 "B<pwritev>() システムコールは B<writev>() と B<pwrite>(2) の機能を\n"
12757 "組み合わせたものである。\n"
12758 "B<writev>() と同じ処理を実行するが、\n"
12759 "4 番目の引き数 I<offset> が追加されており、\n"
12760 "この引き数は出力操作を行うファイルオフセットを指定する。"
12761
12762 #. type: Plain text
12763 #: build/C/man2/readv.2:177
12764 msgid ""
12765 "The file offset is not changed by these system calls.  The file referred to "
12766 "by I<fd> must be capable of seeking."
12767 msgstr ""
12768 "これらのシステムコールで、ファイルオフセットは変更されない。\n"
12769 "I<fd> が参照するファイルは seek 可能でなければならない。"
12770
12771 #. type: Plain text
12772 #: build/C/man2/readv.2:188
12773 msgid ""
12774 "On success, B<readv>()  and B<preadv>()  return the number of bytes read; "
12775 "B<writev>()  and B<pwritev>()  return the number of bytes written.  On "
12776 "error, -1 is returned, and I<errno> is set appropriately."
12777 msgstr ""
12778 "成功した場合、 B<readv>() と B<preadv> は読み込んだバイト数を返し、\n"
12779 "B<writev>() と B<pwritev>()は書き込んだバイト数を返す。\n"
12780 "エラーの場合 -1 を返し、I<errno> を適切に設定する。"
12781
12782 #. type: Plain text
12783 #: build/C/man2/readv.2:200
12784 msgid ""
12785 "The errors are as given for B<read>(2)  and B<write>(2).  Furthermore, "
12786 "B<preadv>()  and B<pwritev>()  can also fail for the same reasons as "
12787 "B<lseek>(2).  Additionally, the following error is defined:"
12788 msgstr ""
12789 "B<read>(2)  や B<write>(2)  と同じエラーが定義されている。\n"
12790 "さらに、 B<preadv>() と B<pwritev>() は B<lseek>(2) と同じ理由でも失敗す"
12791 "る。\n"
12792 "また、追加で以下のエラーが定義されている:"
12793
12794 #. type: Plain text
12795 #: build/C/man2/readv.2:209
12796 msgid ""
12797 "The sum of the I<iov_len> values overflows an I<ssize_t> value.  Or, the "
12798 "vector count I<iovcnt> is less than zero or greater than the permitted "
12799 "maximum."
12800 msgstr ""
12801 "I<iov_len> の合計が I<ssize_t> の範囲をオーバーフローした。もしくは、 ベクタ"
12802 "数 I<iovcnt> が 0 より小さいか許可された最大値よりも大きかった。"
12803
12804 #. type: Plain text
12805 #: build/C/man2/readv.2:214
12806 msgid ""
12807 "B<preadv>()  and B<pwritev>()  first appeared in Linux 2.6.30; library "
12808 "support was added in glibc 2.10."
12809 msgstr ""
12810 "B<preadv>() と B<pwritev>() は Linux 2.6.30 で初めて登場した。\n"
12811 "ライブラリによるサポートは glibc 2.10 で追加された。"
12812
12813 #.  Linux libc5 used \fIsize_t\fP as the type of the \fIiovcnt\fP argument,
12814 #.  and \fIint\fP as the return type.
12815 #.  The readv/writev system calls were buggy before Linux 1.3.40.
12816 #.  (Says release.libc.)
12817 #. type: Plain text
12818 #: build/C/man2/readv.2:222
12819 msgid ""
12820 "B<readv>(), B<writev>(): 4.4BSD (these system calls first appeared in "
12821 "4.2BSD), POSIX.1-2001."
12822 msgstr ""
12823 "B<readv>(), B<writev>(): 4.4BSD (これらのシステムコールは 4.2BSD で初めて登場"
12824 "した), POSIX.1-2001."
12825
12826 #. type: Plain text
12827 #: build/C/man2/readv.2:226
12828 msgid ""
12829 "B<preadv>(), B<pwritev>(): nonstandard, but present also on the modern BSDs."
12830 msgstr "B<preadv>(), B<pwritev>(): 非標準だが、最近の BSD にも存在する。"
12831
12832 #. type: SS
12833 #: build/C/man2/readv.2:227
12834 #, no-wrap
12835 msgid "C library/kernel ABI differences"
12836 msgstr "C ライブラリとカーネル ABI の違い"
12837
12838 #. type: Plain text
12839 #: build/C/man2/readv.2:258
12840 msgid ""
12841 "POSIX.1-2001 allows an implementation to place a limit on the number of "
12842 "items that can be passed in I<iov>.  An implementation can advertise its "
12843 "limit by defining B<IOV_MAX> in I<E<lt>limits.hE<gt>> or at run time via the "
12844 "return value from I<sysconf(_SC_IOV_MAX)>.  On Linux, the limit advertised "
12845 "by these mechanisms is 1024, which is the true kernel limit.  However, the "
12846 "glibc wrapper functions do some extra work if they detect that the "
12847 "underlying kernel system call failed because this limit was exceeded.  In "
12848 "the case of B<readv>(), the wrapper function allocates a temporary buffer "
12849 "large enough for all of the items specified by I<iov>, passes that buffer in "
12850 "a call to B<read>(2), copies data from the buffer to the locations specified "
12851 "by the I<iov_base> fields of the elements of I<iov>, and then frees the "
12852 "buffer.  The wrapper function for B<writev>()  performs the analogous task "
12853 "using a temporary buffer and a call to B<write>(2)."
12854 msgstr ""
12855 "POSIX.1-2001 では、 I<iov> で渡すことができる要素数に上限を設ける実装が認めら"
12856 "れている。 実装は、 I<E<lt>limits.hE<gt>> の B<IOV_MAX> を定義することや、実"
12857 "行時に I<sysconf(_SC_IOV_MAX)> の返り値経由で、この上限を広告することができ"
12858 "る。 Linux では、この仕組みにより広告される上限は 1024 であり、 この値はカー"
12859 "ネルでの上限そのものである。 一方で、glibc のラッパー関数は、その関数の内部で"
12860 "呼ばれるカーネル システムコールがこの上限を超過して失敗したことを検出する"
12861 "と、 追加の動作をする。 B<readv>()  の場合、ラッパー関数は I<iov> で指定され"
12862 "た全ての要素を格納できる大きさの一時バッファを割り当て、 B<read>(2)  を呼び出"
12863 "す際にそのバッファを渡し、 そのバッファのデータを I<iov> の各要素の "
12864 "I<iov_base> フィールドが指定する場所にコピーしてから、 そのバッファを解放す"
12865 "る。 B<writev>()  のラッパー関数も、同じように一時バッファを使って "
12866 "B<write>(2)  を呼び出す。"
12867
12868 #. type: Plain text
12869 #: build/C/man2/readv.2:268
12870 msgid ""
12871 "The raw B<preadv>()  and B<pwritev>()  system calls have call signatures "
12872 "that differ slightly from that of the corresponding GNU C library wrapper "
12873 "functions shown in the SYNOPSIS.  The final argument, I<offset>, is unpacked "
12874 "by the wrapper functions into two arguments in the system calls:"
12875 msgstr ""
12876 "素のシステムコール B<preadv>() と B<pwritev>() のシグネチャーは、 「書式」に"
12877 "書かれている対応する GNU C ライブラリのラッパー関数のものとは少し異なる。 最"
12878 "後の引き数 I<offset> はラッパー関数によりシステムコールの 2 つの引き数に展開"
12879 "される。"
12880
12881 #. type: Plain text
12882 #: build/C/man2/readv.2:270
12883 msgid "B< unsigned long >I<pos_l>B<, unsigned long >I<pos>"
12884 msgstr "B< unsigned long >I<pos_l>B<, unsigned long >I<pos>"
12885
12886 #. type: Plain text
12887 #: build/C/man2/readv.2:273
12888 msgid ""
12889 "These arguments contain, respectively, the low order and high order 32 bits "
12890 "of I<offset>."
12891 msgstr ""
12892 "これらの引き数は、それぞれ、 I<offset> の下位 32 ビットと上位 32 ビットであ"
12893 "る。"
12894
12895 #. type: Plain text
12896 #: build/C/man2/readv.2:280
12897 msgid ""
12898 "It is not advisable to mix calls to B<readv>()  or B<writev>(), which "
12899 "operate on file descriptors, with the functions from the stdio library; the "
12900 "results will be undefined and probably not what you want."
12901 msgstr ""
12902 "ファイルディスクリプタに対する操作を行う B<readv>() や B<writev>() と、\n"
12903 "標準入出力ライブラリの関数をごちゃまぜにして呼ぶのはお薦めしない。\n"
12904 "どんな結果になるかは定義されておらず、おそらく期待する結果は\n"
12905 "得られないだろう。"
12906
12907 #. type: Plain text
12908 #: build/C/man2/readv.2:283
12909 msgid "The following code sample demonstrates the use of B<writev>():"
12910 msgstr "以下のサンプルコードは B<writev>()  の使用方法を示すものである。"
12911
12912 #. type: Plain text
12913 #: build/C/man2/readv.2:290
12914 #, no-wrap
12915 msgid ""
12916 "char *str0 = \"hello \";\n"
12917 "char *str1 = \"world\\en\";\n"
12918 "struct iovec iov[2];\n"
12919 "ssize_t nwritten;\n"
12920 msgstr ""
12921 "char *str0 = \"hello \";\n"
12922 "char *str1 = \"world\\en\";\n"
12923 "struct iovec iov[2];\n"
12924 "ssize_t nwritten;\n"
12925
12926 #. type: Plain text
12927 #: build/C/man2/readv.2:295
12928 #, no-wrap
12929 msgid ""
12930 "iov[0].iov_base = str0;\n"
12931 "iov[0].iov_len = strlen(str0);\n"
12932 "iov[1].iov_base = str1;\n"
12933 "iov[1].iov_len = strlen(str1);\n"
12934 msgstr ""
12935 "iov[0].iov_base = str0;\n"
12936 "iov[0].iov_len = strlen(str0);\n"
12937 "iov[1].iov_base = str1;\n"
12938 "iov[1].iov_len = strlen(str1);\n"
12939
12940 #. type: Plain text
12941 #: build/C/man2/readv.2:297
12942 #, no-wrap
12943 msgid "nwritten = writev(STDOUT_FILENO, iov, 2);\n"
12944 msgstr "nwritten = writev(STDOUT_FILENO, iov, 2);\n"
12945
12946 #. type: Plain text
12947 #: build/C/man2/readv.2:303
12948 msgid "B<pread>(2), B<read>(2), B<write>(2)"
12949 msgstr "B<pread>(2), B<read>(2), B<write>(2)"
12950
12951 #. type: TH
12952 #: build/C/man3/remove.3:31
12953 #, no-wrap
12954 msgid "REMOVE"
12955 msgstr "REMOVE"
12956
12957 #. type: Plain text
12958 #: build/C/man3/remove.3:34
12959 msgid "remove - remove a file or directory"
12960 msgstr "remove - ファイルやディレクトリを削除する"
12961
12962 #. type: Plain text
12963 #: build/C/man3/remove.3:38
12964 msgid "B<int remove(const char *>I<pathname>B<);>"
12965 msgstr "B<int remove(const char *>I<pathname>B<);>"
12966
12967 #. type: Plain text
12968 #: build/C/man3/remove.3:46
12969 msgid ""
12970 "B<remove>()  deletes a name from the filesystem.  It calls B<unlink>(2)  for "
12971 "files, and B<rmdir>(2)  for directories."
12972 msgstr ""
12973 "B<remove>()  はファイルシステムからファイル名を削除する。 ファイルに対しては "
12974 "B<unlink>(2)  を、ディレクトリに対しては B<rmdir>(2)  を呼び出す。"
12975
12976 #. type: Plain text
12977 #: build/C/man3/remove.3:50
12978 msgid ""
12979 "If the removed name was the last link to a file and no processes have the "
12980 "file open, the file is deleted and the space it was using is made available "
12981 "for reuse."
12982 msgstr ""
12983 "もしその名前が ファイルへの最後のリンクで、かつ、どのプロセスもそのファイル"
12984 "を 開いていないなら、ファイルも削除する。ファイルの占めていた 領域は他で使う"
12985 "ことができるようになる。"
12986
12987 #. type: Plain text
12988 #: build/C/man3/remove.3:55
12989 msgid ""
12990 "If the name was the last link to a file, but any processes still have the "
12991 "file open, the file will remain in existence until the last file descriptor "
12992 "referring to it is closed."
12993 msgstr ""
12994 "名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開"
12995 "いているなら、ファイルの最後のファイル記述子 (file descriptor) が閉じられるま"
12996 "でファイルは存在し続ける。"
12997
12998 #. type: Plain text
12999 #: build/C/man3/remove.3:57 build/C/man2/unlink.2:78
13000 msgid "If the name referred to a symbolic link, the link is removed."
13001 msgstr "名前が指しているのがシンボリックリンクなら、そのリンクを削除する。"
13002
13003 #. type: Plain text
13004 #: build/C/man3/remove.3:60
13005 msgid ""
13006 "If the name referred to a socket, FIFO, or device, the name is removed, but "
13007 "processes which have the object open may continue to use it."
13008 msgstr ""
13009 "名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、 その"
13010 "ソケットなどを開いているプロセスはそのまま使い続けることができる。"
13011
13012 #. type: Plain text
13013 #: build/C/man3/remove.3:70
13014 msgid "The errors that occur are those for B<unlink>(2)  and B<rmdir>(2)."
13015 msgstr "発生するエラーは B<unlink>(2)  および B<rmdir>(2)  と同じものである。"
13016
13017 #. type: Plain text
13018 #: build/C/man3/remove.3:75
13019 msgid "The B<remove>()  function is thread-safe."
13020 msgstr "関数 B<remove>() はスレッドセーフである。"
13021
13022 #.  .SH NOTES
13023 #.  Under libc4 and libc5,
13024 #.  .BR remove ()
13025 #.  was an alias for
13026 #.  .BR unlink (2)
13027 #.  (and hence would not remove directories).
13028 #. type: Plain text
13029 #: build/C/man3/remove.3:83
13030 msgid "C89, C99, 4.3BSD, POSIX.1-2001."
13031 msgstr "C89, C99, 4.3BSD, POSIX.1-2001."
13032
13033 #. type: Plain text
13034 #: build/C/man3/remove.3:86 build/C/man2/unlink.2:300
13035 msgid ""
13036 "Infelicities in the protocol underlying NFS can cause the unexpected "
13037 "disappearance of files which are still being used."
13038 msgstr ""
13039 "NFS プロトコルに内在する問題により、まだ使用中のファイルが想定外に消えてしま"
13040 "うことがありえる。"
13041
13042 #. type: Plain text
13043 #: build/C/man3/remove.3:97
13044 msgid ""
13045 "B<rm>(1), B<unlink>(1), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
13046 "B<rmdir>(2), B<unlink>(2), B<mkfifo>(3), B<symlink>(7)"
13047 msgstr ""
13048 "B<rm>(1), B<unlink>(1), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
13049 "B<rmdir>(2), B<unlink>(2), B<mkfifo>(3), B<symlink>(7)"
13050
13051 #. type: TH
13052 #: build/C/man2/rename.2:33
13053 #, no-wrap
13054 msgid "RENAME"
13055 msgstr "RENAME"
13056
13057 #. type: Plain text
13058 #: build/C/man2/rename.2:36
13059 msgid "rename, renameat, renameat2 - change the name or location of a file"
13060 msgstr "rename, renameat, renameat2 - ファイルの名前や位置を変更する"
13061
13062 #. type: Plain text
13063 #: build/C/man2/rename.2:41
13064 #, no-wrap
13065 msgid "B<int rename(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
13066 msgstr "B<int rename(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
13067
13068 #. type: Plain text
13069 #: build/C/man2/rename.2:44
13070 #, no-wrap
13071 msgid ""
13072 "B<#include E<lt>fcntl.hE<gt>           >/* Definition of AT_* constants */\n"
13073 "B<#include E<lt>stdio.hE<gt>>\n"
13074 msgstr ""
13075 "B<#include E<lt>fcntl.hE<gt>           >/* AT_* 定数の定義 */\n"
13076 "B<#include E<lt>stdio.hE<gt>>\n"
13077
13078 #. type: Plain text
13079 #: build/C/man2/rename.2:47
13080 #, no-wrap
13081 msgid ""
13082 "B<int renameat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
13083 "B<             int >I<newdirfd>B<, const char *>I<newpath>B<);>\n"
13084 msgstr ""
13085 "B<int renameat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
13086 "B<             int >I<newdirfd>B<, const char *>I<newpath>B<);>\n"
13087
13088 #. type: Plain text
13089 #: build/C/man2/rename.2:51
13090 #, no-wrap
13091 msgid ""
13092 "B<int renameat2(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
13093 "B<              int >I<newdirfd>B<, const char *>I<newpath>B<, unsigned int >I<flags>B<);>\n"
13094 msgstr ""
13095 "B<int renameat2(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
13096 "B<              int >I<newdirfd>B<, const char *>I<newpath>B<, unsigned int >I<flags>B<);>\n"
13097
13098 #. type: Plain text
13099 #: build/C/man2/rename.2:59
13100 msgid "B<renameat>():"
13101 msgstr "B<renameat>():"
13102
13103 #. type: Plain text
13104 #: build/C/man2/rename.2:81
13105 msgid ""
13106 "B<rename>()  renames a file, moving it between directories if required.  Any "
13107 "other hard links to the file (as created using B<link>(2))  are unaffected.  "
13108 "Open file descriptors for I<oldpath> are also unaffected."
13109 msgstr ""
13110 "B<rename>()  はファイルの名前を変更し、必要ならばディレクトリ間の移動を行な"
13111 "う。 そのファイルに対する (B<link>(2)  を使用して作られた) 他のハードリンク "
13112 "(hard link) には影響はない。 オープン済の I<oldpath> に対するファイルディスク"
13113 "リプタにも影響はない。"
13114
13115 #. type: Plain text
13116 #: build/C/man2/rename.2:89
13117 msgid ""
13118 "If I<newpath> already exists, it will be atomically replaced (subject to a "
13119 "few conditions; see ERRORS below), so that there is no point at which "
13120 "another process attempting to access I<newpath> will find it missing."
13121 msgstr ""
13122 "I<newpath> が既に存在する場合、それは不可分操作で (atomically) 置き換えられ"
13123 "る (ただし、いくつかの条件がある; 以下の「エラー」のセクションを参照)。 その"
13124 "ため、 I<newpath> にアクセスしようとしている他のプロセスがファイルを見失うこ"
13125 "とはない (訳註: 常にアクセス可能である)。"
13126
13127 #. type: Plain text
13128 #: build/C/man2/rename.2:97
13129 msgid ""
13130 "If I<oldpath> and I<newpath> are existing hard links referring to the same "
13131 "file, then B<rename>()  does nothing, and returns a success status."
13132 msgstr ""
13133 "I<oldpath> と I<newpath> がどちらも既存のハードリンクで、同じファイルを参照し"
13134 "ている場合、 B<rename>()  は何も行わず、ステータスとして成功を返す。"
13135
13136 #. type: Plain text
13137 #: build/C/man2/rename.2:105
13138 msgid ""
13139 "If I<newpath> exists but the operation fails for some reason, B<rename>()  "
13140 "guarantees to leave an instance of I<newpath> in place."
13141 msgstr ""
13142 "I<newpath> が存在し、何らかの理由で操作が失敗した場合、 B<rename>()  は "
13143 "I<newpath> の実体を元のまま残すことを保証する。"
13144
13145 #. type: Plain text
13146 #: build/C/man2/rename.2:111
13147 msgid ""
13148 "I<oldpath> can specify a directory.  In this case, I<newpath> must either "
13149 "not exist, or it must specify an empty directory."
13150 msgstr ""
13151 "I<oldpath> にはディレクトリを指定することもできる。 この場合、 I<newpath> は"
13152 "存在しないか、空のディレクトリでなければならない。"
13153
13154 #. type: Plain text
13155 #: build/C/man2/rename.2:118
13156 msgid ""
13157 "However, when overwriting there will probably be a window in which both "
13158 "I<oldpath> and I<newpath> refer to the file being renamed."
13159 msgstr ""
13160 "一方で、上書きを行なう場合は、rename が行なわれるファイルを I<oldpath> と "
13161 "I<newpath> の両方で参照できる瞬間がおそらく存在する。"
13162
13163 #. type: Plain text
13164 #: build/C/man2/rename.2:124
13165 msgid ""
13166 "If I<oldpath> refers to a symbolic link, the link is renamed; if I<newpath> "
13167 "refers to a symbolic link, the link will be overwritten."
13168 msgstr ""
13169 "I<oldpath> がシンボリックリンク (symbolic link) を参照している場合は、 リンク"
13170 "の名前が変更される。 また、 I<newpath> がシンボリックリンクを参照している場合"
13171 "は、リンクが上書きされる。"
13172
13173 #. type: SS
13174 #: build/C/man2/rename.2:124
13175 #, no-wrap
13176 msgid "renameat()"
13177 msgstr "renameat()"
13178
13179 #. type: Plain text
13180 #: build/C/man2/rename.2:130
13181 msgid ""
13182 "The B<renameat>()  system call operates in exactly the same way as "
13183 "B<rename>(), except for the differences described here."
13184 msgstr ""
13185 "B<renameat>() システムコールは B<rename>() と全く同様に動作するが、以下で説明"
13186 "する点が異なる。"
13187
13188 #. type: Plain text
13189 #: build/C/man2/rename.2:140
13190 msgid ""
13191 "If the pathname given in I<oldpath> is relative, then it is interpreted "
13192 "relative to the directory referred to by the file descriptor I<olddirfd> "
13193 "(rather than relative to the current working directory of the calling "
13194 "process, as is done by B<rename>()  for a relative pathname)."
13195 msgstr ""
13196 "I<oldpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスクリ"
13197 "プター I<olddirfd> が参照するディレクトリに対する相対パスと解釈される "
13198 "(B<rename>(2) に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
13199 "ワーキングディレクトリに対する相対パスではない)。"
13200
13201 #. type: Plain text
13202 #: build/C/man2/rename.2:152
13203 msgid ""
13204 "If I<oldpath> is relative and I<olddirfd> is the special value B<AT_FDCWD>, "
13205 "then I<oldpath> is interpreted relative to the current working directory of "
13206 "the calling process (like B<rename>())."
13207 msgstr ""
13208 "I<oldpath> で指定されたパス名が相対パスで、 I<olddirfd> が特別な値 "
13209 "B<AT_FDCWD> の場合、 (B<rename>(2) と同様に) I<oldpath> は呼び出したプロセス"
13210 "のカレントワーキングディレクトリに対する相対パスと解釈される。"
13211
13212 #. type: Plain text
13213 #: build/C/man2/rename.2:171
13214 msgid "See B<openat>(2)  for an explanation of the need for B<renameat>()."
13215 msgstr "B<renameat>() の必要性についての説明については B<openat>(2) を参照。"
13216
13217 #. type: SS
13218 #: build/C/man2/rename.2:171
13219 #, no-wrap
13220 msgid "renameat2()"
13221 msgstr "renameat2()"
13222
13223 #. type: Plain text
13224 #: build/C/man2/rename.2:182
13225 msgid ""
13226 "B<renameat2>()  has an additional I<flags> argument.  A B<renameat2>()  call "
13227 "with a zero I<flags> argument is equivalent to B<renameat>()."
13228 msgstr ""
13229 "B<renameat2>() には追加の I<flags> 引き数がある。 I<flags> 引き数が 0 の "
13230 "B<renameat2>() の呼び出しは B<renameat>() と等価である。"
13231
13232 #. type: Plain text
13233 #: build/C/man2/rename.2:186
13234 msgid ""
13235 "The I<flags> argument is a bit mask consisting of zero or more of the "
13236 "following flags:"
13237 msgstr "I<flags> 引き数は、以下のフラグの 0 個以上のビットマスクである。"
13238
13239 #. type: TP
13240 #: build/C/man2/rename.2:186
13241 #, no-wrap
13242 msgid "B<RENAME_NOREPLACE>"
13243 msgstr "B<RENAME_NOREPLACE>"
13244
13245 #. type: Plain text
13246 #: build/C/man2/rename.2:194
13247 msgid ""
13248 "Don't overwrite I<newpath> of the rename.  Return an error if I<newpath> "
13249 "already exists."
13250 msgstr ""
13251 "rename の I<newpath> を上書きしない。 I<newpath> がすでに存在する場合エラーを"
13252 "返す。"
13253
13254 #. type: TP
13255 #: build/C/man2/rename.2:194
13256 #, no-wrap
13257 msgid "B<RENAME_EXCHANGE>"
13258 msgstr "B<RENAME_EXCHANGE>"
13259
13260 #. type: Plain text
13261 #: build/C/man2/rename.2:203
13262 msgid ""
13263 "Atomically exchange I<oldpath> and I<newpath>.  Both pathnames must exist "
13264 "but may be of different types (e.g., one could be a non-empty directory and "
13265 "the other a symbolic link)."
13266 msgstr ""
13267 "I<oldpath> と I<newpath> をアトミックに入れ換える。 両方のパス名が存在しなけ"
13268 "ればならないが、 ファイル種別は異なっていてもよい (例えば、一方は空でないディ"
13269 "レクトリで、もう一方はシンボリックリンクであるなど)。"
13270
13271 #. type: Plain text
13272 #: build/C/man2/rename.2:228
13273 msgid ""
13274 "Write permission is denied for the directory containing I<oldpath> or "
13275 "I<newpath>, or, search permission is denied for one of the directories in "
13276 "the path prefix of I<oldpath> or I<newpath>, or I<oldpath> is a directory "
13277 "and does not allow write permission (needed to update the I<..> entry).  "
13278 "(See also B<path_resolution>(7).)"
13279 msgstr ""
13280 "I<oldpath> または I<newpath> を含んでいるディレクトリの書き込み許可がない。 "
13281 "または、 I<oldpath> または I<newpath> のディレクトリ部分のどれかに検索許可が"
13282 "ない。 または、 I<oldpath> がディレクトリで (I<..> エントリを更新するのに必要"
13283 "な) 書き込み許可がない (B<path_resolution>(7)  も参照)。"
13284
13285 #. type: TP
13286 #: build/C/man2/rename.2:228 build/C/man2/rmdir.2:55 build/C/man2/unlink.2:169
13287 #, no-wrap
13288 msgid "B<EBUSY>"
13289 msgstr "B<EBUSY>"
13290
13291 #. type: Plain text
13292 #: build/C/man2/rename.2:245
13293 msgid ""
13294 "The rename fails because I<oldpath> or I<newpath> is a directory that is in "
13295 "use by some process (perhaps as current working directory, or as root "
13296 "directory, or because it was open for reading) or is in use by the system "
13297 "(for example as mount point), while the system considers this an error.  "
13298 "(Note that there is no requirement to return B<EBUSY> in such cases"
13299 "\\(emthere is nothing wrong with doing the rename anyway\\(embut it is "
13300 "allowed to return B<EBUSY> if the system cannot otherwise handle such "
13301 "situations.)"
13302 msgstr ""
13303 "I<oldpath> または I<newpath> がディレクトリで、何らかのプロセスが使用中 (多"
13304 "分、カレントワーキングディレクトリか、ルートディレクトリか、 読み込みのために"
13305 "オープンされているかでろう)  もしくは、システムが使用中 (例えばマウントポイン"
13306 "トである)  であり、システムがこれをエラーであると判断したために rename が失敗"
13307 "した。 (このような場合に B<EBUSY> を返すことは規格では要求されていない点に注"
13308 "意すること。 このような場合に、rename をとにかく実行してみるのは何の問題もな"
13309 "い。 ただし、そのような状況で、システムが他に返すエラーがない場合には "
13310 "B<EBUSY> を返すことが許されている。)"
13311
13312 #. type: Plain text
13313 #: build/C/man2/rename.2:255
13314 msgid ""
13315 "The new pathname contained a path prefix of the old, or, more generally, an "
13316 "attempt was made to make a directory a subdirectory of itself."
13317 msgstr ""
13318 "I<newpath> が I<oldpath> のパス部分を含んでいる。ディレクトリを自分自身のサブ"
13319 "ディレクトリに 変更しようとした場合がほとんどである。"
13320
13321 #. type: Plain text
13322 #: build/C/man2/rename.2:261
13323 msgid "I<newpath> is an existing directory, but I<oldpath> is not a directory."
13324 msgstr ""
13325 "I<newpath> は存在しているディレクトリであるが、 I<oldpath> はディレクトリでな"
13326 "い。"
13327
13328 #. type: Plain text
13329 #: build/C/man2/rename.2:272
13330 msgid ""
13331 "I<oldpath> already has the maximum number of links to it, or it was a "
13332 "directory and the directory containing I<newpath> has the maximum number of "
13333 "links."
13334 msgstr ""
13335 "I<oldpath> は既に最大数までのリンクを持っているか、それがディレクトリで "
13336 "I<newpath> を含んでいるディレクトリが最大数までのリンクを持っている。"
13337
13338 #. type: Plain text
13339 #: build/C/man2/rename.2:288
13340 msgid ""
13341 "The link named by I<oldpath> does not exist; or, a directory component in "
13342 "I<newpath> does not exist; or, I<oldpath> or I<newpath> is an empty string."
13343 msgstr ""
13344 "I<oldpath> という名前のリンクが存在しない。 または、 I<newpath> というディレ"
13345 "クトリが存在しない。 または、 I<oldpath> か I<newpath> が空の文字列である。"
13346
13347 #. type: Plain text
13348 #: build/C/man2/rename.2:305
13349 msgid ""
13350 "A component used as a directory in I<oldpath> or I<newpath> is not, in fact, "
13351 "a directory.  Or, I<oldpath> is a directory, and I<newpath> exists but is "
13352 "not a directory."
13353 msgstr ""
13354 "I<oldpath> か I<newpath> に含まれているディレクトリ部分が 実際にはディレクト"
13355 "リでない。 または I<oldpath> がディレクトリで、 I<newpath> が存在してディレク"
13356 "トリでない。"
13357
13358 #. type: TP
13359 #: build/C/man2/rename.2:305
13360 #, no-wrap
13361 msgid "B<ENOTEMPTY> or B<EEXIST>"
13362 msgstr "B<ENOTEMPTY  または  EEXIST>"
13363
13364 #. type: Plain text
13365 #: build/C/man2/rename.2:309
13366 msgid ""
13367 "I<newpath> is a nonempty directory, that is, contains entries other than \"."
13368 "\" and \"..\"."
13369 msgstr ""
13370 "I<newpath> が空でないディレクトリである。すなわち \".\" と \"..\" 以外を含ん"
13371 "でいる。"
13372
13373 #. type: TP
13374 #: build/C/man2/rename.2:309 build/C/man2/unlink.2:224
13375 #, no-wrap
13376 msgid "B<EPERM> or B<EACCES>"
13377 msgstr "B<EPERM> または B<EACCES>"
13378
13379 #. type: Plain text
13380 #: build/C/man2/rename.2:333
13381 msgid ""
13382 "The directory containing I<oldpath> has the sticky bit (B<S_ISVTX>)  set and "
13383 "the process's effective user ID is neither the user ID of the file to be "
13384 "deleted nor that of the directory containing it, and the process is not "
13385 "privileged (Linux: does not have the B<CAP_FOWNER> capability); or "
13386 "I<newpath> is an existing file and the directory containing it has the "
13387 "sticky bit set and the process's effective user ID is neither the user ID of "
13388 "the file to be replaced nor that of the directory containing it, and the "
13389 "process is not privileged (Linux: does not have the B<CAP_FOWNER> "
13390 "capability); or the filesystem containing I<pathname> does not support "
13391 "renaming of the type requested."
13392 msgstr ""
13393 "I<oldpath> のあるディレクトリにスティッキービット (sticky bit)  "
13394 "(B<S_ISVTX>)  が設定されており、 プロセスの実効ユーザー ID が 削除しようとす"
13395 "るファイルのユーザー ID と そのファイルを含むディレクトリのユーザー ID のいず"
13396 "れとも一致せず、かつ プロセスに特権がない (Linux では B<CAP_FOWNER> ケーパビ"
13397 "リティ (capability) がない)。 または、 I<newpath> がすでに存在するファイル"
13398 "で、親ディレクトリにスティッキービットが設定されており、 プロセスの実効ユー"
13399 "ザー ID が 置き換えようとするファイルのユーザー ID と そのファイルを含むディ"
13400 "レクトリのユーザー ID のいずれとも一致せず、かつ プロセスに特権がない (Linux "
13401 "では B<CAP_FOWNER> ケーパビリティがない)。 または I<oldpath> と I<newpath> が"
13402 "存在するファイルシステムが、要求された種類の名前の変更を サポートしていない。"
13403
13404 #. type: Plain text
13405 #: build/C/man2/rename.2:344
13406 msgid ""
13407 "I<oldpath> and I<newpath> are not on the same mounted filesystem.  (Linux "
13408 "permits a filesystem to be mounted at multiple points, but B<rename>()  does "
13409 "not work across different mount points, even if the same filesystem is "
13410 "mounted on both.)"
13411 msgstr ""
13412 "I<oldpath> と I<newpath> が同じマウントされたファイルシステムに存在しない。 "
13413 "(Linux は 1 つのファイルシステムを複数のマウント位置に マウントすることを許可"
13414 "している。 しかし B<rename>()  は、たとえ同じファイルシステムであっても、 "
13415 "別々のマウント位置を跨いでは動作しない。)"
13416
13417 #. type: Plain text
13418 #: build/C/man2/rename.2:349
13419 msgid ""
13420 "The following additional errors can occur for B<renameat>()  and "
13421 "B<renameat2>():"
13422 msgstr "B<renameat>() と B<renameat2>() では以下のエラーも発生する。"
13423
13424 #. type: Plain text
13425 #: build/C/man2/rename.2:368
13426 msgid "The following additional errors can occur for B<renameat2>():"
13427 msgstr "B<renameat2>() では以下のエラーも発生する。"
13428
13429 #. type: Plain text
13430 #: build/C/man2/rename.2:376
13431 msgid "I<flags> contains B<RENAME_NOREPLACE> and I<newpath> already exists."
13432 msgstr ""
13433 "I<flags> に B<RENAME_NOREPLACE> が指定されているが、 I<newpath> がすでに存在"
13434 "する。"
13435
13436 #. type: Plain text
13437 #: build/C/man2/rename.2:385
13438 msgid ""
13439 "An invalid flag was specified in I<flags>, or both B<RENAME_NOREPLACE> and "
13440 "B<RENAME_EXCHANGE> were specified."
13441 msgstr ""
13442 "I<flags> に無効なフラグが指定された。 B<RENAME_NOREPLACE> と "
13443 "B<RENAME_EXCHANGE> の両方が指定された。"
13444
13445 #. type: Plain text
13446 #: build/C/man2/rename.2:389
13447 msgid "The filesystem does not support one of the flags in I<flags>."
13448 msgstr "I<flags> にファイルシステムでサポートされていないフラグが指定された。"
13449
13450 #. type: Plain text
13451 #: build/C/man2/rename.2:397
13452 msgid "I<flags> contains B<RENAME_EXCHANGE> and I<newpath> does not exist."
13453 msgstr ""
13454 "I<flags> に B<RENAME_EXCHANGE> が指定されたが、 I<newpath> が存在しない。"
13455
13456 #. type: Plain text
13457 #: build/C/man2/rename.2:401
13458 msgid ""
13459 "B<renameat>()  was added to Linux in kernel 2.6.16; library support was "
13460 "added to glibc in version 2.4."
13461 msgstr ""
13462 "B<renameat>()  はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
13463 "ポートはバージョン 2.4 で glibc に追加された。"
13464
13465 #.  FIXME . glibc support is pending.
13466 #. type: Plain text
13467 #: build/C/man2/rename.2:405
13468 msgid "B<renameat2>()  was added to Linux in kernel 3.15."
13469 msgstr "B<renameat2>()  はカーネル 2.6.16 で Linux に追加された。"
13470
13471 #. type: Plain text
13472 #: build/C/man2/rename.2:408
13473 msgid "B<rename>(): 4.3BSD, C89, C99, POSIX.1-2001, POSIX.1-2008."
13474 msgstr "B<rename>(): 4.3BSD, C89, C99, POSIX.1-2001, POSIX.1-2008."
13475
13476 #. type: Plain text
13477 #: build/C/man2/rename.2:411
13478 msgid "B<renameat>(): POSIX.1-2008."
13479 msgstr "B<renameat>(): POSIX.1-2008."
13480
13481 #. type: Plain text
13482 #: build/C/man2/rename.2:414
13483 msgid "B<renameat2>()  is Linux-specific."
13484 msgstr "B<renameat2>()  は Linux 固有である。"
13485
13486 #. type: Plain text
13487 #: build/C/man2/rename.2:432
13488 msgid ""
13489 "On older kernels where B<renameat>()  is unavailable, the glibc wrapper "
13490 "function falls back to the use of B<rename>().  When I<oldpath> and "
13491 "I<newpath> are relative pathnames, glibc constructs pathnames based on the "
13492 "symbolic links in I</proc/self/fd> that correspond to the I<olddirfd> and "
13493 "I<newdirfd> arguments."
13494 msgstr ""
13495 "B<renameat>() が利用できない古いカーネルでは、 glibc ラッパー関数は "
13496 "B<rename>() を使用するモードにフォールバックする。 I<oldpath> と I<newpath> "
13497 "が相対パスの場合、 glibc は I<olddirfd> と I<newdirfd> 引き数に対応する I</"
13498 "proc/self/fd> のシンボリックリンクに基づいてそれぞれパス名を構成する。"
13499
13500 #. type: Plain text
13501 #: build/C/man2/rename.2:443
13502 msgid ""
13503 "On NFS filesystems, you can not assume that if the operation failed, the "
13504 "file was not renamed.  If the server does the rename operation and then "
13505 "crashes, the retransmitted RPC which will be processed when the server is up "
13506 "again causes a failure.  The application is expected to deal with this.  See "
13507 "B<link>(2)  for a similar problem."
13508 msgstr ""
13509 "NFS ファイルシステムでは、操作が失敗したからといって、 ファイルの名前が変更で"
13510 "きなかったと決めてかかることはできない。 サーバが rename 操作を終えてからク"
13511 "ラッシュした場合、 サーバが再び立ち上がったときに、 再送信された RPC が処理さ"
13512 "れるが、これは失敗となる。 アプリケーションはこの問題を正しく取り扱うことが期"
13513 "待されている。 同様の問題について B<link>(2)  にも書かれている。"
13514
13515 #. type: Plain text
13516 #: build/C/man2/rename.2:451
13517 msgid ""
13518 "B<mv>(1), B<chmod>(2), B<link>(2), B<symlink>(2), B<unlink>(2), "
13519 "B<path_resolution>(7), B<symlink>(7)"
13520 msgstr ""
13521 "B<mv>(1), B<chmod>(2), B<link>(2), B<symlink>(2), B<unlink>(2), "
13522 "B<path_resolution>(7), B<symlink>(7)"
13523
13524 #. type: TH
13525 #: build/C/man2/rmdir.2:30
13526 #, no-wrap
13527 msgid "RMDIR"
13528 msgstr "RMDIR"
13529
13530 #. type: TH
13531 #: build/C/man2/rmdir.2:30
13532 #, no-wrap
13533 msgid "2008-05-08"
13534 msgstr "2008-05-08"
13535
13536 #. type: Plain text
13537 #: build/C/man2/rmdir.2:33
13538 msgid "rmdir - delete a directory"
13539 msgstr "rmdir - ディレクトリを削除する"
13540
13541 #. type: Plain text
13542 #: build/C/man2/rmdir.2:37
13543 msgid "B<int rmdir(const char *>I<pathname>B<);>"
13544 msgstr "B<int rmdir(const char *>I<pathname>B<);>"
13545
13546 #. type: Plain text
13547 #: build/C/man2/rmdir.2:40
13548 msgid "B<rmdir>()  deletes a directory, which must be empty."
13549 msgstr ""
13550 "B<rmdir>()  はディレクトリを削除する。削除するディレクトリは空でなければなら"
13551 "ない。"
13552
13553 #. type: Plain text
13554 #: build/C/man2/rmdir.2:55
13555 msgid ""
13556 "Write access to the directory containing I<pathname> was not allowed, or one "
13557 "of the directories in the path prefix of I<pathname> did not allow search "
13558 "permission.  (See also B<path_resolution>(7)."
13559 msgstr ""
13560 "I<pathname> を含んでいるディレクトリへの書き込みアクセスが プロセスの実効 "
13561 "(effective) UID に対して許可されていないか、 I<pathname> に含まれているディレ"
13562 "クトリのどれかに検索 (実行) 許可がないか、 I<pathname> に至るまでのディレクト"
13563 "リのいずれかに対する検索許可がなかった。 (B<path_resolution>(7)  も参照のこ"
13564 "と)"
13565
13566 #. type: Plain text
13567 #: build/C/man2/rmdir.2:64
13568 msgid ""
13569 "I<pathname> is currently in use by the system or some process that prevents "
13570 "its removal.  On Linux this means I<pathname> is currently used as a mount "
13571 "point or is the root directory of the calling process."
13572 msgstr ""
13573 "I<pathname> がシステムや別のプロセスにより使用中で削除することができない。 "
13574 "Linux では、 I<pathname> がマウントポイントとして使用されているか、 呼び出し"
13575 "たプロセスのルートディレクトリであることを意味する。"
13576
13577 #. type: Plain text
13578 #: build/C/man2/rmdir.2:73
13579 msgid "I<pathname> has I<.> as last component."
13580 msgstr "I<pathname> の最後のディレクトリ部分が I<.> である。"
13581
13582 #. type: Plain text
13583 #: build/C/man2/rmdir.2:85
13584 msgid ""
13585 "A directory component in I<pathname> does not exist or is a dangling "
13586 "symbolic link."
13587 msgstr ""
13588 "I<pathname> の中のディレクトリ部分が存在しないか、壊れた (dangling)  シンボ"
13589 "リックリンク (symbolic link) である。"
13590
13591 #. type: Plain text
13592 #: build/C/man2/rmdir.2:94
13593 msgid ""
13594 "I<pathname>, or a component used as a directory in I<pathname>, is not, in "
13595 "fact, a directory."
13596 msgstr ""
13597 "I<pathname> か I<pathname> に含まれているディレクトリ部分が、実際には、ディレ"
13598 "クトリでない。"
13599
13600 #. type: TP
13601 #: build/C/man2/rmdir.2:94
13602 #, no-wrap
13603 msgid "B<ENOTEMPTY>"
13604 msgstr "B<ENOTEMPTY>"
13605
13606 #. type: Plain text
13607 #: build/C/man2/rmdir.2:107
13608 msgid ""
13609 "I<pathname> contains entries other than I<.> and I<..> ; or, I<pathname> has "
13610 "I<..> as its final component.  POSIX.1-2001 also allows B<EEXIST> for this "
13611 "condition."
13612 msgstr ""
13613 "ディレクトリ I<pathname> に I<.> と I<..> 以外のエントリがある。または、 "
13614 "I<pathname> を構成する最後の要素が I<..> である。 POSIX.1-2001 は、この状況"
13615 "で B<EEXIST> を返すことを認めている。"
13616
13617 #. type: Plain text
13618 #: build/C/man2/rmdir.2:118
13619 msgid ""
13620 "The directory containing I<pathname> has the sticky bit (B<S_ISVTX>)  set "
13621 "and the process's effective user ID is neither the user ID of the file to be "
13622 "deleted nor that of the directory containing it, and the process is not "
13623 "privileged (Linux: does not have the B<CAP_FOWNER> capability)."
13624 msgstr ""
13625 "I<pathname> を含んでいるディレクトリにスティッキービット(sticky-bit)  "
13626 "(B<S_ISVTX>)  が設定されていて、プロセスの実効ユーザーID が削除しようとする"
13627 "ファイルの ユーザID とそのファイルを含むディレクトリのユーザーID のどちらとも"
13628 "異なり、 プロセスも権限 (Linux では B<CAP_FOWNER> ケーパビリティ) がない。"
13629
13630 #. type: Plain text
13631 #: build/C/man2/rmdir.2:123
13632 msgid ""
13633 "The filesystem containing I<pathname> does not support the removal of "
13634 "directories."
13635 msgstr ""
13636 "I<pathname> を含んでいるファイルシステムがディレクトリの 削除をサポートしてい"
13637 "ない。"
13638
13639 #. type: Plain text
13640 #: build/C/man2/rmdir.2:127
13641 msgid "I<pathname> refers to a directory on a read-only filesystem."
13642 msgstr ""
13643 "I<pathname> が読み込み専用のファイルシステム上のディレクトリを参照している。"
13644
13645 #. type: Plain text
13646 #: build/C/man2/rmdir.2:132
13647 msgid ""
13648 "Infelicities in the protocol underlying NFS can cause the unexpected "
13649 "disappearance of directories which are still being used."
13650 msgstr ""
13651 "NFS プロトコルに潜在している欠陥によって、まだ使用中のディレクトリが 突然消滅"
13652 "する現象が引き起こされることがある。"
13653
13654 #. type: Plain text
13655 #: build/C/man2/rmdir.2:141
13656 msgid ""
13657 "B<rm>(1), B<rmdir>(1), B<chdir>(2), B<chmod>(2), B<mkdir>(2), B<rename>(2), "
13658 "B<unlink>(2), B<unlinkat>(2)"
13659 msgstr ""
13660 "B<rm>(1), B<rmdir>(1), B<chdir>(2), B<chmod>(2), B<mkdir>(2), B<rename>(2), "
13661 "B<unlink>(2), B<unlinkat>(2)"
13662
13663 #. type: TH
13664 #: build/C/man3/scanf.3:52
13665 #, no-wrap
13666 msgid "SCANF"
13667 msgstr "SCANF"
13668
13669 #. type: Plain text
13670 #: build/C/man3/scanf.3:55
13671 msgid ""
13672 "scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf - input format conversion"
13673 msgstr "scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf - 書式付き入力変換"
13674
13675 #. type: Plain text
13676 #: build/C/man3/scanf.3:62
13677 #, no-wrap
13678 msgid ""
13679 "B<int scanf(const char *>I<format>B<, ...);>\n"
13680 "B<int fscanf(FILE *>I<stream>B<, const char *>I<format>B<, ...);>\n"
13681 "B<int sscanf(const char *>I<str>B<, const char *>I<format>B<, ...);>\n"
13682 msgstr ""
13683 "B<int scanf(const char *>I<format>B<, ...);>\n"
13684 "B<int fscanf(FILE *>I<stream>B<, const char *>I<format>B<, ...);>\n"
13685 "B<int sscanf(const char *>I<str>B<, const char *>I<format>B<, ...);>\n"
13686
13687 #. type: Plain text
13688 #: build/C/man3/scanf.3:64
13689 #, no-wrap
13690 msgid "B<#include E<lt>stdarg.hE<gt>>\n"
13691 msgstr "B<#include E<lt>stdarg.hE<gt>>\n"
13692
13693 #. type: Plain text
13694 #: build/C/man3/scanf.3:68
13695 #, no-wrap
13696 msgid ""
13697 "B<int vscanf(const char *>I<format>B<, va_list >I<ap>B<);>\n"
13698 "B<int vsscanf(const char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>\n"
13699 "B<int vfscanf(FILE *>I<stream>B<, const char *>I<format>B<, va_list >I<ap>B<);>\n"
13700 msgstr ""
13701 "B<int vscanf(const char *>I<format>B<, va_list >I<ap>B<);>\n"
13702 "B<int vsscanf(const char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>\n"
13703 "B<int vfscanf(FILE *>I<stream>B<, const char *>I<format>B<, va_list >I<ap>B<);>\n"
13704
13705 #. type: Plain text
13706 #: build/C/man3/scanf.3:79
13707 msgid "B<vscanf>(), B<vsscanf>(), B<vfscanf>():"
13708 msgstr "B<vscanf>(), B<vsscanf>(), B<vfscanf>():"
13709
13710 #. type: Plain text
13711 #: build/C/man3/scanf.3:82
13712 msgid ""
13713 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ "
13714 "200112L;"
13715 msgstr ""
13716 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ "
13717 "200112L;"
13718
13719 #. type: Plain text
13720 #: build/C/man3/scanf.3:104
13721 msgid ""
13722 "The B<scanf>()  family of functions scans input according to I<format> as "
13723 "described below.  This format may contain I<conversion specifications>; the "
13724 "results from such conversions, if any, are stored in the locations pointed "
13725 "to by the I<pointer> arguments that follow I<format>.  Each I<pointer> "
13726 "argument must be of a type that is appropriate for the value returned by the "
13727 "corresponding conversion specification."
13728 msgstr ""
13729 "B<scanf>()  関数グループは、以下に述べるように、 I<format> に従って入力を読み"
13730 "込むものである。 この書式には I<「変換指定」 (conversion specifications)> を"
13731 "含めることができ、変換指定があれば、その変換の結果は I<format> に続く "
13732 "I<pointer> 引き数が指す場所に格納される。 それぞれの I<pointer> 引き数の型"
13733 "は、対応する変換指定が返す値に 適合していなければならない。"
13734
13735 #. type: Plain text
13736 #: build/C/man3/scanf.3:115
13737 msgid ""
13738 "If the number of conversion specifications in I<format> exceeds the number "
13739 "of I<pointer> arguments, the results are undefined.  If the number of "
13740 "I<pointer> arguments exceeds the number of conversion specifications, then "
13741 "the excess I<pointer> arguments are evaluated, but are otherwise ignored."
13742 msgstr ""
13743 "I<format> 中の変換指定の個数が I<pointer> 引き数の数より多かった場合の結果は"
13744 "未定義である。 I<pointer> 引き数の数が変換指定の個数よりも多かった場合、 余分"
13745 "な I<pointer> 引き数の評価は行われるが、それ以外は行われず無視される。"
13746
13747 #. type: Plain text
13748 #: build/C/man3/scanf.3:127
13749 msgid ""
13750 "The B<scanf>()  function reads input from the standard input stream "
13751 "I<stdin>, B<fscanf>()  reads input from the stream pointer I<stream>, and "
13752 "B<sscanf>()  reads its input from the character string pointed to by I<str>."
13753 msgstr ""
13754 "B<scanf>()  関数は標準入力ストリーム I<stdin> からの入力を読み込む。 "
13755 "B<fscanf>()  はストリームポインタ I<stream> からの入力を読み込む。 "
13756 "B<sscanf>()  は文字列ポインタ I<str> で示された文字列からの入力を読み込む。"
13757
13758 #. type: Plain text
13759 #: build/C/man3/scanf.3:145
13760 msgid ""
13761 "The B<vfscanf>()  function is analogous to B<vfprintf>(3)  and reads input "
13762 "from the stream pointer I<stream> using a variable argument list of pointers "
13763 "(see B<stdarg>(3).  The B<vscanf>()  function scans a variable argument list "
13764 "from the standard input and the B<vsscanf>()  function scans it from a "
13765 "string; these are analogous to the B<vprintf>(3)  and B<vsprintf>(3)  "
13766 "functions respectively."
13767 msgstr ""
13768 "B<vfscanf>()  関数は B<vfprintf>(3)  と同様に、ストリームポインタ I<stream> "
13769 "からの入力をポインタの可変長引き数リストを用いて読み込む (B<stdarg>(3)  を参"
13770 "照)。 B<vscanf>()  関数は、可変長引き数のリストに基づき標準入力からの読み取り"
13771 "を行う。 B<vsscanf>()  関数はそのリストに基づき文字列から読み取る。 これらの"
13772 "関係は B<vprintf>(3)  と B<vsprintf>(3)  関数の関係と同様である。"
13773
13774 #. type: Plain text
13775 #: build/C/man3/scanf.3:159
13776 msgid ""
13777 "The I<format> string consists of a sequence of I<directives> which describe "
13778 "how to process the sequence of input characters.  If processing of a "
13779 "directive fails, no further input is read, and B<scanf>()  returns.  A "
13780 "\"failure\" can be either of the following: I<input failure>, meaning that "
13781 "input characters were unavailable, or I<matching failure>, meaning that the "
13782 "input was inappropriate (see below)."
13783 msgstr ""
13784 "I<format> 文字列は I<「命令」 (directive)> の列で構成される。命令は入力文字の"
13785 "系列をどのように処理するかを指示する ものである。ある命令の処理が失敗すると、"
13786 "入力はそれ以上読み込まれず、 B<scanf>()  は返る。「失敗」は I<「入力の失敗」 "
13787 "(input failure)> と I<「一致の失敗」 (matching failure)> のいずれかである。 "
13788 "入力の失敗は入力文字が使用できなかったことを意味し、 一致の失敗は入力が不適切"
13789 "であったこと (下記参照) を意味する。"
13790
13791 #. type: Plain text
13792 #: build/C/man3/scanf.3:161
13793 msgid "A directive is one of the following:"
13794 msgstr "命令は以下のいずれかである:"
13795
13796 #. type: TP
13797 #: build/C/man3/scanf.3:161 build/C/man3/scanf.3:167 build/C/man3/scanf.3:171
13798 #: build/C/man3/scanf.3:190 build/C/man3/scanf.3:201 build/C/man3/scanf.3:220
13799 #: build/C/man3/scanf.3:232 build/C/man3/scanf.3:246
13800 #, no-wrap
13801 msgid "\\(bu"
13802 msgstr "\\(bu"
13803
13804 #. type: Plain text
13805 #: build/C/man3/scanf.3:167
13806 msgid ""
13807 "A sequence of white-space characters (space, tab, newline, etc.; see "
13808 "B<isspace>(3)).  This directive matches any amount of white space, including "
13809 "none, in the input."
13810 msgstr ""
13811 "ホワイトスペース (スペース、タブ、改行など; B<isspace>(3)  参照) の列。 この"
13812 "命令は、入力中の任意の個数のホワイトスペースに一致する。 (「何もなし」にも一"
13813 "致する)。"
13814
13815 #. type: Plain text
13816 #: build/C/man3/scanf.3:171
13817 msgid ""
13818 "An ordinary character (i.e., one other than white space or \\(aq%\\(aq).  "
13819 "This character must exactly match the next character of input."
13820 msgstr ""
13821 "通常文字 (つまり、ホワイトスペースと \\(aq%\\(aq 以外の文字)。 この文字は入力"
13822 "の次の文字に正確に一致しなければならない。"
13823
13824 #. type: Plain text
13825 #: build/C/man3/scanf.3:182
13826 msgid ""
13827 "A conversion specification, which commences with a \\(aq%\\(aq (percent) "
13828 "character.  A sequence of characters from the input is converted according "
13829 "to this specification, and the result is placed in the corresponding "
13830 "I<pointer> argument.  If the next item of input does not match the "
13831 "conversion specification, the conversion fails\\(emthis is a I<matching "
13832 "failure>."
13833 msgstr ""
13834 "変換指定。変換指定は \\(aq%\\(aq (パーセント) 文字で始まる。 入力された文字の"
13835 "系列はこの指定にもとづいて変換され、 変換結果は対応する I<pointer> 引き数が指"
13836 "す場所に格納される。 入力の次の文字が変換指定と一致しない場合は、変換は失敗す"
13837 "る \\(emこれが I<「一致の失敗」 (matching failure)> である。"
13838
13839 #. type: Plain text
13840 #: build/C/man3/scanf.3:190
13841 msgid ""
13842 "Each I<conversion specification> in I<format> begins with either the "
13843 "character \\(aq%\\(aq or the character sequence \"B<%>I<n>B<$>\" (see below "
13844 "for the distinction) followed by:"
13845 msgstr ""
13846 "I<format> 中の各々の I<「変換指定」> は文字 \\(aq%\\(aq か文字系列 \"B<"
13847 "%>I<n>B<$>\" (違いについては後述) で始まり、以下の要素が続く。"
13848
13849 #. type: Plain text
13850 #: build/C/man3/scanf.3:201
13851 msgid ""
13852 "An optional \\(aq*\\(aq assignment-suppression character: B<scanf>()  reads "
13853 "input as directed by the conversion specification, but discards the input.  "
13854 "No corresponding I<pointer> argument is required, and this specification is "
13855 "not included in the count of successful assignments returned by B<scanf>()."
13856 msgstr ""
13857 "代入抑制文字 \\(aq*\\(aq (省略可能)。 B<scanf>()  は変換指定に指示された通り"
13858 "入力を読み込むが、その入力は捨てられる。 対応する I<pointer> 引き数は必要な"
13859 "く、 B<scanf>()  が返す代入が成功した数にこの指定は含まれない。"
13860
13861 #. type: Plain text
13862 #: build/C/man3/scanf.3:220
13863 msgid ""
13864 "An optional \\(aqm\\(aq character.  This is used with string conversions (I<"
13865 "%s>, I<%c>, I<%[>), and relieves the caller of the need to allocate a "
13866 "corresponding buffer to hold the input: instead, B<scanf>()  allocates a "
13867 "buffer of sufficient size, and assigns the address of this buffer to the "
13868 "corresponding I<pointer> argument, which should be a pointer to a I<char\\ "
13869 "*> variable (this variable does not need to be initialized before the "
13870 "call).  The caller should subsequently B<free>(3)  this buffer when it is no "
13871 "longer required."
13872 msgstr ""
13873 "文字 \\(aqm\\(aq (省略可能)。これは文字列変換 (I<%s>, I<%c>, I<%[>) とともに"
13874 "使用され、これを使うと 呼び出し元が入力を保持する対応するバッファを確保する必"
13875 "要がなくなる。 代わりに B<scanf>()  が必要な大きさのバッファを確保し、この"
13876 "バッファのアドレスを 対応する I<pointer> 引き数に代入する。 I<pointer> 引き数"
13877 "は I<char\\ *> 型の変数へのポインタでなければならない (変数自体は呼び出し前に"
13878 "初期化されている必要はない)。 呼び出し元は、不要になった時点で、このバッファ"
13879 "を B<free>(3) すべきである。"
13880
13881 #. type: Plain text
13882 #: build/C/man3/scanf.3:232
13883 msgid ""
13884 "An optional decimal integer which specifies the I<maximum field width>.  "
13885 "Reading of characters stops either when this maximum is reached or when a "
13886 "nonmatching character is found, whichever happens first.  Most conversions "
13887 "discard initial white space characters (the exceptions are noted below), and "
13888 "these discarded characters don't count toward the maximum field width.  "
13889 "String input conversions store a terminating null byte (\\(aq\\e0\\(aq)  to "
13890 "mark the end of the input; the maximum field width does not include this "
13891 "terminator."
13892 msgstr ""
13893 "I<「最大フィールド幅」> を指定する 10進数 (省略可能)。 この最大値に達するか、"
13894 "一致しない文字が見つかるか、のどちらかに なると、文字の読み込みを停止する。 "
13895 "ほとんどの変換では、先頭のホワイトスペース文字は捨てられ (例外については後述"
13896 "する)、 捨てられたこれらの文字は最大フィールド幅の計算には含まれない。 文字列"
13897 "の入力変換では、入力の末尾を示す終端のヌルバイト (\\(aq\\e0\\(aq)  も格納され"
13898 "るが、最大フィールド幅にはこの終端バイトは含まれない。"
13899
13900 #. type: Plain text
13901 #: build/C/man3/scanf.3:246
13902 msgid ""
13903 "An optional I<type modifier character>.  For example, the B<l> type modifier "
13904 "is used with integer conversions such as B<%d> to specify that the "
13905 "corresponding I<pointer> argument refers to a I<long int> rather than a "
13906 "pointer to an I<int>."
13907 msgstr ""
13908 "I<「型修飾子」 (type modifier characters)> (省略可能)。 例えば、型修飾子 "
13909 "B<l> を B<%d> などの整数変換と一緒に使うと、対応する I<pointer> 引き数が "
13910 "I<int> ではなく I<long int> を参照していることを指定できる。"
13911
13912 #. type: Plain text
13913 #: build/C/man3/scanf.3:251
13914 msgid ""
13915 "A I<conversion specifier> that specifies the type of input conversion to be "
13916 "performed."
13917 msgstr "I<「変換指定」> : 実行すべき入力変換の種類を指定する。"
13918
13919 #. type: Plain text
13920 #: build/C/man3/scanf.3:280
13921 msgid ""
13922 "The conversion specifications in I<format> are of two forms, either "
13923 "beginning with \\(aq%\\(aq or beginning with \"B<%>I<n>B<$>\".  The two "
13924 "forms should not be mixed in the same I<format> string, except that a string "
13925 "containing \"B<%>I<n>B<$>\" specifications can include B<%%> and B<%*>.  If "
13926 "I<format> contains \\(aq%\\(aq specifications, then these correspond in "
13927 "order with successive I<pointer> arguments.  In the \"B<%>I<n>B<$>\" form "
13928 "(which is specified in POSIX.1-2001, but not C99), I<n> is a decimal integer "
13929 "that specifies that the converted input should be placed in the location "
13930 "referred to by the I<n>-th I<pointer> argument following I<format>."
13931 msgstr ""
13932 "I<format> 中の変換指定は、\\(aq%\\(aq で始まるか、 \"B<%>I<n>B<$>\" で始まる"
13933 "かの、いずれかの形式である。 これら 2つの形式を同じ I<format> 文字列に混ぜる"
13934 "ことはできない。但し、\"B<%>I<n>B<$>\" を 含む文字列に B<%%> と B<%*> を含め"
13935 "ることはできる。 I<format> に \\(aq%\\(aq 指定が含まれている場合、各々の "
13936 "\\(aq%\\(aq 指定と 後続の I<pointer> 引き数はその順番通りに対応する。 \"B<"
13937 "%>I<n>B<$>\" 形式 (POSIX.1-2001 では規定されているが、C99 にはない)  では、 "
13938 "I<n> は 10進数であり、変換後の入力を I<format> の後ろの I<n> 番目の "
13939 "I<pointer> 引き数が参照する場所に格納することを指定する。"
13940
13941 #. type: SS
13942 #: build/C/man3/scanf.3:280
13943 #, no-wrap
13944 msgid "Conversions"
13945 msgstr "変換"
13946
13947 #. type: Plain text
13948 #: build/C/man3/scanf.3:284
13949 msgid ""
13950 "The following I<type modifier characters> can appear in a conversion "
13951 "specification:"
13952 msgstr "変換指定には、以下の I<「型修飾子」> を入れることができる。"
13953
13954 #. type: Plain text
13955 #: build/C/man3/scanf.3:294
13956 msgid ""
13957 "Indicates that the conversion will be one of B<d>, B<i>, B<o>, B<u>, B<x>, "
13958 "B<X>, or B<n> and the next pointer is a pointer to a I<short int> or "
13959 "I<unsigned short int> (rather than I<int>)."
13960 msgstr ""
13961 "変換が B<d>, B<i>, B<o>, B<u>, B<x>, B<X>, B<n> のいずれかであり、次のポイン"
13962 "タが (I<int> ではなく)  I<short int> か I<unsigned short int> へのポインタで"
13963 "あることを示す。"
13964
13965 #. type: Plain text
13966 #: build/C/man3/scanf.3:302
13967 msgid ""
13968 "As for B<h>, but the next pointer is a pointer to a I<signed char> or "
13969 "I<unsigned char>."
13970 msgstr ""
13971 "B<h> と同じだが、次のポインタが I<signed char> か I<unsigned char> へのポイン"
13972 "タであることを示す。"
13973
13974 #. type: Plain text
13975 #: build/C/man3/scanf.3:311
13976 msgid ""
13977 "As for B<h>, but the next pointer is a pointer to an I<intmax_t> or a "
13978 "I<uintmax_t>.  This modifier was introduced in C99."
13979 msgstr ""
13980 "B<h> と同じだが、次のポインタが I<intmax_t> か I<uintmax_t> へのポインタであ"
13981 "ることを示す。 この修飾子は C99 で導入された。"
13982
13983 #.  This use of l was introduced in Amendment 1 to ISO C90.
13984 #. type: Plain text
13985 #: build/C/man3/scanf.3:338
13986 msgid ""
13987 "Indicates either that the conversion will be one of B<d>, B<i>, B<o>, B<u>, "
13988 "B<x>, B<X>, or B<n> and the next pointer is a pointer to a I<long int> or "
13989 "I<unsigned long int> (rather than I<int>), or that the conversion will be "
13990 "one of B<e>, B<f>, or B<g> and the next pointer is a pointer to I<double> "
13991 "(rather than I<float>).  Specifying two B<l> characters is equivalent to "
13992 "B<L>.  If used with B<%c> or B<%s>, the corresponding parameter is "
13993 "considered as a pointer to a wide character or wide-character string "
13994 "respectively."
13995 msgstr ""
13996 "変換が B<d>, B<i>, B<o>, B<u>, B<x>, B<X>, B<n> か B<n> のいずれかであり次の"
13997 "ポインタが (I<int> ではなく)  I<long int> か I<unsigned long int> へのポイン"
13998 "タであること、または、変換が B<e>, B<f>, B<g> のうちのひとつであり次のポイン"
13999 "タが (I<float> ではなく)  I<double> へのポインタであることのいずれかであるこ"
14000 "とを示す。 B<l> 文字を二つ指定すると、 B<L> と同じ意味となる。 B<%c> や B<"
14001 "%s> とともに使用すると、 パラメータはそれぞれワイド文字やワイド文字列へのポイ"
14002 "ンタであると みなされる。"
14003
14004 #.  MTK, Jul 05: The following is no longer true for modern
14005 #.  ANSI C (i.e., C99):
14006 #.  (Note that long long is not an
14007 #.  ANSI C
14008 #.  type. Any program using this will not be portable to all
14009 #.  architectures).
14010 #. type: Plain text
14011 #: build/C/man3/scanf.3:354
14012 msgid ""
14013 "Indicates that the conversion will be either B<e>, B<f>, or B<g> and the "
14014 "next pointer is a pointer to I<long double> or the conversion will be B<d>, "
14015 "B<i>, B<o>, B<u>, or B<x> and the next pointer is a pointer to I<long long>."
14016 msgstr ""
14017 "B<e>, B<f>, B<g> 変換で、次のポインタが I<long double> へのポインタであること"
14018 "を示す。もしくは、 B<d>, B<i>, B<o>, B<u>, B<x> 変換で、次のポインタが "
14019 "I<long long> へのポインタであることのいずれかであることを示す。"
14020
14021 #. type: TP
14022 #: build/C/man3/scanf.3:354
14023 #, no-wrap
14024 msgid "B<q>"
14025 msgstr "B<q>"
14026
14027 #. type: Plain text
14028 #: build/C/man3/scanf.3:359
14029 msgid "equivalent to B<L>.  This specifier does not exist in ANSI C."
14030 msgstr "B<L> と同一である。 この修飾子は ANSI C には存在しない。"
14031
14032 #. type: Plain text
14033 #: build/C/man3/scanf.3:366
14034 msgid ""
14035 "As for B<h>, but the next pointer is a pointer to a I<ptrdiff_t>.  This "
14036 "modifier was introduced in C99."
14037 msgstr ""
14038 "B<h> と同様だが、次のポインタが I<ptrdiff_t> へのポインタであることを示す。 "
14039 "この修飾子は C99 で導入された。"
14040
14041 #. type: Plain text
14042 #: build/C/man3/scanf.3:373
14043 msgid ""
14044 "As for B<h>, but the next pointer is a pointer to a I<size_t>.  This "
14045 "modifier was introduced in C99."
14046 msgstr ""
14047 "B<h> と同様だが、次のポインタが I<size_t> へのポインタであることを示す。 この"
14048 "修飾子は C99 で導入された。"
14049
14050 #. type: Plain text
14051 #: build/C/man3/scanf.3:377
14052 msgid "The following I<conversion specifiers> are available:"
14053 msgstr "以下の I<「変換指定子」> が利用可能である。"
14054
14055 #. type: Plain text
14056 #: build/C/man3/scanf.3:386
14057 msgid ""
14058 "Matches a literal \\(aq%\\(aq.  That is, B<%\\&%> in the format string "
14059 "matches a single input \\(aq%\\(aq character.  No conversion is done (but "
14060 "initial white space characters are discarded), and assignment does not occur."
14061 msgstr ""
14062 "文字 \\(aq%\\(aq に対応する。 書式文字列の中の B<%\\&%> は単一の文字 \\(aq%"
14063 "\\(aq に対応する。 変換は行われず (但し、先頭のホワイトスペース文字は捨てられ"
14064 "る)、 変数への代入は生じない。"
14065
14066 #. type: TP
14067 #: build/C/man3/scanf.3:386
14068 #, no-wrap
14069 msgid "B<d>"
14070 msgstr "B<d>"
14071
14072 #. type: Plain text
14073 #: build/C/man3/scanf.3:391
14074 msgid ""
14075 "Matches an optionally signed decimal integer; the next pointer must be a "
14076 "pointer to I<int>."
14077 msgstr ""
14078 "符号つきの 10進の整数に対応する。 次のポインタは I<int> へのポインタでなけれ"
14079 "ばならない。"
14080
14081 #. type: TP
14082 #: build/C/man3/scanf.3:391
14083 #, no-wrap
14084 msgid "B<D>"
14085 msgstr "B<D>"
14086
14087 #. type: Plain text
14088 #: build/C/man3/scanf.3:400
14089 msgid ""
14090 "Equivalent to I<ld>; this exists only for backward compatibility.  (Note: "
14091 "thus only in libc4.  In libc5 and glibc the B<%D> is silently ignored, "
14092 "causing old programs to fail mysteriously.)"
14093 msgstr ""
14094 "I<ld> と同一である。これは以前の仕様との互換性だけのためにある。 (注意: これ"
14095 "は libc4 の場合だけである。 libc5 や glibc では B<%D> は暗黙のうちに無視さ"
14096 "れ、古いプログラムにおいて謎に満ちた失敗の原因となる。)"
14097
14098 #. type: TP
14099 #: build/C/man3/scanf.3:400
14100 #, no-wrap
14101 msgid "B<i>"
14102 msgstr "B<i>"
14103
14104 #. type: Plain text
14105 #: build/C/man3/scanf.3:412
14106 msgid ""
14107 "Matches an optionally signed integer; the next pointer must be a pointer to "
14108 "I<int>.  The integer is read in base 16 if it begins with I<0x> or I<0X>, in "
14109 "base 8 if it begins with I<0>, and in base 10 otherwise.  Only characters "
14110 "that correspond to the base are used."
14111 msgstr ""
14112 "符号つき整数に対応する。 次のポインタは I<int> へのポインタでなければならな"
14113 "い。 この整数は I<0x> または I<0X> で開始する場合には 16 進数、 I<0> で開始す"
14114 "る場合には 8 進数、その他の場合には 10進数として読み込まれる。 この変換で使用"
14115 "される文字は、これらの基数に対応しているものだけである。"
14116
14117 #. type: TP
14118 #: build/C/man3/scanf.3:412
14119 #, no-wrap
14120 msgid "B<o>"
14121 msgstr "B<o>"
14122
14123 #. type: Plain text
14124 #: build/C/man3/scanf.3:416
14125 msgid ""
14126 "Matches an unsigned octal integer; the next pointer must be a pointer to "
14127 "I<unsigned int>."
14128 msgstr ""
14129 "符号なしの 8 進の整数に対応する。 次のポインタは I<unsigned int> でなければな"
14130 "らない。"
14131
14132 #. type: TP
14133 #: build/C/man3/scanf.3:416
14134 #, no-wrap
14135 msgid "B<u>"
14136 msgstr "B<u>"
14137
14138 #. type: Plain text
14139 #: build/C/man3/scanf.3:421
14140 msgid ""
14141 "Matches an unsigned decimal integer; the next pointer must be a pointer to "
14142 "I<unsigned int>."
14143 msgstr ""
14144 "符号なしの 10進の整数に対応する。 次のポインタは I<unsigned int> へのポインタ"
14145 "でなければならない。"
14146
14147 #. type: Plain text
14148 #: build/C/man3/scanf.3:426
14149 msgid ""
14150 "Matches an unsigned hexadecimal integer; the next pointer must be a pointer "
14151 "to I<unsigned int>."
14152 msgstr ""
14153 "符号なしの 16 進の整数に対応する。 次のポインタは I<unsigned int> へのポイン"
14154 "タでなければならない。"
14155
14156 #. type: TP
14157 #: build/C/man3/scanf.3:426
14158 #, no-wrap
14159 msgid "B<X>"
14160 msgstr "B<X>"
14161
14162 #. type: Plain text
14163 #: build/C/man3/scanf.3:430
14164 msgid "Equivalent to B<x>."
14165 msgstr "B<x> と同一である。"
14166
14167 #. type: TP
14168 #: build/C/man3/scanf.3:430
14169 #, no-wrap
14170 msgid "B<f>"
14171 msgstr "B<f>"
14172
14173 #. type: Plain text
14174 #: build/C/man3/scanf.3:435
14175 msgid ""
14176 "Matches an optionally signed floating-point number; the next pointer must be "
14177 "a pointer to I<float>."
14178 msgstr ""
14179 "符号つき浮動小数点実数に対応する。 次のポインタは I<float> へのポインタでなけ"
14180 "ればならない。"
14181
14182 #. type: TP
14183 #: build/C/man3/scanf.3:435
14184 #, no-wrap
14185 msgid "B<e>"
14186 msgstr "B<e>"
14187
14188 #. type: Plain text
14189 #: build/C/man3/scanf.3:439 build/C/man3/scanf.3:443 build/C/man3/scanf.3:447
14190 msgid "Equivalent to B<f>."
14191 msgstr "B<f> と同一である。"
14192
14193 #. type: TP
14194 #: build/C/man3/scanf.3:439
14195 #, no-wrap
14196 msgid "B<g>"
14197 msgstr "B<g>"
14198
14199 #. type: TP
14200 #: build/C/man3/scanf.3:443
14201 #, no-wrap
14202 msgid "B<E>"
14203 msgstr "B<E>"
14204
14205 #. type: Plain text
14206 #: build/C/man3/scanf.3:451
14207 msgid "(C99) Equivalent to B<f>."
14208 msgstr "(C99)  B<f> と同一である。"
14209
14210 #. type: Plain text
14211 #: build/C/man3/scanf.3:459
14212 msgid ""
14213 "Matches a sequence of non-white-space characters; the next pointer must be a "
14214 "pointer to character array that is long enough to hold the input sequence "
14215 "and the terminating null byte (\\(aq\\e0\\(aq), which is added "
14216 "automatically.  The input string stops at white space or at the maximum "
14217 "field width, whichever occurs first."
14218 msgstr ""
14219 "ホワイトスペースではない文字で構成された文字列に対応する。 次のポインタは文字"
14220 "の配列へのポインタでなければならず、 その文字配列は、入力された文字列と (自動"
14221 "的に追加される) 終端のヌルバイト (\\(aq\\e0\\(aq) を格納するのに十分な大きさ"
14222 "でなければならない。 文字列の入力は、ホワイトスペースが入力されるか、最大"
14223 "フィールド幅に 達するか、のどちらかが起こると停止される。"
14224
14225 #. type: Plain text
14226 #: build/C/man3/scanf.3:469
14227 msgid ""
14228 "Matches a sequence of characters whose length is specified by the I<maximum "
14229 "field width> (default 1); the next pointer must be a pointer to I<char>, and "
14230 "there must be enough room for all the characters (no terminating null byte "
14231 "is added).  The usual skip of leading white space is suppressed.  To skip "
14232 "white space first, use an explicit space in the format."
14233 msgstr ""
14234 "I<「最大フィールド幅」> (デフォルトは 1) で指定された幅の文字の列に対応す"
14235 "る。 次のポインタは I<char> へのポインタで、すべての文字を格納するのに十分な"
14236 "領域が なければならない (終端のヌルバイトは追加されない)。 通常行われる先頭の"
14237 "ホワイトスペースの読み飛ばしは行われない。 先頭のホワイトスペースを読み飛ばす"
14238 "ためには、 フォーマット文の中で明示的にスペースを使用すれば良い。"
14239
14240 #. type: TP
14241 #: build/C/man3/scanf.3:469
14242 #, no-wrap
14243 msgid "B<\\&[>"
14244 msgstr "B<\\&[>"
14245
14246 #. type: Plain text
14247 #: build/C/man3/scanf.3:502
14248 msgid ""
14249 "Matches a nonempty sequence of characters from the specified set of accepted "
14250 "characters; the next pointer must be a pointer to I<char>, and there must be "
14251 "enough room for all the characters in the string, plus a terminating null "
14252 "byte.  The usual skip of leading white space is suppressed.  The string is "
14253 "to be made up of characters in (or not in) a particular set; the set is "
14254 "defined by the characters between the open bracket B<[> character and a "
14255 "close bracket B<]> character.  The set I<excludes> those characters if the "
14256 "first character after the open bracket is a circumflex (B<^>).  To include a "
14257 "close bracket in the set, make it the first character after the open bracket "
14258 "or the circumflex; any other position will end the set.  The hyphen "
14259 "character B<-> is also special; when placed between two other characters, it "
14260 "adds all intervening characters to the set.  To include a hyphen, make it "
14261 "the last character before the final close bracket.  For instance, "
14262 "B<[^]0-9-]> means the set \"everything except close bracket, zero through "
14263 "nine, and hyphen\".  The string ends with the appearance of a character not "
14264 "in the (or, with a circumflex, in) set or when the field width runs out."
14265 msgstr ""
14266 "格納された文字列のうちから取り出された、 指定された文字の集合で構成される空で"
14267 "はない文字の列に対応する。 次のポインタは I<char> へのポインタでなければなら"
14268 "ず、 そこには文字列中のすべての文字と終端のヌルバイト を格納するための十分な"
14269 "領域がなければならない。 通常行われる先頭のホワイトスペースの読み飛ばしは行わ"
14270 "れない。 この文字列は特別な集合の中の文字で構成されている。 この集合は 開き括"
14271 "弧 B<[> と閉じ括弧 B<]> の間の文字で定義される。 開き括弧のあとの最初の文字が"
14272 "曲アクセント記号 (B<^>)  の場合、集合はこれらの文字を含まないものとなる。 閉"
14273 "じ括弧を集合に含ませるためには、この文字を開き括弧または 曲アクセント記号のあ"
14274 "との最初の文字にすればよい。 つまり、他の位置に閉じ括弧を置くと文字の集合が終"
14275 "る。 ハイフン B<-> もまた特殊文字である。 二つの異なる文字の間に置かれた時、"
14276 "この文字は、 その間にある全ての文字を集合に加える。 ハイフン自体を含ませるた"
14277 "めには、 括弧が閉じる前の最後の一文字をハイフンにすればよい。 例えば、 "
14278 "B<[^]0-9-]> は「閉じ括弧、0 〜 9、ハイフンの 3 種類を除く全ての文字」の集合を"
14279 "意味する。 この文字列は 集合に含まれていない (曲アクセントの場合には含まれ"
14280 "る) 文字の 出現または確保された領域が使い切られた時に終了する。"
14281
14282 #. type: Plain text
14283 #: build/C/man3/scanf.3:510
14284 msgid ""
14285 "Matches a pointer value (as printed by B<%p> in B<printf>(3); the next "
14286 "pointer must be a pointer to a pointer to I<void>."
14287 msgstr ""
14288 "(B<printf>(3)  の B<%p> で印字されるような) ポインタ値に対応する。 次のポイン"
14289 "タは I<void> へのポインタへのポインタでなければならない。"
14290
14291 #. type: Plain text
14292 #: build/C/man3/scanf.3:530
14293 msgid ""
14294 "Nothing is expected; instead, the number of characters consumed thus far "
14295 "from the input is stored through the next pointer, which must be a pointer "
14296 "to I<int>.  This is I<not> a conversion, although it can be suppressed with "
14297 "the B<*> assignment-suppression character.  The C standard says: \"Execution "
14298 "of a B<%n> directive does not increment the assignment count returned at the "
14299 "completion of execution\" but the Corrigendum seems to contradict this.  "
14300 "Probably it is wise not to make any assumptions on the effect of B<%n> "
14301 "conversions on the return value."
14302 msgstr ""
14303 "どんな入力も必要としない。 そのかわりに、 入力からここまで消費された文字数が"
14304 "次のポインタで指定された場所に 格納される。 このポインタは I<int> へのポイン"
14305 "タでなければならない。 変換を抑制するのであれば B<*> 代入抑制文字を使って抑制"
14306 "することができるのだが、 この変換指定子は変換では「ない」。 C 言語の標準規格"
14307 "では「実行の完了時に返される代入の回数は B<%n> 命令の実行では増加しない」と"
14308 "なっているが、 正誤表の内容はこれと矛盾するようである。おそらく、 B<%n> 変換"
14309 "が返り値に与える影響についてはどのような仮定もしないのが 賢明であろう。"
14310
14311 #. type: Plain text
14312 #: build/C/man3/scanf.3:535
14313 msgid ""
14314 "These functions return the number of input items successfully matched and "
14315 "assigned, which can be fewer than provided for, or even zero in the event of "
14316 "an early matching failure."
14317 msgstr ""
14318 "これらの関数は、一致と代入が成功した入力要素の個数を返す。 返される値は渡され"
14319 "た変換の個数よりも少ないこともあり、 最初に一致の失敗があった場合には 0 にな"
14320 "ることもある。"
14321
14322 #. type: Plain text
14323 #: build/C/man3/scanf.3:547
14324 msgid ""
14325 "The value B<EOF> is returned if the end of input is reached before either "
14326 "the first successful conversion or a matching failure occurs.  B<EOF> is "
14327 "also returned if a read error occurs, in which case the error indicator for "
14328 "the stream (see B<ferror>(3))  is set, and I<errno> is set indicate the "
14329 "error."
14330 msgstr ""
14331 "最初の変換が成功する前に入力の最後に達して、一致の失敗が起こった場合には、 "
14332 "B<EOF> が返される。また、 読み込みエラーが発生した場合にも B<EOF> が返され"
14333 "る。読み込みエラーの場合には、そのストリームの エラー指示子がセットされ "
14334 "(B<ferror>(3)  参照)、 I<errno> にエラーを示す値がセットされる。"
14335
14336 #. type: Plain text
14337 #: build/C/man3/scanf.3:553
14338 msgid ""
14339 "The file descriptor underlying I<stream> is marked nonblocking, and the read "
14340 "operation would block."
14341 msgstr ""
14342 "I<stream> に対応するファイルディスクリプタが nonblocking となっており、 読み"
14343 "込み操作は停止 (block) することになる。"
14344
14345 #. type: Plain text
14346 #: build/C/man3/scanf.3:558
14347 msgid ""
14348 "The file descriptor underlying I<stream> is invalid, or not open for reading."
14349 msgstr ""
14350 "I<stream> に対応するファイルディスクリプタが無効であるが、 読み込み用にオープ"
14351 "ンされていない。"
14352
14353 #. type: Plain text
14354 #: build/C/man3/scanf.3:561
14355 msgid "Input byte sequence does not form a valid character."
14356 msgstr "入力されたバイト列が有効な文字を構成していない。"
14357
14358 #. type: Plain text
14359 #: build/C/man3/scanf.3:565
14360 msgid "The read operation was interrupted by a signal; see B<signal>(7)."
14361 msgstr "読み込み操作がシグナルにより割り込まれた。 B<signal>(7)  参照。"
14362
14363 #. type: Plain text
14364 #: build/C/man3/scanf.3:570
14365 msgid "Not enough arguments; or I<format> is NULL."
14366 msgstr "引き数が十分でない。または I<format> が NULL である。"
14367
14368 #. type: Plain text
14369 #: build/C/man3/scanf.3:573
14370 msgid "Out of memory."
14371 msgstr "メモリ不足。"
14372
14373 #. type: TP
14374 #: build/C/man3/scanf.3:573
14375 #, no-wrap
14376 msgid "B<ERANGE>"
14377 msgstr "B<ERANGE>"
14378
14379 #. type: Plain text
14380 #: build/C/man3/scanf.3:577
14381 msgid ""
14382 "The result of an integer conversion would exceed the size that can be stored "
14383 "in the corresponding integer type."
14384 msgstr "整数変換の結果が、対応する整数型に格納できるサイズを越えてしまう。"
14385
14386 #. type: Plain text
14387 #: build/C/man3/scanf.3:587
14388 msgid ""
14389 "The functions B<fscanf>(), B<scanf>(), and B<sscanf>()  conform to C89 and "
14390 "C99 and POSIX.1-2001.  These standards do not specify the B<ERANGE> error."
14391 msgstr ""
14392 "B<fscanf>(), B<scanf>(), B<sscanf>()  関数は C89, C99, POSIX.1-2001 に準拠し"
14393 "ている。 これらの標準では、エラー B<ERANGE> は規定されていない。"
14394
14395 #. type: Plain text
14396 #: build/C/man3/scanf.3:597
14397 msgid ""
14398 "The B<q> specifier is the 4.4BSD notation for I<long long>, while B<ll> or "
14399 "the usage of B<L> in integer conversions is the GNU notation."
14400 msgstr ""
14401 "B<q> 指定子は I<long long> の 4.4BSD での記述方法である。 一方、整数変換での "
14402 "B<ll> または B<L> の使用は GNU での拡張である。"
14403
14404 #. type: Plain text
14405 #: build/C/man3/scanf.3:608
14406 msgid ""
14407 "The Linux version of these functions is based on the I<GNU> I<libio> "
14408 "library.  Take a look at the I<info> documentation of I<GNU> I<libc "
14409 "(glibc-1.08)> for a more concise description."
14410 msgstr ""
14411 "これらの関数の Linux 版は I<GNU> I<libio> ライブラリーを元にしている。 より簡"
14412 "潔な説明には I<GNU> I<libc (glibc-1.08)> の I<info> 文書に目を通すこと。"
14413
14414 #. type: SS
14415 #: build/C/man3/scanf.3:609
14416 #, no-wrap
14417 msgid "The 'a' assignment-allocation modifier"
14418 msgstr "'a' 代入割り当て (assignment-allocation) 修飾子"
14419
14420 #. type: Plain text
14421 #: build/C/man3/scanf.3:620
14422 msgid ""
14423 "Originally, the GNU C library supported dynamic allocation for string inputs "
14424 "(as a nonstandard extension) via the B<a> character.  (This feature is "
14425 "present at least as far back as glibc 2.0.)  Thus, one could write the "
14426 "following to have B<scanf>()  allocate a buffer for an input string, with a "
14427 "pointer to that buffer being returned in I<*buf>:"
14428 msgstr ""
14429 "元々、 GNU C ライブラリ (glibc) では、 B<a> 文字による文字列入力に対する動的"
14430 "割り当て変換指定子 (dynamic allocation conversion specifier) を (非標準の拡張"
14431 "として) サポートしている。この機能は少なくとも glibc 2.0 の時点ではすでに存在"
14432 "している。 したがって、以下のようにして、 B<scanf>() に入力文字列に対してバッ"
14433 "ファを割り当てさせることができる。割り当てられたバッファは I<*buf> で返され"
14434 "る。"
14435
14436 #. type: Plain text
14437 #: build/C/man3/scanf.3:623
14438 #, no-wrap
14439 msgid ""
14440 "    char *buf;\n"
14441 "    scanf(\"%as\", &buf);\n"
14442 msgstr ""
14443 "    char *buf;\n"
14444 "    scanf(\"%as\", &buf);\n"
14445
14446 #. type: Plain text
14447 #: build/C/man3/scanf.3:634
14448 msgid ""
14449 "The use of the letter B<a> for this purpose was problematic, since B<a> is "
14450 "also specified by the ISO C standard as a synonym for B<f> (floating-point "
14451 "input).  POSIX.1-2008 instead specifies the B<m> modifier for assignment "
14452 "allocation (as documented in DESCRIPTION, above)."
14453 msgstr ""
14454 "この目的で文字 B<a> を使うのは問題をはらんでいる。 なぜなら、 B<a> は ISO C "
14455 "標準では (浮動小数点入力を表す) の B<f> の同義語として定義されているからであ"
14456 "る。 その代わり、 POSIX.1-2008 では、(上記の「説明」に書かれている通り) 代入"
14457 "割り当てを行う修飾子として B<m> が規定されている。"
14458
14459 #. type: Plain text
14460 #: build/C/man3/scanf.3:646
14461 msgid ""
14462 "Note that the B<a> modifier is not available if the program is compiled with "
14463 "I<gcc -std=c99> or I<gcc -D_ISOC99_SOURCE> (unless B<_GNU_SOURCE> is also "
14464 "specified), in which case the B<a> is interpreted as a specifier for "
14465 "floating-point numbers (see above)."
14466 msgstr ""
14467 "B<a> 修飾子は I<gcc -std=c99> や I<gcc -D_ISOC99_SOURCE> でコンパイルしたプロ"
14468 "グラムでは (B<_GNU_SOURCE> も同時に指定していない場合) 利用できない点に注意。"
14469 "この場合、 B<a> は (上述の通り) 浮動小数点数を示す変換指定子と解釈される。"
14470
14471 #. type: Plain text
14472 #: build/C/man3/scanf.3:652
14473 msgid ""
14474 "Support for the B<m> modifier was added to glibc starting with version 2.7, "
14475 "and new programs should use that modifier instead of B<a>."
14476 msgstr ""
14477 "B<m> 修飾子への対応はバージョン 2.7 以降の glibc で追加されている。新しいプロ"
14478 "グラムでぇあ B<a> の代わりに B<m> を使用すべきである。"
14479
14480 #. type: Plain text
14481 #: build/C/man3/scanf.3:658
14482 msgid ""
14483 "As well as being standardized by POSIX, the B<m> modifier has the following "
14484 "further advantages over the use of B<a:>"
14485 msgstr ""
14486 "POSIX で標準化されているだけでなく、 B<m> 修飾子には B<a> を利用する場合に比"
14487 "べて以下のような利点がある。"
14488
14489 #. type: Plain text
14490 #: build/C/man3/scanf.3:663
14491 msgid "It may also be applied to B<%c> conversion specifiers (e.g., B<%3mc>)."
14492 msgstr "B<%c> 変換指定子にも適用できる (例えば B<%3mc>)。"
14493
14494 #. type: Plain text
14495 #: build/C/man3/scanf.3:669
14496 msgid ""
14497 "It avoids ambiguity with respect to the B<%a> floating-point conversion "
14498 "specifier (and is unaffected by I<gcc -std=c99> etc.)."
14499 msgstr ""
14500 "浮動小数点変換指定子としての B<%a> との紛らわしさが避けられる (また I<gcc -"
14501 "std=c99> などの影響も避けられる)。"
14502
14503 #. type: Plain text
14504 #: build/C/man3/scanf.3:682
14505 msgid ""
14506 "All functions are fully C89 conformant, but provide the additional "
14507 "specifiers B<q> and B<a> as well as an additional behavior of the B<L> and "
14508 "B<l> specifiers.  The latter may be considered to be a bug, as it changes "
14509 "the behavior of specifiers defined in C89."
14510 msgstr ""
14511 "全ての関数は、完全に C89 に準拠している。しかし 追加で B<q> と B<a> 指定子が"
14512 "提供されており、同様に B<L> と B<l> 指定子の付加的な振る舞いもある。後者は、 "
14513 "C89 で定義された指定子の振る舞いを変更するものなので、 バグとみなされるかもし"
14514 "れない。"
14515
14516 #. type: Plain text
14517 #: build/C/man3/scanf.3:698
14518 msgid ""
14519 "Some combinations of the type modifiers and conversion specifiers defined by "
14520 "ANSI C do not make sense (e.g., B<%Ld>).  While they may have a well-defined "
14521 "behavior on Linux, this need not to be so on other architectures.  Therefore "
14522 "it usually is better to use modifiers that are not defined by ANSI C at all, "
14523 "that is, use B<q> instead of B<L> in combination with B<d>, B<i>, B<o>, "
14524 "B<u>, B<x>, and B<X> conversions or B<ll>."
14525 msgstr ""
14526 "ANSI C で定義された型修飾子と変換指定子の組み合わせの中には 意味を\n"
14527 "なさないものがある (例えば、 B<%Ld>)。 これらが指定された場合、 \n"
14528 "Linux 上でははっきりと定義された振る舞いをするかもしれないが、\n"
14529 "他のアーキテクチャでも同様になっているとは限らない。\n"
14530 "それゆえに、ほとんどの場合、 ANSI C で定義されていない修飾子を使用した\n"
14531 "方が良い。すなわち、 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変換や B<ll>\n"
14532 "と組み合わせる場合には、 B<L> の代わりに B<q> を使用した方が良い。"
14533
14534 #. type: Plain text
14535 #: build/C/man3/scanf.3:704
14536 msgid ""
14537 "The usage of B<q> is not the same as on 4.4BSD, as it may be used in float "
14538 "conversions equivalently to B<L>."
14539 msgstr ""
14540 "B<q> の使用方法は 4.4BSD と同じではない。 4.4BSD では B<q> は B<L> と同等に浮"
14541 "動小数の変換に使用される。"
14542
14543 #. type: Plain text
14544 #: build/C/man3/scanf.3:714
14545 msgid ""
14546 "To use the dynamic allocation conversion specifier, specify B<m> as a length "
14547 "modifier (thus B<%ms> or B<%m[>I<range>B<]>).  The caller must B<free>(3)  "
14548 "the returned string, as in the following example:"
14549 msgstr ""
14550 "動的割り当て変換指定子を使用するには、長さ修飾子として B<m> を指定する (つま"
14551 "り、全体としては B<%ms> や B<%m[>I<range>B<]> となる)。以下の例にあるように、"
14552 "呼び出し側は返された文字列を B<free>(3) しなければならない。"
14553
14554 #. type: Plain text
14555 #: build/C/man3/scanf.3:719
14556 #, no-wrap
14557 msgid ""
14558 "char *p;\n"
14559 "int n;\n"
14560 msgstr ""
14561 "char *p;\n"
14562 "int n;\n"
14563
14564 #. type: Plain text
14565 #: build/C/man3/scanf.3:730
14566 #, no-wrap
14567 msgid ""
14568 "errno = 0;\n"
14569 "n = scanf(\"%m[a-z]\", &p);\n"
14570 "if (n == 1) {\n"
14571 "    printf(\"read: %s\\en\", p);\n"
14572 "    free(p);\n"
14573 "} else if (errno != 0) {\n"
14574 "    perror(\"scanf\");\n"
14575 "} else {\n"
14576 "    fprintf(stderr, \"No matching characters\\en\");\n"
14577 "}\n"
14578 msgstr ""
14579 "errno = 0;\n"
14580 "n = scanf(\"%m[a-z]\", &p);\n"
14581 "if (n == 1) {\n"
14582 "    printf(\"read: %s\\en\", p);\n"
14583 "    free(p);\n"
14584 "} else if (errno != 0) {\n"
14585 "    perror(\"scanf\");\n"
14586 "} else {\n"
14587 "    fprintf(stderr, \"No matching characters\\en\");\n"
14588 "}\n"
14589
14590 #. type: Plain text
14591 #: build/C/man3/scanf.3:738
14592 msgid ""
14593 "As shown in the above example, it is necessary to call B<free>(3)  only if "
14594 "the B<scanf>()  call successfully read a string."
14595 msgstr ""
14596 "上記の例にあるように、 B<scanf>()  が文字列の読み込みに成功した場合にだけ、 "
14597 "B<free>(3)  を呼び出す必要がある。"
14598
14599 #. type: Plain text
14600 #: build/C/man3/scanf.3:745
14601 msgid ""
14602 "B<getc>(3), B<printf>(3), B<setlocale>(3), B<strtod>(3), B<strtol>(3), "
14603 "B<strtoul>(3)"
14604 msgstr ""
14605 "B<getc>(3), B<printf>(3)  B<setlocale>(3), B<strtod>(3), B<strtol>(3), "
14606 "B<strtoul>(3),"
14607
14608 #. type: TH
14609 #: build/C/man3/setbuf.3:48
14610 #, no-wrap
14611 msgid "SETBUF"
14612 msgstr "SETBUF"
14613
14614 #. type: Plain text
14615 #: build/C/man3/setbuf.3:51
14616 msgid "setbuf, setbuffer, setlinebuf, setvbuf - stream buffering operations"
14617 msgstr ""
14618 "setbuf, setbuffer, setlinebuf, setvbuf - ストリームのバッファリングの操作"
14619
14620 #. type: Plain text
14621 #: build/C/man3/setbuf.3:56
14622 #, no-wrap
14623 msgid "B<void setbuf(FILE *>I<stream>B<, char *>I<buf>B<);>\n"
14624 msgstr "B<void setbuf(FILE *>I<stream>B<, char *>I<buf>B<);>\n"
14625
14626 #. type: Plain text
14627 #: build/C/man3/setbuf.3:58
14628 #, no-wrap
14629 msgid "B<void setbuffer(FILE *>I<stream>B<, char *>I<buf>B<, size_t >I<size>B<);>\n"
14630 msgstr "B<void setbuffer(FILE *>I<stream>B<, char *>I<buf>B<, size_t >I<size>B<);>\n"
14631
14632 #. type: Plain text
14633 #: build/C/man3/setbuf.3:60
14634 #, no-wrap
14635 msgid "B<void setlinebuf(FILE *>I<stream>B<);>\n"
14636 msgstr "B<void setlinebuf(FILE *>I<stream>B<);>\n"
14637
14638 #. type: Plain text
14639 #: build/C/man3/setbuf.3:63
14640 #, no-wrap
14641 msgid "B<int setvbuf(FILE *>I<stream>B<, char *>I<buf>B<, int >I<mode>B<, size_t >I<size>B<);>\n"
14642 msgstr "B<int setvbuf(FILE *>I<stream>B<, char *>I<buf>B<, int >I<mode>B<, size_t >I<size>B<);>\n"
14643
14644 #. type: Plain text
14645 #: build/C/man3/setbuf.3:73
14646 msgid "B<setbuffer>(), B<setlinebuf>(): _BSD_SOURCE"
14647 msgstr "B<setbuffer>(), B<setlinebuf>(): _BSD_SOURCE"
14648
14649 #. type: Plain text
14650 #: build/C/man3/setbuf.3:96
14651 msgid ""
14652 "The three types of buffering available are unbuffered, block buffered, and "
14653 "line buffered.  When an output stream is unbuffered, information appears on "
14654 "the destination file or terminal as soon as written; when it is block "
14655 "buffered many characters are saved up and written as a block; when it is "
14656 "line buffered characters are saved up until a newline is output or input is "
14657 "read from any stream attached to a terminal device (typically I<stdin>).  "
14658 "The function B<fflush>(3)  may be used to force the block out early.  (See "
14659 "B<fclose>(3).)  Normally all files are block buffered.  When the first I/O "
14660 "operation occurs on a file, B<malloc>(3)  is called, and a buffer is "
14661 "obtained.  If a stream refers to a terminal (as I<stdout> normally does), it "
14662 "is line buffered.  The standard error stream I<stderr> is always unbuffered "
14663 "by default."
14664 msgstr ""
14665 "バッファリングには unbuffered, block buffered, line buffered の3つのタイプが "
14666 "ある。出力ストリームのタイプが unbuffered の場合、データを書き込むとすぐに出 "
14667 "力先ファイルに書き込まれるかターミナルに表示される。block buffered の場合、"
14668 "文 字の読み書きはブロック単位でいっぺんに行われる。line buffered の場合、 新"
14669 "しい行が出力されるか、ターミナルデバイスに接続しているストリーム (通常、"
14670 "I<stdin>) から新しい行が入力されるまで文字がたくわえられる。 ブロックを強制的"
14671 "に出力するには B<fflush>(3)  関数を使う。 (B<fclose>(3)  を参照のこと) 通常、"
14672 "ファイルはすべて block buffered である。ファイルに対して 初めて入出力処理を行"
14673 "うと B<malloc>(3)  が呼び出されバッファが獲得される。もし ストリームが (通"
14674 "常、 I<stdout> がそうであるように) ターミナルを参照する場合には、ファイルは "
14675 "line buffered と なる。標準エラー出力 I<stderr> はデフォルトでは常に "
14676 "unbuffered である。"
14677
14678 #. type: Plain text
14679 #: build/C/man3/setbuf.3:103
14680 msgid ""
14681 "The B<setvbuf>()  function may be used on any open stream to change its "
14682 "buffer.  The I<mode> argument must be one of the following three macros:"
14683 msgstr ""
14684 "B<setvbuf>()  関数は、オープンしている任意のストリームに対してバッファを変更"
14685 "できる。 引き数 I<mode> は、次の 3 つのマクロのうちいずれかである:"
14686
14687 #. type: TP
14688 #: build/C/man3/setbuf.3:104
14689 #, no-wrap
14690 msgid "B<_IONBF>"
14691 msgstr "B<_IONBF>"
14692
14693 #. type: Plain text
14694 #: build/C/man3/setbuf.3:107
14695 msgid "unbuffered"
14696 msgstr "unbuffered"
14697
14698 #. type: TP
14699 #: build/C/man3/setbuf.3:107
14700 #, no-wrap
14701 msgid "B<_IOLBF>"
14702 msgstr "B<_IOLBF>"
14703
14704 #. type: Plain text
14705 #: build/C/man3/setbuf.3:110
14706 msgid "line buffered"
14707 msgstr "line buffered"
14708
14709 #. type: TP
14710 #: build/C/man3/setbuf.3:110
14711 #, no-wrap
14712 msgid "B<_IOFBF>"
14713 msgstr "B<_IOFBF>"
14714
14715 #. type: Plain text
14716 #: build/C/man3/setbuf.3:113
14717 msgid "fully buffered"
14718 msgstr "fully buffered"
14719
14720 #. type: Plain text
14721 #: build/C/man3/setbuf.3:129
14722 msgid ""
14723 "Except for unbuffered files, the I<buf> argument should point to a buffer at "
14724 "least I<size> bytes long; this buffer will be used instead of the current "
14725 "buffer.  If the argument I<buf> is NULL, only the mode is affected; a new "
14726 "buffer will be allocated on the next read or write operation.  The "
14727 "B<setvbuf>()  function may be used only after opening a stream and before "
14728 "any other operations have been performed on it."
14729 msgstr ""
14730 "unbuffered のファイルを除き、 I<buf> 引数は I<size> バイト以上の大きさのバッ"
14731 "ファを指していなければならない。このバッファは現在の バッファの代わりに用いら"
14732 "れる。もし、引数 I<buf> が NULL ならば、モードだけが変更される。 新しいバッ"
14733 "ファは次に読み書きした際に割り当てられる。 B<setvbuf>()  関数は、ストリームを"
14734 "オープンした後、 そのストリームに対して何らかの操作をする前にのみ使用できる。"
14735
14736 #. type: Plain text
14737 #: build/C/man3/setbuf.3:135
14738 msgid ""
14739 "The other three calls are, in effect, simply aliases for calls to "
14740 "B<setvbuf>().  The B<setbuf>()  function is exactly equivalent to the call"
14741 msgstr ""
14742 "他の 3 つの関数は B<setvbuf>()  の呼び出しに単純に置き換えることができる。 "
14743 "B<setbuf>()  関数は、"
14744
14745 #. type: Plain text
14746 #: build/C/man3/setbuf.3:138
14747 msgid "setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);"
14748 msgstr "setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);"
14749
14750 #. type: Plain text
14751 #: build/C/man3/setbuf.3:148
14752 msgid ""
14753 "The B<setbuffer>()  function is the same, except that the size of the buffer "
14754 "is up to the caller, rather than being determined by the default B<BUFSIZ>.  "
14755 "The B<setlinebuf>()  function is exactly equivalent to the call:"
14756 msgstr ""
14757 "と全く同等だし、 B<setbuffer>()  関数は、バッファサイズがデフォルト値 "
14758 "B<BUFSIZ> ではなく引数で与えられる点以外は同じである。 B<setlinebuf>()  関数"
14759 "は以下と同じである。"
14760
14761 #. type: Plain text
14762 #: build/C/man3/setbuf.3:151
14763 msgid "setvbuf(stream, NULL, _IOLBF, 0);"
14764 msgstr "setvbuf(stream, NULL, _IOLBF, 0);"
14765
14766 #. type: Plain text
14767 #: build/C/man3/setbuf.3:162
14768 msgid ""
14769 "The function B<setvbuf>()  returns 0 on success.  It returns nonzero on "
14770 "failure (I<mode> is invalid or the request cannot be honored).  It may set "
14771 "I<errno> on failure."
14772 msgstr ""
14773 "B<setvbuf>()  関数は、成功した場合 0 を返す。 失敗した場合、0 以外の値を返す "
14774 "(失敗とは、 I<mode> が不正な場合またはリクエストが条件を満たさない場合であ"
14775 "る)。 B<setvbuf>()  関数が失敗した場合は I<errno> を設定することもある。"
14776
14777 #. type: Plain text
14778 #: build/C/man3/setbuf.3:164
14779 msgid "The other functions do not return a value."
14780 msgstr "その他の関数は値を返さない。"
14781
14782 #. type: Plain text
14783 #: build/C/man3/setbuf.3:173
14784 msgid ""
14785 "The B<setbuf>(), B<setbuffer>(), B<setlinebuf>(), and B<setvbuf>()  "
14786 "functions are thread-safe."
14787 msgstr ""
14788 "関数 B<setbuf>(), B<setbuffer>(), B<setlinebuf>(), B<setvbuf>() はスレッド"
14789 "セーフである。"
14790
14791 #. type: Plain text
14792 #: build/C/man3/setbuf.3:179
14793 msgid "The B<setbuf>()  and B<setvbuf>()  functions conform to C89 and C99."
14794 msgstr ""
14795 "B<setbuf>()  関数および B<setvbuf>()  関数は C89 と C99 に準拠している。"
14796
14797 #. type: Plain text
14798 #: build/C/man3/setbuf.3:196
14799 msgid ""
14800 "You must make sure that the space that I<buf> points to still exists by the "
14801 "time I<stream> is closed, which also happens at program termination.  For "
14802 "example, the following is invalid:"
14803 msgstr ""
14804 "I<stream> を閉じる時 (プログラムを終了する際にもこれは起きる) には、 I<buf> "
14805 "が指し示す空間とが存在していることを保証しなければならない。 例えば、次のよう"
14806 "な使い方は許されない:"
14807
14808 #. type: Plain text
14809 #: build/C/man3/setbuf.3:199
14810 #, no-wrap
14811 msgid "#include E<lt>stdio.hE<gt>\n"
14812 msgstr "#include E<lt>stdio.hE<gt>\n"
14813
14814 #. type: Plain text
14815 #: build/C/man3/setbuf.3:208
14816 #, no-wrap
14817 msgid ""
14818 "int\n"
14819 "main(void)\n"
14820 "{\n"
14821 "    char buf[BUFSIZ];\n"
14822 "    setbuf(stdin, buf);\n"
14823 "    printf(\"Hello, world!\\en\");\n"
14824 "    return 0;\n"
14825 "}\n"
14826 msgstr ""
14827 "int\n"
14828 "main(void)\n"
14829 "{\n"
14830 "    char buf[BUFSIZ];\n"
14831 "    setbuf(stdin, buf);\n"
14832 "    printf(\"Hello, world!\\en\");\n"
14833 "    return 0;\n"
14834 "}\n"
14835
14836 #. type: Plain text
14837 #: build/C/man3/setbuf.3:217
14838 msgid ""
14839 "B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), "
14840 "B<printf>(3), B<puts>(3)"
14841 msgstr ""
14842 "B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), "
14843 "B<printf>(3), B<puts>(3)"
14844
14845 #. type: TH
14846 #: build/C/man3/stdin.3:13
14847 #, no-wrap
14848 msgid "STDIN"
14849 msgstr "STDIN"
14850
14851 #. type: TH
14852 #: build/C/man3/stdin.3:13 build/C/man3/tmpfile.3:31
14853 #, no-wrap
14854 msgid "2008-07-14"
14855 msgstr "2008-07-14"
14856
14857 #. type: Plain text
14858 #: build/C/man3/stdin.3:16
14859 msgid "stdin, stdout, stderr - standard I/O streams"
14860 msgstr "stdin, stdout, stderr - 標準入出力ストリーム"
14861
14862 #. type: Plain text
14863 #: build/C/man3/stdin.3:23
14864 #, no-wrap
14865 msgid ""
14866 "B<extern FILE *>I<stdin>B<;>\n"
14867 "B<extern FILE *>I<stdout>B<;>\n"
14868 "B<extern FILE *>I<stderr>B<;>\n"
14869 msgstr ""
14870 "B<extern FILE *>I<stdin>B<;>\n"
14871 "B<extern FILE *>I<stdout>B<;>\n"
14872 "B<extern FILE *>I<stderr>B<;>\n"
14873
14874 #. type: Plain text
14875 #: build/C/man3/stdin.3:35
14876 msgid ""
14877 "Under normal circumstances every UNIX program has three streams opened for "
14878 "it when it starts up, one for input, one for output, and one for printing "
14879 "diagnostic or error messages.  These are typically attached to the user's "
14880 "terminal (see B<tty>(4)  but might instead refer to files or other devices, "
14881 "depending on what the parent process chose to set up.  (See also the "
14882 "\"Redirection\" section of B<sh>(1).)"
14883 msgstr ""
14884 "標準の環境では、 UNIX プログラムは起動時に、オープンされているストリー ムを "
14885 "3 つ与えられる。それぞれ入力用、出力用、診断メッセージやエラーメッ セージの表"
14886 "示用のものである。これらは通常ユーザの端末 (B<tty>(4)  を見よ) に接続されてい"
14887 "るが、親プロセスでの選択・設定によってファイル や他のデバイスに関連づけられて"
14888 "いることもある (B<sh>(1)  の「リダイレクション」セクションも参照のこと)。"
14889
14890 #. type: Plain text
14891 #: build/C/man3/stdin.3:45
14892 msgid ""
14893 "The input stream is referred to as \"standard input\"; the output stream is "
14894 "referred to as \"standard output\"; and the error stream is referred to as "
14895 "\"standard error\".  These terms are abbreviated to form the symbols used to "
14896 "refer to these files, namely I<stdin>, I<stdout>, and I<stderr>."
14897 msgstr ""
14898 "入力ストリームは \"standard input\" と呼ばれる。出力ストリームは \"standard "
14899 "output\"、エラーストリームは \"standard error\" と呼ばれる。 これらの用語を短"
14900 "縮したものがそれぞれのファイルを示すシンボルとなる。つ まり I<stdin>, "
14901 "I<stdout>, I<stderr> である。"
14902
14903 #. type: Plain text
14904 #: build/C/man3/stdin.3:54
14905 msgid ""
14906 "Each of these symbols is a B<stdio>(3)  macro of type pointer to I<FILE>, "
14907 "and can be used with functions like B<fprintf>(3)  or B<fread>(3)."
14908 msgstr ""
14909 "これらのシンボルは B<stdio>(3)  のマクロで、 FILE へのポインタ型である。した"
14910 "がって B<fprintf>(3)  や B<fread>(3)  などの関数とともに用いることができる。"
14911
14912 #. type: Plain text
14913 #: build/C/man3/stdin.3:63
14914 msgid ""
14915 "Since I<FILE>s are a buffering wrapper around UNIX file descriptors, the "
14916 "same underlying files may also be accessed using the raw UNIX file "
14917 "interface, that is, the functions like B<read>(2)  and B<lseek>(2)."
14918 msgstr ""
14919 "I<FILE> は UNIX のファイルディスクリプタにバッファ機能を追加したラッパー であ"
14920 "るから、これらのマクロにも対応するファイルがあり、 UNIX の raw ファ イルイン"
14921 "タフェース (B<read>(2)  や B<lseek>(2)  など) によってアクセスすることもでき"
14922 "る。"
14923
14924 #. type: Plain text
14925 #: build/C/man3/stdin.3:82
14926 msgid ""
14927 "On program startup, the integer file descriptors associated with the streams "
14928 "I<stdin>, I<stdout>, and I<stderr> are 0, 1, and 2, respectively.  The "
14929 "preprocessor symbols B<STDIN_FILENO>, B<STDOUT_FILENO>, and B<STDERR_FILENO> "
14930 "are defined with these values in I<E<lt>unistd.hE<gt>>.  (Applying "
14931 "B<freopen>(3)  to one of these streams can change the file descriptor number "
14932 "associated with the stream.)"
14933 msgstr ""
14934 "プログラムの起動時には、 ストリーム I<stdin>, I<stdout>, I<stderr> に結びつけ"
14935 "られているファイルディスクリプタの番号は、 それぞれ 0, 1, 2 である。 プリプロ"
14936 "セッサシンボル B<STDIN_FILENO>, B<STDOUT_FILENO>, B<STDERR_FILENO> は "
14937 "I<E<lt>unistd.hE<gt>> 中でそれぞれこれらの値に定義されている。 (これらのスト"
14938 "リームに対して B<freopen>(3)  を適用することで、そのストリームに関連付けられ"
14939 "たファイルディスクリプタ の番号を変更することができる。)"
14940
14941 #. type: Plain text
14942 #: build/C/man3/stdin.3:95
14943 msgid ""
14944 "Note that mixing use of I<FILE>s and raw file descriptors can produce "
14945 "unexpected results and should generally be avoided.  (For the masochistic "
14946 "among you: POSIX.1, section 8.2.3, describes in detail how this interaction "
14947 "is supposed to work.)  A general rule is that file descriptors are handled "
14948 "in the kernel, while stdio is just a library.  This means for example, that "
14949 "after an B<exec>(3), the child inherits all open file descriptors, but all "
14950 "old streams have become inaccessible."
14951 msgstr ""
14952 "I<FILE> と raw なファイルディスクリプタの併用は、予期できない結果を生じ るこ"
14953 "とがあるので、通常は避けるべきである。 (マゾヒスティックな人に: POSIX.1 のセ"
14954 "クション 8.2.3 には、この混用で動作がどのようになりそう かが詳しく記述されて"
14955 "いる。)  一般的なルールは以下の通り: ファイルディスクリプタはカーネルによっ"
14956 "て 扱われ、 stdio は単にライブラリによって扱われるのである。すなわち例えば "
14957 "B<exec>(3)  の後には、子プロセスはオープンされているファイルディスクリプタ を"
14958 "すべて継承するが、親からのストリームはすべてアクセス不可となる。"
14959
14960 #. type: Plain text
14961 #: build/C/man3/stdin.3:113
14962 msgid ""
14963 "Since the symbols I<stdin>, I<stdout>, and I<stderr> are specified to be "
14964 "macros, assigning to them is nonportable.  The standard streams can be made "
14965 "to refer to different files with help of the library function B<freopen>(3), "
14966 "specially introduced to make it possible to reassign I<stdin>, I<stdout>, "
14967 "and I<stderr>.  The standard streams are closed by a call to B<exit>(3)  and "
14968 "by normal program termination."
14969 msgstr ""
14970 "シンボル I<stdin>, I<stdout>, I<stderr> はすべてマクロとして定義されているの"
14971 "で、これらへの代入 は移植性を保証されない。標準ストリームはライブラリ関数 "
14972 "B<freopen>(3)  を用いれば、別のファイルを示すように変更することもできる。 こ"
14973 "のライブラリ関数は I<stdin>, I<stdout>, I<stderr> の再割り当てが可能なように"
14974 "特別に導入されたものである。 標準ストリームは B<exit>(3)  の呼び出しと、プロ"
14975 "グラムの正常終了によってクローズされる。"
14976
14977 #. type: Plain text
14978 #: build/C/man3/stdin.3:122
14979 msgid ""
14980 "The I<stdin>, I<stdout>, and I<stderr> macros conform to C89 and this "
14981 "standard also stipulates that these three streams shall be open at program "
14982 "startup."
14983 msgstr ""
14984 "I<stdin>, I<stdout>, I<stderr> マクロは C89 に準拠している。 また C89 では、"
14985 "これら 3 つのストリームがプログラム の起動時にオープンされているべきであるこ"
14986 "とが規定されている。"
14987
14988 #. type: Plain text
14989 #: build/C/man3/stdin.3:154
14990 msgid ""
14991 "The stream I<stderr> is unbuffered.  The stream I<stdout> is line-buffered "
14992 "when it points to a terminal.  Partial lines will not appear until "
14993 "B<fflush>(3)  or B<exit>(3)  is called, or a newline is printed.  This can "
14994 "produce unexpected results, especially with debugging output.  The buffering "
14995 "mode of the standard streams (or any other stream)  can be changed using the "
14996 "B<setbuf>(3)  or B<setvbuf>(3)  call.  Note that in case I<stdin> is "
14997 "associated with a terminal, there may also be input buffering in the "
14998 "terminal driver, entirely unrelated to stdio buffering.  (Indeed, normally "
14999 "terminal input is line buffered in the kernel.)  This kernel input handling "
15000 "can be modified using calls like B<tcsetattr>(3); see also B<stty>(1), and "
15001 "B<termios>(3)."
15002 msgstr ""
15003 "I<stderr> ストリームはバッファリングされていない。 I<stdout> ストリームは、端"
15004 "末に接続されているときには行単位でバッファリング されている。一行に満たない内"
15005 "容は、 B<fflush>(3)  か B<exit>(3)  が呼び出されるか、改行文字が印字されるま"
15006 "で表示されない。これは、 特にデバッグ時において、予期しない結果を生じる原因と"
15007 "なるかもしれない。 標準ストリームの (あるいは他のすべてのストリームの)  バッ"
15008 "ファリングモードは、 B<setbuf>(3)  または B<setvbuf>(3)  を呼び出すことによっ"
15009 "て変更できる。 ただし、 I<stdin> が端末に接続されているときは、端末のドライバ"
15010 "でバッファリングされている 可能性がある点にも注意すること。これは stdio の"
15011 "バッファリングとは全く 関係なく存在しうる。 (実際、通常だと端末入力はカーネル"
15012 "によって行単位 でバッファリングされている。) このカーネルによる入力の扱いは "
15013 "B<tcsetattr>(3)  などの呼び出しによって変更することができる。 B<stty>(1)  と "
15014 "B<termios>(3)  も参照すること。"
15015
15016 #. type: Plain text
15017 #: build/C/man3/stdin.3:160
15018 msgid "B<csh>(1), B<sh>(1), B<open>(2), B<fopen>(3), B<stdio>(3)"
15019 msgstr "B<csh>(1), B<sh>(1), B<open>(2), B<fopen>(3), B<stdio>(3)"
15020
15021 #. type: TH
15022 #: build/C/man3/stdio.3:39
15023 #, no-wrap
15024 msgid "STDIO"
15025 msgstr "STDIO"
15026
15027 #. type: TH
15028 #: build/C/man3/stdio.3:39
15029 #, no-wrap
15030 msgid "2001-12-26"
15031 msgstr "2001-12-26"
15032
15033 #. type: Plain text
15034 #: build/C/man3/stdio.3:42
15035 msgid "stdio - standard input/output library functions"
15036 msgstr "stdio - 標準入出力ライブラリ関数"
15037
15038 #. type: Plain text
15039 #: build/C/man3/stdio.3:46
15040 msgid "B<FILE *>I<stdin>B<;>"
15041 msgstr "B<FILE *>I<stdin>B<;>"
15042
15043 #. type: Plain text
15044 #: build/C/man3/stdio.3:48
15045 msgid "B<FILE *>I<stdout>B<;>"
15046 msgstr "B<FILE *>I<stdout>B<;>"
15047
15048 #. type: Plain text
15049 #: build/C/man3/stdio.3:50
15050 msgid "B<FILE *>I<stderr>B<;>"
15051 msgstr "B<FILE *>I<stderr>B<;>"
15052
15053 #. type: Plain text
15054 #: build/C/man3/stdio.3:57
15055 msgid ""
15056 "The standard I/O library provides a simple and efficient buffered stream I/O "
15057 "interface.  Input and output is mapped into logical data streams and the "
15058 "physical I/O characteristics are concealed.  The functions and macros are "
15059 "listed below; more information is available from the individual man pages."
15060 msgstr ""
15061 "標準入出力ライブラリは、簡単かつ効果のよい、 バッファリングされたストリーム入"
15062 "出力インターフェースを提供する。 入力と出力は論理データストリームに割り付けら"
15063 "れ、 入出力の物理的な特徴は隠蔽される。 このライブラリに属する関数とマクロを"
15064 "以下に挙げる。 より詳しい情報は個々の man ページから得ることができる。"
15065
15066 #. type: Plain text
15067 #: build/C/man3/stdio.3:80
15068 msgid ""
15069 "A stream is associated with an external file (which may be a physical "
15070 "device) by I<opening> a file, which may involve creating a new file.  "
15071 "Creating an existing file causes its former contents to be discarded.  If a "
15072 "file can support positioning requests (such as a disk file, as opposed to a "
15073 "terminal), then a I<file position indicator> associated with the stream is "
15074 "positioned at the start of the file (byte zero), unless the file is opened "
15075 "with append mode.  If append mode is used, it is unspecified whether the "
15076 "position indicator will be placed at the start or the end of the file.  The "
15077 "position indicator is maintained by subsequent reads, writes and positioning "
15078 "requests.  All input occurs as if the characters were read by successive "
15079 "calls to the B<fgetc>(3)  function; all output takes place as if all "
15080 "characters were written by successive calls to the B<fputc>(3)  function."
15081 msgstr ""
15082 "ファイルを I<オープン (open) する> ことによって、 ストリームは外部ファイル "
15083 "(通常は物理デバイス) に連結される。 この操作には新しくファイルを作成すること"
15084 "も含まれる。 既存のファイルと同じ名前のファイルを新たに作ると、 もとのファイ"
15085 "ルの中身が捨てられてしまう。 ファイルが位置指定リクエストをサポートしている "
15086 "(ディスクファイルなどが相当する。逆の例としては端末が挙げられる) 場合、 その"
15087 "ストリームに連結された I<ファイル位置指示子 (file position indicator)> は、追"
15088 "加モードで開かれない限りファイルの先頭 (0 バイト目) に位置する。 追加モードを"
15089 "使用した場合、 位置指示子をファイルの先頭に置かれるか末尾に置かれるかは規定さ"
15090 "れていない。 位置指示子は、 以降の読み書きや位置指定リクエストによって変更さ"
15091 "れる。 すべての入力は、 B<fgetc>(3)  関数を次々に呼び出して文字を読み込んだか"
15092 "のように行われる。 一方すべての出力は、 B<fputc>(3)  関数を次々に呼び出して文"
15093 "字を書き込んだかのように行われる。"
15094
15095 #. type: Plain text
15096 #: build/C/man3/stdio.3:90
15097 msgid ""
15098 "A file is disassociated from a stream by I<closing> the file.  Output "
15099 "streams are flushed (any unwritten buffer contents are transferred to the "
15100 "host environment) before the stream is disassociated from the file.  The "
15101 "value of a pointer to a I<FILE> object is indeterminate after a file is "
15102 "closed (garbage)."
15103 msgstr ""
15104 "ファイルを I<クローズ (close) する> ことによって、そのファイルはストリームか"
15105 "ら切り離される。 出力ストリームは、そのストリームがファイルから切り離される前"
15106 "にフラッシュされる (書き込まれていないすべてのバッファの内容がホスト環境に転"
15107 "送される)。 I<FILE> オブジェクトへのポインタの値は、 ファイルを閉じた後では不"
15108 "確定になる (ゴミになってしまう)。"
15109
15110 #. type: Plain text
15111 #: build/C/man3/stdio.3:103
15112 msgid ""
15113 "A file may be subsequently reopened, by the same or another program "
15114 "execution, and its contents reclaimed or modified (if it can be repositioned "
15115 "at the start).  If the main function returns to its original caller, or the "
15116 "B<exit>(3)  function is called, all open files are closed (hence all output "
15117 "streams are flushed) before program termination.  Other methods of program "
15118 "termination, such as B<abort>(3)  do not bother about closing files properly."
15119 msgstr ""
15120 "ファイルはその後 (同じまたは別のプログラムによって)  再びオープンされることも"
15121 "あり、 その内容が修正されたり変更されたりする (そのファイルで先頭への位置移動"
15122 "が可能であれば)。 main 関数がもとの呼び出し側に返ったり、 B<exit>(3)  関数が"
15123 "呼ばれた場合、 プログラムの終了の前に 現在開いているすべてのファイルは閉じら"
15124 "れる (その結果、すべての出力ストリームはフラッシュされる)。 プログラムの停止"
15125 "に B<abort>(3)  のような他の方法を用いた場合には、 ファイルが正しく閉じられる"
15126 "保証はない。"
15127
15128 #. type: Plain text
15129 #: build/C/man3/stdio.3:119
15130 msgid ""
15131 "At program startup, three text streams are predefined and need not be opened "
15132 "explicitly: I<standard input> (for reading conventional input), I<standard "
15133 "output> (for writing conventional output), and I<standard error> (for "
15134 "writing diagnostic output).  These streams are abbreviated I<stdin>,"
15135 "I<stdout> and I<stderr>.  When opened, the standard error stream is not "
15136 "fully buffered; the standard input and output streams are fully buffered if "
15137 "and only if the streams do not refer to an interactive device."
15138 msgstr ""
15139 "プログラムの起動時に 3 個のテキストストリームが予め定義されており、 それらは"
15140 "明示的に開く必要がない。 I<標準入力 (standard input)> (通常の入力を読み取るの"
15141 "に使う)、 I<標準出力 (standard output)> (通常の出力を書き込むのに使う)、 I<標"
15142 "準エラー出力 (standard error)> (診断出力を書き込むのに使う) である。 これらの"
15143 "ストリームは I<stdin>, I<stdout>, I<stderr> と短縮して表現される。 オープンさ"
15144 "れたときには、 標準エラーストリームは 完全にはバッファリングされていない。 標"
15145 "準入力ストリームと標準出力ストリームは、 ストリームがインタラクティブなデバイ"
15146 "スを参照していなければ、 完全にバッファリングされている。"
15147
15148 #. type: Plain text
15149 #: build/C/man3/stdio.3:129
15150 msgid ""
15151 "Output streams that refer to terminal devices are always line buffered by "
15152 "default; pending output to such streams is written automatically whenever an "
15153 "input stream that refers to a terminal device is read.  In cases where a "
15154 "large amount of computation is done after printing part of a line on an "
15155 "output terminal, it is necessary to B<fflush>(3)  the standard output before "
15156 "going off and computing so that the output will appear."
15157 msgstr ""
15158 "端末デバイスを参照する出力ストリームは、 デフォルトでは常に行単位でバッファリ"
15159 "ングされている。 ただしそのようなストリームにおけるバッファ内の出力は、 端末"
15160 "デバイスを参照している入力ストリームからの読み込みがあるたびに、 自動的に書き"
15161 "込まれる。 出力端末に行の一部を書き込んだ後で大量の計算を行う場合、 出力が表"
15162 "示されるように、計算に取りかかる前に標準出力に対して B<fflush>(3)  を実行する"
15163 "必要がある。"
15164
15165 #. type: Plain text
15166 #: build/C/man3/stdio.3:143
15167 msgid ""
15168 "The I<stdio> library is a part of the library B<libc> and routines are "
15169 "automatically loaded as needed by the compilers B<cc>(1)  and B<pc>(1).  The "
15170 "SYNOPSIS sections of the following manual pages indicate which include files "
15171 "are to be used, what the compiler declaration for the function looks like "
15172 "and which external variables are of interest."
15173 msgstr ""
15174 "I<stdio> ライブラリは B<libc> ライブラリの一部であり、ルーチンは コンパイ"
15175 "ラー B<cc>(1)  と B<pc>(1)  によって必要な時に自動的に読み込まれる。 後述す"
15176 "る man ページ中の「書式」の節には、 どのインクルードファイルを使用しなければ"
15177 "ならないか、 その関数のコンパイラー宣言はどのようなものか、 どのような外部変"
15178 "数が関係するのかが示されている。"
15179
15180 #.  Not on Linux: .BR fropen ,
15181 #.  Not on Linux: .BR fwopen ,
15182 #. type: Plain text
15183 #: build/C/man3/stdio.3:183
15184 msgid ""
15185 "The following are defined as macros; these names may not be reused without "
15186 "first removing their current definitions with B<#undef>: B<BUFSIZ>, B<EOF>, "
15187 "B<FILENAME_MAX>, B<FOPEN_MAX>, B<L_cuserid>, B<L_ctermid>, B<L_tmpnam>, "
15188 "B<NULL>, B<SEEK_END>, B<SEEK_SET>, B<SEEK_CUR>, B<TMP_MAX>, B<clearerr>, "
15189 "B<feof>, B<ferror>, B<fileno>, B<getc>, B<getchar>, B<putc>, B<putchar>, "
15190 "B<stderr>, B<stdin>, B<stdout>.  Function versions of the macro functions "
15191 "B<feof>, B<ferror>, B<clearerr>, B<fileno>, B<getc>, B<getchar>, B<putc>, "
15192 "and B<putchar> exist and will be used if the macros definitions are "
15193 "explicitly removed."
15194 msgstr ""
15195 "B<BUFSIZ>, B<EOF>, B<FILENAME_MAX>, B<FOPEN_MAX>, B<L_cuserid>, "
15196 "B<L_ctermid>, B<L_tmpnam>, B<NULL>, B<SEEK_END>, B<SEEK_SET>, B<SEEK_CUR>, "
15197 "B<TMP_MAX>, B<clearerr>, B<feof>, B<ferror>, B<fileno>, B<getc>, B<getchar>, "
15198 "B<putc>, B<putchar>, B<stderr>, B<stdin>, B<stdout> はマクロとして定義されて"
15199 "いる。 これらの名前は、現在の定義を B<#undef> で削除しない限り、再利用するこ"
15200 "とはできない。 マクロ関数の関数版として、 B<feof>, B<ferror>, B<clearerr>, "
15201 "B<fileno>, B<getc>, B<getchar>, B<putc>, B<putchar> がある。 マクロの定義が明"
15202 "示的に消去されている場合には、 これらを使用することになるだろう。"
15203
15204 #. type: SS
15205 #: build/C/man3/stdio.3:183
15206 #, no-wrap
15207 msgid "List of functions"
15208 msgstr "関数のリスト"
15209
15210 #. type: tbl table
15211 #: build/C/man3/stdio.3:188
15212 #, no-wrap
15213 msgid "Function\tDescription\n"
15214 msgstr "関数\t説明\n"
15215
15216 #. type: tbl table
15217 #: build/C/man3/stdio.3:189
15218 #, no-wrap
15219 msgid "_\n"
15220 msgstr "_\n"
15221
15222 #. type: tbl table
15223 #: build/C/man3/stdio.3:190
15224 #, no-wrap
15225 msgid "clearerr\tcheck and reset stream status\n"
15226 msgstr "clearerr\tストリームの状態の確認とリセット\n"
15227
15228 #. type: tbl table
15229 #: build/C/man3/stdio.3:191
15230 #, no-wrap
15231 msgid "fclose\tclose a stream\n"
15232 msgstr "fclose\tストリームをクローズする\n"
15233
15234 #. type: tbl table
15235 #: build/C/man3/stdio.3:192
15236 #, no-wrap
15237 msgid "fdopen\tstream open functions\n"
15238 msgstr "fdopen\tストリームをオープンする\n"
15239
15240 #. type: tbl table
15241 #: build/C/man3/stdio.3:193
15242 #, no-wrap
15243 msgid "feof\tcheck and reset stream status\n"
15244 msgstr "feof\tストリームの状態の確認とリセット\n"
15245
15246 #. type: tbl table
15247 #: build/C/man3/stdio.3:194
15248 #, no-wrap
15249 msgid "ferror\tcheck and reset stream status\n"
15250 msgstr "ferror\tストリームの状態の確認とリセット\n"
15251
15252 #. type: tbl table
15253 #: build/C/man3/stdio.3:195
15254 #, no-wrap
15255 msgid "fflush\tflush a stream\n"
15256 msgstr "fflush\tストリームをフラッシュする\n"
15257
15258 #. type: tbl table
15259 #: build/C/man3/stdio.3:196
15260 #, no-wrap
15261 msgid "fgetc\tget next character or word from input stream\n"
15262 msgstr "fgetc\t次の文字または語を入力ストリームから獲得する\n"
15263
15264 #. type: tbl table
15265 #: build/C/man3/stdio.3:197
15266 #, no-wrap
15267 msgid "fgetpos\treposition a stream\n"
15268 msgstr "fgetpos\tストリームの位置を取得する\n"
15269
15270 #. type: tbl table
15271 #: build/C/man3/stdio.3:198
15272 #, no-wrap
15273 msgid "fgets\tget a line from a stream\n"
15274 msgstr "fgets\tストリームから行を取得する\n"
15275
15276 #. type: tbl table
15277 #: build/C/man3/stdio.3:199
15278 #, no-wrap
15279 msgid "fileno\treturn the integer descriptor of the argument stream\n"
15280 msgstr "fileno\t引き数であるストリームの整数値のディスクリプタを返す\n"
15281
15282 #. type: tbl table
15283 #: build/C/man3/stdio.3:200
15284 #, no-wrap
15285 msgid "fopen\tstream open functions\n"
15286 msgstr "fopen\tストリームをオープンする\n"
15287
15288 #. type: tbl table
15289 #: build/C/man3/stdio.3:201
15290 #, no-wrap
15291 msgid "fprintf\tformatted output conversion\n"
15292 msgstr "fprintf\t書式付き出力変換\n"
15293
15294 #. type: tbl table
15295 #: build/C/man3/stdio.3:202
15296 #, no-wrap
15297 msgid "fpurge\tflush a stream\n"
15298 msgstr "fpurge\tストリームをフラッシュする\n"
15299
15300 #. type: tbl table
15301 #: build/C/man3/stdio.3:203
15302 #, no-wrap
15303 msgid "fputc\toutput a character or word to a stream\n"
15304 msgstr "fputc\t文字または語をストリームに出力する\n"
15305
15306 #. type: tbl table
15307 #: build/C/man3/stdio.3:204
15308 #, no-wrap
15309 msgid "fputs\toutput a line to a stream\n"
15310 msgstr "fputs\t行をストリームに出力する\n"
15311
15312 #. type: tbl table
15313 #: build/C/man3/stdio.3:205
15314 #, no-wrap
15315 msgid "fread\tbinary stream input/output\n"
15316 msgstr "fread\tバイナリーストリーム入出力\n"
15317
15318 #. type: tbl table
15319 #: build/C/man3/stdio.3:206
15320 #, no-wrap
15321 msgid "freopen\tstream open functions\n"
15322 msgstr "freopen\tストリームをオープンする\n"
15323
15324 #. type: tbl table
15325 #: build/C/man3/stdio.3:207
15326 #, no-wrap
15327 msgid "fscanf\tinput format conversion\n"
15328 msgstr "fscanf\t書式付き入力変換\n"
15329
15330 #. type: tbl table
15331 #: build/C/man3/stdio.3:208
15332 #, no-wrap
15333 msgid "fseek\treposition a stream\n"
15334 msgstr "fseek\tストリームの位置指示子を移動する\n"
15335
15336 #. type: tbl table
15337 #: build/C/man3/stdio.3:209
15338 #, no-wrap
15339 msgid "fsetpos\treposition a stream\n"
15340 msgstr "fsetpos\tストリームの位置指示子を移動する\n"
15341
15342 #. type: tbl table
15343 #: build/C/man3/stdio.3:210
15344 #, no-wrap
15345 msgid "ftell\treposition a stream\n"
15346 msgstr "ftell\tストリームの位置を取得する\n"
15347
15348 #. type: tbl table
15349 #: build/C/man3/stdio.3:211
15350 #, no-wrap
15351 msgid "fwrite\tbinary stream input/output\n"
15352 msgstr "fwrite\tバイナリーストリーム入出力\n"
15353
15354 #. type: tbl table
15355 #: build/C/man3/stdio.3:212
15356 #, no-wrap
15357 msgid "getc\tget next character or word from input stream\n"
15358 msgstr "getc\t次の文字または語を入力ストリームから取得する\n"
15359
15360 #. type: tbl table
15361 #: build/C/man3/stdio.3:213
15362 #, no-wrap
15363 msgid "getchar\tget next character or word from input stream\n"
15364 msgstr "getchar\t次の文字または語を入力ストリームから取得する\n"
15365
15366 #. type: tbl table
15367 #: build/C/man3/stdio.3:214
15368 #, no-wrap
15369 msgid "gets\tget a line from a stream\n"
15370 msgstr "gets\t行を入力ストリームから取得する\n"
15371
15372 #. type: tbl table
15373 #: build/C/man3/stdio.3:215
15374 #, no-wrap
15375 msgid "getw\tget next character or word from input stream\n"
15376 msgstr "getw\t次の文字または語を入力ストリームから取得する\n"
15377
15378 #. type: tbl table
15379 #: build/C/man3/stdio.3:216
15380 #, no-wrap
15381 msgid "mktemp\tmake temporary filename (unique)\n"
15382 msgstr "mktemp\t他と重ならないテンポラリファイル名を作る\n"
15383
15384 #. type: tbl table
15385 #: build/C/man3/stdio.3:217
15386 #, no-wrap
15387 msgid "perror\tsystem error messages\n"
15388 msgstr "perror\tシステムエラーメッセージ\n"
15389
15390 #. type: tbl table
15391 #: build/C/man3/stdio.3:218
15392 #, no-wrap
15393 msgid "printf\tformatted output conversion\n"
15394 msgstr "printf\t書式付き出力変換\n"
15395
15396 #. type: tbl table
15397 #: build/C/man3/stdio.3:219
15398 #, no-wrap
15399 msgid "putc\toutput a character or word to a stream\n"
15400 msgstr "putc\t文字または語をストリームに出力する\n"
15401
15402 #. type: tbl table
15403 #: build/C/man3/stdio.3:220
15404 #, no-wrap
15405 msgid "putchar\toutput a character or word to a stream\n"
15406 msgstr "putchar\t文字または語をストリームに出力する\n"
15407
15408 #. type: tbl table
15409 #: build/C/man3/stdio.3:221
15410 #, no-wrap
15411 msgid "puts\toutput a line to a stream\n"
15412 msgstr "puts\t行をストリームに出力する\n"
15413
15414 #. type: tbl table
15415 #: build/C/man3/stdio.3:222
15416 #, no-wrap
15417 msgid "putw\toutput a character or word to a stream\n"
15418 msgstr "putw\t文字または語をストリームに出力する\n"
15419
15420 #. type: tbl table
15421 #: build/C/man3/stdio.3:223
15422 #, no-wrap
15423 msgid "remove\tremove directory entry\n"
15424 msgstr "remove\tディレクトリエントリを削除する\n"
15425
15426 #. type: tbl table
15427 #: build/C/man3/stdio.3:224
15428 #, no-wrap
15429 msgid "rewind\treposition a stream\n"
15430 msgstr "rewind\tストリームの位置指示子を移動する\n"
15431
15432 #. type: tbl table
15433 #: build/C/man3/stdio.3:225
15434 #, no-wrap
15435 msgid "scanf\tinput format conversion\n"
15436 msgstr "scanf\t書式付き入力変換\n"
15437
15438 #. type: tbl table
15439 #: build/C/man3/stdio.3:226
15440 #, no-wrap
15441 msgid "setbuf\tstream buffering operations\n"
15442 msgstr "setbuf\tストリームのバッファリングの操作\n"
15443
15444 #. type: tbl table
15445 #: build/C/man3/stdio.3:227
15446 #, no-wrap
15447 msgid "setbuffer\tstream buffering operations\n"
15448 msgstr "setbuffer\tストリームのバッファリングの操作\n"
15449
15450 #. type: tbl table
15451 #: build/C/man3/stdio.3:228
15452 #, no-wrap
15453 msgid "setlinebuf\tstream buffering operations\n"
15454 msgstr "setlinebuf\tストリームのバッファリングの操作\n"
15455
15456 #. type: tbl table
15457 #: build/C/man3/stdio.3:229
15458 #, no-wrap
15459 msgid "setvbuf\tstream buffering operations\n"
15460 msgstr "setvbuf\tストリームのバッファリングの操作\n"
15461
15462 #. type: tbl table
15463 #: build/C/man3/stdio.3:230
15464 #, no-wrap
15465 msgid "sprintf\tformatted output conversion\n"
15466 msgstr "sprintf\t書式付き出力変換\n"
15467
15468 #. type: tbl table
15469 #: build/C/man3/stdio.3:231
15470 #, no-wrap
15471 msgid "sscanf\tinput format conversion\n"
15472 msgstr "sscanf\t書式付き入力変換\n"
15473
15474 #. type: tbl table
15475 #: build/C/man3/stdio.3:232
15476 #, no-wrap
15477 msgid "strerror\tsystem error messages\n"
15478 msgstr "strerror\tシステムエラーメッセージ\n"
15479
15480 #. type: tbl table
15481 #: build/C/man3/stdio.3:233
15482 #, no-wrap
15483 msgid "sys_errlist\tsystem error messages\n"
15484 msgstr "sys_errlist\tシステムエラーメッセージ\n"
15485
15486 #. type: tbl table
15487 #: build/C/man3/stdio.3:234
15488 #, no-wrap
15489 msgid "sys_nerr\tsystem error messages\n"
15490 msgstr "sys_nerr\tシステムエラーメッセージ\n"
15491
15492 #. type: tbl table
15493 #: build/C/man3/stdio.3:235
15494 #, no-wrap
15495 msgid "tempnam\ttemporary file routines\n"
15496 msgstr "tempnam\tテンポラリファイルの操作\n"
15497
15498 #. type: tbl table
15499 #: build/C/man3/stdio.3:236
15500 #, no-wrap
15501 msgid "tmpfile\ttemporary file routines\n"
15502 msgstr "tmpfile\tテンポラリファイルの操作\n"
15503
15504 #. type: tbl table
15505 #: build/C/man3/stdio.3:237
15506 #, no-wrap
15507 msgid "tmpnam\ttemporary file routines\n"
15508 msgstr "tmpnam\tテンポラリファイルの操作\n"
15509
15510 #. type: tbl table
15511 #: build/C/man3/stdio.3:238
15512 #, no-wrap
15513 msgid "ungetc\tun-get character from input stream\n"
15514 msgstr "ungetc\t入力ストリームへ 1 文字戻す。\n"
15515
15516 #. type: tbl table
15517 #: build/C/man3/stdio.3:239
15518 #, no-wrap
15519 msgid "vfprintf\tformatted output conversion\n"
15520 msgstr "vfprintf\t書式付き出力変換\n"
15521
15522 #. type: tbl table
15523 #: build/C/man3/stdio.3:240
15524 #, no-wrap
15525 msgid "vfscanf\tinput format conversion\n"
15526 msgstr "vfscanf\t書式付き入力変換\n"
15527
15528 #. type: tbl table
15529 #: build/C/man3/stdio.3:241
15530 #, no-wrap
15531 msgid "vprintf\tformatted output conversion\n"
15532 msgstr "vprintf\t書式付き出力変換\n"
15533
15534 #. type: tbl table
15535 #: build/C/man3/stdio.3:242
15536 #, no-wrap
15537 msgid "vscanf\tinput format conversion\n"
15538 msgstr "vscanf\t書式付き入力変換\n"
15539
15540 #. type: tbl table
15541 #: build/C/man3/stdio.3:243
15542 #, no-wrap
15543 msgid "vsprintf\tformatted output conversion\n"
15544 msgstr "vsprintf\t書式付き出力変換\n"
15545
15546 #. type: tbl table
15547 #: build/C/man3/stdio.3:244
15548 #, no-wrap
15549 msgid "vsscanf\tinput format conversion\n"
15550 msgstr "vsscanf\t書式付き入力変換\n"
15551
15552 #. type: Plain text
15553 #: build/C/man3/stdio.3:250
15554 msgid "The I<stdio> library conforms to C89."
15555 msgstr "I<stdio> ライブラリは C89 に準拠している。"
15556
15557 #. type: Plain text
15558 #: build/C/man3/stdio.3:257
15559 msgid ""
15560 "B<close>(2), B<open>(2), B<read>(2), B<write>(2), B<stdout>(3), "
15561 "B<unlocked_stdio>(3)"
15562 msgstr ""
15563 "B<close>(2), B<open>(2), B<read>(2), B<write>(2), B<stdout>(3), "
15564 "B<unlocked_stdio>(3)"
15565
15566 #. type: TH
15567 #: build/C/man3/stdio_ext.3:25
15568 #, no-wrap
15569 msgid "STDIO_EXT"
15570 msgstr "STDIO_EXT"
15571
15572 #. type: Plain text
15573 #: build/C/man3/stdio_ext.3:30
15574 msgid ""
15575 "__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, "
15576 "__fsetlocking, __fwritable, __fwriting, _flushlbf - interfaces to stdio FILE "
15577 "structure"
15578 msgstr ""
15579 "__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, "
15580 "__fsetlocking, __fwritable, __fwriting, _flushlbf - 標準入出力ファイル構造体"
15581 "へのインタフェース"
15582
15583 #. type: Plain text
15584 #: build/C/man3/stdio_ext.3:34
15585 msgid "B<#include E<lt>stdio_ext.hE<gt>>"
15586 msgstr "B<#include E<lt>stdio_ext.hE<gt>>"
15587
15588 #. type: Plain text
15589 #: build/C/man3/stdio_ext.3:36
15590 msgid "B<size_t __fbufsize(FILE *>I<stream>B<);>"
15591 msgstr "B<size_t __fbufsize(FILE *>I<stream>B<);>"
15592
15593 #. type: Plain text
15594 #: build/C/man3/stdio_ext.3:38
15595 msgid "B<size_t __fpending(FILE *>I<stream>B<);>"
15596 msgstr "B<size_t __fpending(FILE *>I<stream>B<);>"
15597
15598 #. type: Plain text
15599 #: build/C/man3/stdio_ext.3:40
15600 msgid "B<int __flbf(FILE *>I<stream>B<);>"
15601 msgstr "B<int __flbf(FILE *>I<stream>B<);>"
15602
15603 #. type: Plain text
15604 #: build/C/man3/stdio_ext.3:42
15605 msgid "B<int __freadable(FILE *>I<stream>B<);>"
15606 msgstr "B<int __freadable(FILE *>I<stream>B<);>"
15607
15608 #. type: Plain text
15609 #: build/C/man3/stdio_ext.3:44
15610 msgid "B<int __fwritable(FILE *>I<stream>B<);>"
15611 msgstr "B<int __fwritable(FILE *>I<stream>B<);>"
15612
15613 #. type: Plain text
15614 #: build/C/man3/stdio_ext.3:46
15615 msgid "B<int __freading(FILE *>I<stream>B<);>"
15616 msgstr "B<int __freading(FILE *>I<stream>B<);>"
15617
15618 #. type: Plain text
15619 #: build/C/man3/stdio_ext.3:48
15620 msgid "B<int __fwriting(FILE *>I<stream>B<);>"
15621 msgstr "B<int __fwriting(FILE *>I<stream>B<);>"
15622
15623 #. type: Plain text
15624 #: build/C/man3/stdio_ext.3:50
15625 msgid "B<int __fsetlocking(FILE *>I<stream>B<, int >I<type>B<);>"
15626 msgstr "B<int __fsetlocking(FILE *>I<stream>B<, int >I<type>B<);>"
15627
15628 #. type: Plain text
15629 #: build/C/man3/stdio_ext.3:52
15630 msgid "B<void _flushlbf(void);>"
15631 msgstr "B<void _flushlbf(void);>"
15632
15633 #. type: Plain text
15634 #: build/C/man3/stdio_ext.3:54
15635 msgid "B<void __fpurge(FILE *>I<stream>B<);>"
15636 msgstr "B<void __fpurge(FILE *>I<stream>B<);>"
15637
15638 #. type: Plain text
15639 #: build/C/man3/stdio_ext.3:59
15640 msgid ""
15641 "Solaris introduced routines to allow portable access to the internals of the "
15642 "I<FILE> structure, and glibc also implemented these."
15643 msgstr ""
15644 "Solaris では、 I<FILE> 構造体の内部へポータブルなかたちで アクセスできる手段"
15645 "が導入されており、これらは glibc でも実装されている。"
15646
15647 #. type: Plain text
15648 #: build/C/man3/stdio_ext.3:64
15649 msgid ""
15650 "The B<__fbufsize>()  function returns the size of the buffer currently used "
15651 "by the given stream."
15652 msgstr ""
15653 "B<__fbufsize>()  関数は、指定されたストリームが使用しているバッファサイズを返"
15654 "す。"
15655
15656 #. type: Plain text
15657 #: build/C/man3/stdio_ext.3:71
15658 msgid ""
15659 "The B<__fpending>()  function returns the number of bytes in the output "
15660 "buffer.  For wide-oriented streams the unit is wide characters.  This "
15661 "function is undefined on buffers in reading mode, or opened read-only."
15662 msgstr ""
15663 "B<__fpending>()  関数は、出力バッファに入っているデータのバイト数を返す。 ワ"
15664 "イドキャラクタを扱うストリームの場合、ワイドキャラクタ単位で計算される。 バッ"
15665 "ファが読み出しモードの場合や読み出し専用で開かれている場合の この関数の振舞い"
15666 "は未定義である。"
15667
15668 #. type: Plain text
15669 #: build/C/man3/stdio_ext.3:76
15670 msgid ""
15671 "The B<__flbf>()  function returns a nonzero value if the stream is line-"
15672 "buffered, and zero otherwise."
15673 msgstr ""
15674 "B<__flbf>()  関数は、ストリームがラインバッファの場合は 0 以外を、 それ以外の"
15675 "場合は 0 を返す。"
15676
15677 #. type: Plain text
15678 #: build/C/man3/stdio_ext.3:81
15679 msgid ""
15680 "The B<__freadable>()  function returns a nonzero value if the stream allows "
15681 "reading, and zero otherwise."
15682 msgstr ""
15683 "B<__freadable>()  関数は、ストリームが読み出し可能な場合は 0 以外を、 それ以"
15684 "外の場合は 0 を返す。"
15685
15686 #. type: Plain text
15687 #: build/C/man3/stdio_ext.3:86
15688 msgid ""
15689 "The B<__fwritable>()  function returns a nonzero value if the stream allows "
15690 "writing, and zero otherwise."
15691 msgstr ""
15692 "B<__fwritable>()  関数は、ストリームが書き込み可能な場合は 0 以外を、 それ以"
15693 "外の場合は 0 を返す。"
15694
15695 #. type: Plain text
15696 #: build/C/man3/stdio_ext.3:92
15697 msgid ""
15698 "The B<__freading>()  function returns a nonzero value if the stream is read-"
15699 "only, or if the last operation on the stream was a read operation, and zero "
15700 "otherwise."
15701 msgstr ""
15702 "B<__freading>()  関数は、ストリームが読み出し専用の場合、またはストリームに対"
15703 "する直前の操作が 読み出し操作であった場合は 0 以外を返し、それ以外の場合は 0 "
15704 "を返す。"
15705
15706 #. type: Plain text
15707 #: build/C/man3/stdio_ext.3:98
15708 msgid ""
15709 "The B<__fwriting>()  function returns a nonzero value if the stream is write-"
15710 "only (or append-only), or if the last operation on the stream was a write "
15711 "operation, and zero otherwise."
15712 msgstr ""
15713 "B<__fwriting>()  関数は、ストリームが書き込み専用(もしくは追加専用)の場合、 "
15714 "またはストリームに対する直前の操作が書き込み操作であった場合は 0 以外を返"
15715 "し、 それ以外の場合は 0 を返す。"
15716
15717 #. type: Plain text
15718 #: build/C/man3/stdio_ext.3:106
15719 msgid ""
15720 "The B<__fsetlocking>()  function can be used to select the desired type of "
15721 "locking on the stream.  It returns the current type.  The I<type> argument "
15722 "can take the following three values:"
15723 msgstr ""
15724 "B<__fsetlocking>()  関数は、ストリームのロック形式を選択するために使用でき"
15725 "る。 返り値は、現在のロック形式である。 I<type> 引き数は以下の 3 種類の値をと"
15726 "ることができる :"
15727
15728 #. type: TP
15729 #: build/C/man3/stdio_ext.3:106
15730 #, no-wrap
15731 msgid "B<FSETLOCKING_INTERNAL>"
15732 msgstr "B<FSETLOCKING_INTERNAL>"
15733
15734 #. type: Plain text
15735 #: build/C/man3/stdio_ext.3:111
15736 msgid ""
15737 "Perform implicit locking around every operation on the given stream (except "
15738 "for the *_unlocked ones).  This is the default."
15739 msgstr ""
15740 "指定されたストリームに対して操作が行われる度に、操作の前後で 明示的に指示しな"
15741 "くてもストリームのロック処理を行う (但し、*_unlocked 関数を使用した場合は例外"
15742 "である)。 これがデフォルトのロック形式である。"
15743
15744 #. type: TP
15745 #: build/C/man3/stdio_ext.3:111
15746 #, no-wrap
15747 msgid "B<FSETLOCKING_BYCALLER>"
15748 msgstr "B<FSETLOCKING_BYCALLER>"
15749
15750 #. type: Plain text
15751 #: build/C/man3/stdio_ext.3:118
15752 msgid ""
15753 "The caller will take care of the locking (possibly using B<flockfile>(3)  in "
15754 "case there is more than one thread), and the stdio routines will not do "
15755 "locking until the state is reset to B<FSETLOCKING_INTERNAL>."
15756 msgstr ""
15757 "関数の呼び出し元でロックの面倒をみる。 (おそらく、複数のスレッドが存在する状"
15758 "況では B<flockfile>(3)  を使うことになるだろう)  ロック形式が "
15759 "B<FSETLOCKING_INTERNAL> にリセットされるまでは標準入出力関連の関数はロック処"
15760 "理を行わない。"
15761
15762 #. type: TP
15763 #: build/C/man3/stdio_ext.3:118
15764 #, no-wrap
15765 msgid "B<FSETLOCKING_QUERY>"
15766 msgstr "B<FSETLOCKING_QUERY>"
15767
15768 #. type: Plain text
15769 #: build/C/man3/stdio_ext.3:122
15770 msgid "Don't change the type of locking.  (Only return it.)"
15771 msgstr "ロック形式の変更を行わない。(現在の形式を返すだけである)"
15772
15773 #. type: Plain text
15774 #: build/C/man3/stdio_ext.3:128
15775 msgid ""
15776 "The B<_flushlbf>()  function flushes all line-buffered streams.  (Presumably "
15777 "so that output to a terminal is forced out, say before reading keyboard "
15778 "input.)"
15779 msgstr ""
15780 "B<_flushlbf>()  関数は、すべてのラインバッファ (line-buffered) タイプのスト"
15781 "リームの 内容を出力(フラッシュ)する。 (当然ながら、端末への出力が強制的に行わ"
15782 "れることになるので、 キーボードからの入力を読みこむ前にこの関数を呼んだ方がい"
15783 "いだろう)"
15784
15785 #. type: Plain text
15786 #: build/C/man3/stdio_ext.3:132
15787 msgid ""
15788 "The B<__fpurge>()  function discards the contents of the stream's buffer."
15789 msgstr "B<__fpurge>()  関数は、ストリームのバッファの内容を廃棄する。"
15790
15791 #. type: Plain text
15792 #: build/C/man3/stdio_ext.3:141
15793 msgid ""
15794 "The B<__fbufsize>(), B<__fpending>(), B<__fpurge>()  and B<__fsetlocking>()  "
15795 "functions do not lock the stream, so they are not thread-safe."
15796 msgstr ""
15797 "関数 B<__fbufsize>(), B<__fpending>(), B<__fpurge>(), B<__fsetlocking>() "
15798 "は、 ストリームのロックを行わない。 そのため、スレッドセーフではない。"
15799
15800 #. type: Plain text
15801 #: build/C/man3/stdio_ext.3:151
15802 msgid ""
15803 "The B<__flbf>(), B<__freadable>(), B<__freading>(), B<__fwritable>(), "
15804 "B<__fwriting>()  and B<_flushlbf>()  functions are thread-safe."
15805 msgstr ""
15806 "関数 B<__flbf>(), B<__freadable>(), B<__freading>(), B<__fwritable>(), "
15807 "B<__fwriting>(), B<_flushlbf>() はスレッドセーフである。"
15808
15809 #. type: Plain text
15810 #: build/C/man3/stdio_ext.3:154
15811 msgid "B<flockfile>(3), B<fpurge>(3)"
15812 msgstr "B<flockfile>(3), B<fpurge>(3)"
15813
15814 #. type: TH
15815 #: build/C/man2/symlink.2:33 build/C/man7/symlink.7:37
15816 #, no-wrap
15817 msgid "SYMLINK"
15818 msgstr "SYMLINK"
15819
15820 #. type: Plain text
15821 #: build/C/man2/symlink.2:36
15822 msgid "symlink, symlinkat - make a new name for a file"
15823 msgstr "symlink, symlinkat - ファイルに新しい名前を付ける"
15824
15825 #. type: Plain text
15826 #: build/C/man2/symlink.2:41
15827 #, no-wrap
15828 msgid "B<int symlink(const char *>I<target>B<, const char *>I<linkpath>B<);>\n"
15829 msgstr "B<int symlink(const char *>I<target>B<, const char *>I<linkpath>B<);>\n"
15830
15831 #. type: Plain text
15832 #: build/C/man2/symlink.2:47
15833 #, no-wrap
15834 msgid "B<int symlinkat(const char *>I<target>B<, int >I<newdirfd>B<, const char *>I<linkpath>B<);>\n"
15835 msgstr "B<int symlinkat(const char *>I<target>B<, int >I<newdirfd>B<, const char *>I<linkpath>B<);>\n"
15836
15837 #. type: Plain text
15838 #: build/C/man2/symlink.2:56
15839 msgid "B<symlink>():"
15840 msgstr "B<symlink>():"
15841
15842 #. type: Plain text
15843 #: build/C/man2/symlink.2:62
15844 msgid "B<symlinkat>():"
15845 msgstr "B<symlinkat>():"
15846
15847 #. type: Plain text
15848 #: build/C/man2/symlink.2:80
15849 msgid ""
15850 "B<symlink>()  creates a symbolic link named I<linkpath> which contains the "
15851 "string I<target>."
15852 msgstr ""
15853 "B<symlink>()  は I<target> という文字列をファイルの内容として持つ "
15854 "I<linkpath> というシンボリックリンク (symbolic link) を作成する。"
15855
15856 #. type: Plain text
15857 #: build/C/man2/symlink.2:84
15858 msgid ""
15859 "Symbolic links are interpreted at run time as if the contents of the link "
15860 "had been substituted into the path being followed to find a file or "
15861 "directory."
15862 msgstr ""
15863 "シンボリックリンクは実行時に解釈され、 リンクの内容でパスを置き換えて、そのパ"
15864 "スを辿ることで、 ファイルやディレクトリに到達する。"
15865
15866 #. type: Plain text
15867 #: build/C/man2/symlink.2:89
15868 msgid ""
15869 "Symbolic links may contain I<..> path components, which (if used at the "
15870 "start of the link) refer to the parent directories of that in which the link "
15871 "resides."
15872 msgstr ""
15873 "シンボリックリンクはパスの部分に I<..> を含むかもしれない。これは (もしリンク"
15874 "の最初に使用された場合は) リンクの 存在するディレクトリの親ディレクトリが参照"
15875 "される。"
15876
15877 #. type: Plain text
15878 #: build/C/man2/symlink.2:93
15879 msgid ""
15880 "A symbolic link (also known as a soft link) may point to an existing file or "
15881 "to a nonexistent one; the latter case is known as a dangling link."
15882 msgstr ""
15883 "シンボリックリンクは (ソフトリンク (soft link) とも呼ばれ)  存在するファイル"
15884 "を指しているかもしれないし、 存在しないファイルを指しているかもしれない; 後者"
15885 "の場合は壊れたリンク (dangling link) とも呼ばれる。"
15886
15887 #. type: Plain text
15888 #: build/C/man2/symlink.2:100
15889 msgid ""
15890 "The permissions of a symbolic link are irrelevant; the ownership is ignored "
15891 "when following the link, but is checked when removal or renaming of the link "
15892 "is requested and the link is in a directory with the sticky bit "
15893 "(B<S_ISVTX>)  set."
15894 msgstr ""
15895 "シンボリックリンクの許可 (permission) は無意味である; リンクを追跡する場合に"
15896 "は所有権 (ownership) は無視される。 ただし、リンクの削除や名前の変更が要求さ"
15897 "れ、かつリンクが存在する ディレクトリにスティッキービット (sticky bit)  "
15898 "(B<S_ISVTX>)  が設定されている場合には、所有権のチェックが行われる。"
15899
15900 #. type: Plain text
15901 #: build/C/man2/symlink.2:106
15902 msgid "If I<linkpath> exists, it will I<not> be overwritten."
15903 msgstr "I<linkpath> が存在する場合には上書きはI<されない>。"
15904
15905 #. type: SS
15906 #: build/C/man2/symlink.2:106
15907 #, no-wrap
15908 msgid "symlinkat()"
15909 msgstr "symlinkat()"
15910
15911 #. type: Plain text
15912 #: build/C/man2/symlink.2:112
15913 msgid ""
15914 "The B<symlinkat>()  system call operates in exactly the same way as "
15915 "B<symlink>(), except for the differences described here."
15916 msgstr ""
15917 "B<symlinkat>() システムコールは B<symlink>() と全く同様に動作するが、以下で説"
15918 "明する点が異なる。"
15919
15920 #. type: Plain text
15921 #: build/C/man2/symlink.2:122
15922 msgid ""
15923 "If the pathname given in I<linkpath> is relative, then it is interpreted "
15924 "relative to the directory referred to by the file descriptor I<newdirfd> "
15925 "(rather than relative to the current working directory of the calling "
15926 "process, as is done by B<symlink>()  for a relative pathname)."
15927 msgstr ""
15928 "I<linkpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
15929 "リプター I<newdirfd> が参照するディレクトリに対する相対パスと解釈される "
15930 "(B<symlink>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
15931 "ワーキングディレクトリに対する相対パスではない)。"
15932
15933 #. type: Plain text
15934 #: build/C/man2/symlink.2:134
15935 msgid ""
15936 "If I<linkpath> is relative and I<newdirfd> is the special value B<AT_FDCWD>, "
15937 "then I<linkpath> is interpreted relative to the current working directory of "
15938 "the calling process (like B<symlink>())."
15939 msgstr ""
15940 "I<linkpath> で指定されたパス名が相対パスで、 I<newdirfd> が特別な値 "
15941 "B<AT_FDCWD> の場合、 (B<symlink>() と同様に) I<linkpath> は呼び出したプロセス"
15942 "のカレントワーキングディレクトリに対する相対パスと解釈される。"
15943
15944 #. type: Plain text
15945 #: build/C/man2/symlink.2:140
15946 msgid "If I<linkpath> is absolute, then I<newdirfd> is ignored."
15947 msgstr ""
15948 "I<linkpath> で指定されたパス名が絶対パスの場合、 I<newdirfd> は無視される。"
15949
15950 #. type: Plain text
15951 #: build/C/man2/symlink.2:155
15952 msgid ""
15953 "Write access to the directory containing I<linkpath> is denied, or one of "
15954 "the directories in the path prefix of I<linkpath> did not allow search "
15955 "permission.  (See also B<path_resolution>(7).)"
15956 msgstr ""
15957 "I<linkpath> を含んでいるディレクトリへの書き込みが拒否されたか、 I<linkpath> "
15958 "に含まれているディレクトリのどれかに検索許可が与えられていない "
15959 "(B<path_resolution>(7)  も参照すること)。"
15960
15961 #. type: Plain text
15962 #: build/C/man2/symlink.2:160
15963 msgid ""
15964 "The user's quota of resources on the filesystem has been exhausted.  The "
15965 "resources could be inodes or disk blocks, depending on the filesystem "
15966 "implementation."
15967 msgstr ""
15968 "そのファイルシステムのリソース使用量がユーザクォータに達している。対象となる"
15969 "リソースは inode かディスクブロックで、どちらになるかはファイルシステムの実装"
15970 "依存である。"
15971
15972 #. type: Plain text
15973 #: build/C/man2/symlink.2:164
15974 msgid "I<linkpath> already exists."
15975 msgstr "I<linkpath> が既に存在する。"
15976
15977 #. type: Plain text
15978 #: build/C/man2/symlink.2:167
15979 msgid "I<target> or I<linkpath> points outside your accessible address space."
15980 msgstr ""
15981 "I<target> や I<linkpath> がアクセス可能なアドレス空間の外を指している。"
15982
15983 #. type: Plain text
15984 #: build/C/man2/symlink.2:174
15985 msgid "Too many symbolic links were encountered in resolving I<linkpath>."
15986 msgstr "I<linkpath> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
15987
15988 #. type: Plain text
15989 #: build/C/man2/symlink.2:177
15990 msgid "I<target> or I<linkpath> was too long."
15991 msgstr "I<target> または I<linkpath> が長過ぎる。"
15992
15993 #. type: Plain text
15994 #: build/C/man2/symlink.2:184
15995 msgid ""
15996 "A directory component in I<linkpath> does not exist or is a dangling "
15997 "symbolic link, or I<target> is the empty string."
15998 msgstr ""
15999 "I<linkpath> に含まれるディレクトリ部分が存在しないか、壊れたリンクであるか、 "
16000 "I<target> が空文字列である。"
16001
16002 #. type: Plain text
16003 #: build/C/man2/symlink.2:196
16004 msgid ""
16005 "A component used as a directory in I<linkpath> is not, in fact, a directory."
16006 msgstr ""
16007 "I<linkpath> に含まれるディレクトリ部分が、実際には、ディレクトリではない。"
16008
16009 #. type: Plain text
16010 #: build/C/man2/symlink.2:201
16011 msgid ""
16012 "The filesystem containing I<linkpath> does not support the creation of "
16013 "symbolic links."
16014 msgstr ""
16015 "I<linkpath> を含んでいるファイルシステム (file system) が シンボリックリンク"
16016 "の作成をサポートしていない。"
16017
16018 #. type: Plain text
16019 #: build/C/man2/symlink.2:205
16020 msgid "I<linkpath> is on a read-only filesystem."
16021 msgstr "I<linkpath> が読み込み専用のファイルシステムに存在している。"
16022
16023 #. type: Plain text
16024 #: build/C/man2/symlink.2:208
16025 msgid "The following additional errors can occur for B<symlinkat>():"
16026 msgstr "B<symlinkat>() では以下のエラーも発生する。"
16027
16028 #. type: Plain text
16029 #: build/C/man2/symlink.2:212
16030 msgid "I<newdirfd> is not a valid file descriptor."
16031 msgstr "I<newdirfd> が有効なファイルディスクリプタでない。"
16032
16033 #. type: Plain text
16034 #: build/C/man2/symlink.2:218
16035 msgid ""
16036 "I<linkpath> is a relative pathname and I<newdirfd> refers to a directory "
16037 "that has been deleted."
16038 msgstr ""
16039 "I<linkpath> が相対パス名で、 I<newdirfd> が削除されたディレクトリを参照してい"
16040 "る。"
16041
16042 #. type: Plain text
16043 #: build/C/man2/symlink.2:224
16044 msgid ""
16045 "I<linkpath> is relative and I<newdirfd> is a file descriptor referring to a "
16046 "file other than a directory."
16047 msgstr ""
16048 "I<linkpath> が相対パスで、 I<newdirfd> がディレクトリ以外のファイルを参照して"
16049 "いるファイルディスクリプタである。"
16050
16051 #. type: Plain text
16052 #: build/C/man2/symlink.2:228
16053 msgid ""
16054 "B<symlinkat>()  was added to Linux in kernel 2.6.16; library support was "
16055 "added to glibc in version 2.4."
16056 msgstr ""
16057 "B<symlinkat>()  はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
16058 "ポートはバージョン 2.4 で glibc に追加された。"
16059
16060 #.  SVr4 documents additional error codes EDQUOT and ENOSYS.
16061 #.  See
16062 #.  .BR open (2)
16063 #.  re multiple files with the same name, and NFS.
16064 #. type: Plain text
16065 #: build/C/man2/symlink.2:235
16066 msgid "B<symlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
16067 msgstr "B<symlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
16068
16069 #. type: Plain text
16070 #: build/C/man2/symlink.2:238
16071 msgid "B<symlinkat>(): POSIX.1-2008."
16072 msgstr "B<symlinkat>(): POSIX.1-2008."
16073
16074 #. type: Plain text
16075 #: build/C/man2/symlink.2:242
16076 msgid "No checking of I<target> is done."
16077 msgstr "I<target> についてのチェックは行なわれない。"
16078
16079 #. type: Plain text
16080 #: build/C/man2/symlink.2:247
16081 msgid ""
16082 "Deleting the name referred to by a symbolic link will actually delete the "
16083 "file (unless it also has other hard links).  If this behavior is not "
16084 "desired, use B<link>(2)."
16085 msgstr ""
16086 "シンボリックリンクによって参照される名前を削除すると (それが他にハードリンク "
16087 "(hard link) を持たなければ) 実際にファイルが削除される。 この動作が望んだもの"
16088 "でない場合は、 B<link>(2)  を使用すること。"
16089
16090 #. type: Plain text
16091 #: build/C/man2/symlink.2:260
16092 msgid ""
16093 "On older kernels where B<symlinkat>()  is unavailable, the glibc wrapper "
16094 "function falls back to the use of B<symlink>(2).  When I<linkpath> is a "
16095 "relative pathname, glibc constructs a pathname based on the symbolic link in "
16096 "I</proc/self/fd> that corresponds to the I<newdirfd> argument."
16097 msgstr ""
16098 "B<symlinkat>() が利用できない古いカーネルでは、 glibc ラッパー関数は "
16099 "B<symlink>(2) を使用するモードにフォールバックする。 I<pathname> が相対パスの"
16100 "場合、 glibc は I<newdirfd> 引き数に対応する I</proc/self/fd> のシンボリック"
16101 "リンクに基づいてパス名を構成する。"
16102
16103 #. type: Plain text
16104 #: build/C/man2/symlink.2:271
16105 msgid ""
16106 "B<ln>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<open>(2), B<readlink>(2), "
16107 "B<rename>(2), B<unlink>(2), B<path_resolution>(7), B<symlink>(7)"
16108 msgstr ""
16109 "B<ln>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<open>(2), B<readlink>(2), "
16110 "B<rename>(2), B<unlink>(2), B<path_resolution>(7), B<symlink>(7)"
16111
16112 #. type: Plain text
16113 #: build/C/man7/symlink.7:40
16114 msgid "symlink - symbolic link handling"
16115 msgstr "symlink - シンボリックリンクの取り扱い"
16116
16117 #. type: Plain text
16118 #: build/C/man7/symlink.7:44
16119 msgid ""
16120 "Symbolic links are files that act as pointers to other files.  To understand "
16121 "their behavior, you must first understand how hard links work."
16122 msgstr ""
16123 "シンボリックリンクは他のファイルへのポインタとして振る舞うファイルである。 そ"
16124 "の挙動を理解するには、まずハードリンクがどのように機能するかを理解しておかな"
16125 "ければならない。"
16126
16127 #. type: Plain text
16128 #: build/C/man7/symlink.7:60
16129 msgid ""
16130 "A hard link to a file is indistinguishable from the original file because it "
16131 "is a reference to the object underlying the original filename.  (To be "
16132 "precise: each of the hard links to a file is a reference to the same I<inode "
16133 "number>, where an inode number is an index into the inode table, which "
16134 "contains metadata about all files on a filesystem.  See B<stat>(2).)  "
16135 "Changes to a file are independent of the name used to reference the file.  "
16136 "Hard links may not refer to directories (to prevent the possibility of loops "
16137 "within the filesystem tree, which would confuse many programs)  and may not "
16138 "refer to files on different filesystems (because inode numbers are not "
16139 "unique across filesystems)."
16140 msgstr ""
16141 "あるファイルへのハードリンクは、 元々のファイルと区別することができない。 な"
16142 "ぜなら、 ハードリンクは元々のファイル名の裏にあるオブジェクトへの参照だからで"
16143 "ある。 (より正確には、 あるファイルへのハードリンクはそれぞれ同じ I<inode 番"
16144 "号> への参照である。 inode 番号は inode テーブルへのインデックスで、 inode "
16145 "テーブルはファイルシステム上のすべてのファイルについてのメタデータを保持して"
16146 "いる。 B<stat>(2) 参照。) ファイルへの変更は、ファイルの参照に使用された名前"
16147 "とは独立に行われる。 ハードリンクはディレクトリを参照することはできない (これ"
16148 "はファイルシステムツリー内でループが発生する可能性を防止するためであり、 ルー"
16149 "プが発生すると、 多くのプログラムが混乱してしまうことだろう)。 また、 ハード"
16150 "リンクは異なるファイルシステム上のファイルを参照することもできない (inode 番"
16151 "号はファイルシステムをまたがると一意ではないからである)。"
16152
16153 #. type: Plain text
16154 #: build/C/man7/symlink.7:69
16155 msgid ""
16156 "A symbolic link is a special type of file whose contents are a string that "
16157 "is the pathname of another file, the file to which the link refers.  (The "
16158 "contents of a symbolic link can be read using B<readlink>(2).)  In other "
16159 "words, a symbolic link is a pointer to another name, and not to an "
16160 "underlying object.  For this reason, symbolic links may refer to directories "
16161 "and may cross filesystem boundaries."
16162 msgstr ""
16163 "シンボリックリンクは特別な種類のファイルで、 ファイルの内容はそのリンクの参照"
16164 "先の別のファイルのパス名を示す文字列である (シンボリックリンクの内容は "
16165 "B<readlink>(2) を使って読むことができる)。 言い換えると、 シンボリックリンク"
16166 "は別の名前へのポインタであり、 ファイルの裏にあるオブジェクトへのポインタでは"
16167 "ない。 この理由から、 シンボリックリンクではディレクトリへの参照やファイルシ"
16168 "ステム境界を越える参照を行うことができる。"
16169
16170 #. type: Plain text
16171 #: build/C/man7/symlink.7:75
16172 msgid ""
16173 "There is no requirement that the pathname referred to by a symbolic link "
16174 "should exist.  A symbolic link that refers to a pathname that does not exist "
16175 "is said to be a I<dangling link>."
16176 msgstr ""
16177 "シンボリックリンクが参照する先のパス名が存在しないといけないという要件はな"
16178 "い。 存在しないパス名を参照するシンボリックリンクは「壊れた (dangling) リン"
16179 "ク」と呼ばれる。"
16180
16181 #. type: Plain text
16182 #: build/C/man7/symlink.7:87
16183 msgid ""
16184 "Because a symbolic link and its referenced object coexist in the filesystem "
16185 "name space, confusion can arise in distinguishing between the link itself "
16186 "and the referenced object.  On historical systems, commands and system calls "
16187 "adopted their own link-following conventions in a somewhat ad-hoc fashion.  "
16188 "Rules for a more uniform approach, as they are implemented on Linux and "
16189 "other systems, are outlined here.  It is important that site-local "
16190 "applications also conform to these rules, so that the user interface can be "
16191 "as consistent as possible."
16192 msgstr ""
16193 "シンボリックリンクとその参照先のオブジェクトは一つのファイルシステムの名前空"
16194 "間内に共存するので、 リンクそのものと参照先のオブジェクトの間で混乱が生じる可"
16195 "能性がある。 かなり昔からあるシステムでは、 コマンドやシステムコールはいくら"
16196 "かアドホックな方法の独自のリンクの辿り方の決まり事を採用している。 ここで"
16197 "は、 Linux や他のシステムで実装されている、 もっと広く使われている方法のルー"
16198 "ルについて概要を説明する。 サイト固有のアプリケーションもこれらのルールに準拠"
16199 "し、 可能な限りユーザインターフェースが一貫したものになるようにすることが重要"
16200 "である。"
16201
16202 #. type: SS
16203 #: build/C/man7/symlink.7:87
16204 #, no-wrap
16205 msgid "Symbolic link ownership, permissions, and timestamps"
16206 msgstr "シンボリックリンクの所有権、アクセス許可、タイムスタンプ"
16207
16208 #. type: Plain text
16209 #: build/C/man7/symlink.7:95
16210 msgid ""
16211 "The owner and group of an existing symbolic link can be changed using "
16212 "B<lchown>(2).  The only time that the ownership of a symbolic link matters "
16213 "is when the link is being removed or renamed in a directory that has the "
16214 "sticky bit set (see B<stat>(2))."
16215 msgstr ""
16216 "既存のシンボリックリンクの所有者とグループは B<lchown>(2) を使って変更するこ"
16217 "とができる。 シンボリックリンクの所有権が問題となる場面は、 スティッキービッ"
16218 "ト (B<stat>(2) 参照) がセットされたディレクトリで、 そのリンクの削除や名前の"
16219 "変更を行おうとしている場合だけである。"
16220
16221 #. type: Plain text
16222 #: build/C/man7/symlink.7:101
16223 msgid ""
16224 "The last access and last modification timestamps of a symbolic link can be "
16225 "changed using B<utimensat>(2)  or B<lutimes>(3)."
16226 msgstr ""
16227 "シンボリックリンクの最終アクセス時刻と最終修正時刻は B<utimensat>(2) や "
16228 "B<lutimes>(3) で変更できる。"
16229
16230 #.  Linux does not currently implement an lchmod(2).
16231 #.  The
16232 #.  4.4BSD
16233 #.  system differs from historical
16234 #.  4BSD
16235 #.  systems in that the system call
16236 #.  .BR chown (2)
16237 #.  has been changed to follow symbolic links.
16238 #.  The
16239 #.  .BR lchown (2)
16240 #.  system call was added later when the limitations of the new
16241 #.  .BR chown (2)
16242 #.  became apparent.
16243 #. type: Plain text
16244 #: build/C/man7/symlink.7:120
16245 msgid ""
16246 "On Linux, the permissions of a symbolic link are not used in any operations; "
16247 "the permissions are always 0777 (read, write, and execute for all user "
16248 "categories), and can't be changed."
16249 msgstr ""
16250 "Linux では、シンボリックリンクのアクセス許可 (permission) はどの操作でも使用"
16251 "されない。 アクセス許可は常に 0777 (すべてのユーザカテゴリにおいて読み出し、"
16252 "書き込み、実行が可能) で、変更できない。"
16253
16254 #. type: SS
16255 #: build/C/man7/symlink.7:120
16256 #, no-wrap
16257 msgid "Obtaining a file descriptor that refers to a symbolic link"
16258 msgstr "シンボリックリンクを参照するファイルディスクリプタを取得する"
16259
16260 #. type: Plain text
16261 #: build/C/man7/symlink.7:138
16262 msgid ""
16263 "Using the combination of the B<O_PATH> and B<O_NOFOLLOW> flags to "
16264 "B<open>(2)  yields a file descriptor that can be passed as the I<dirfd> "
16265 "argument in system calls such as B<fstatat>(2), B<fchownat>(2), "
16266 "B<fchmodat>(2), B<linkat>(2), and B<readlinkat>(2), in order to operate on "
16267 "the symbolic link itself (rather than the file to which it refers)."
16268 msgstr ""
16269 "B<open>(2) に B<O_PATH> と B<O_NOFOLLOW> の両方のフラグを指定すると、ファイル"
16270 "ディスクリプターが得られる。このファイルディスクリプターは B<fstatat>(2), "
16271 "B<fchownat>(2), B<fchmodat>(2), B<linkat> (2), B<readlinkat>(2) などのシステ"
16272 "ムコールの I<dirfd> 引き数として渡して、 (シンボリックリンクが参照するファイ"
16273 "ルではなく) シンボリックリンク自身に対する操作を行うことができる。"
16274
16275 #. type: Plain text
16276 #: build/C/man7/symlink.7:154
16277 msgid ""
16278 "By default (i.e., if the B<AT_SYMLINK_FOLLOW> flag is not specified), if "
16279 "B<name_to_handle_at>(2)  is applied to a symbolic link, it yields a handle "
16280 "for the symbolic link (rather than the file to which it refers).  One can "
16281 "then obtain a file descriptor for the symbolic link (rather than the file to "
16282 "which it refers)  by specifying the B<O_PATH> flag in a subsequent call to "
16283 "B<open_by_handle_at>(2).  Again, that file descriptor can be used in the "
16284 "aforementioned system calls to operate on the symbolic link itself."
16285 msgstr "デフォルトでは (すなわち B<AT_SYMLINK_FOLLOW> フラグが指定されなかった場合)、 B<name_to_handle_at>(2) がシンボリックリンクに適用された場合、 (シンボリックリンクが参照するファイルではなく) シンボリックリンクへのハンドルが返される。 それ以降の B<open_by_handle_at>(2) で B<O_PATH> フラグを指定することで、 (シンボリックリンクが参照するファイルではなく) シンボリックリンクに対するファイルディスクリプターを得ることができる。 繰り返しになるが、 このファイルディスクリプターを上述のシステムコールで使用し、 シンボリックリンク自身に操作を行うことができる。"
16286
16287 #. type: SS
16288 #: build/C/man7/symlink.7:154
16289 #, no-wrap
16290 msgid "Handling of symbolic links by system calls and commands"
16291 msgstr "システムコールやコマンドによるシンボリックリンクの取り扱い"
16292
16293 #. type: Plain text
16294 #: build/C/man7/symlink.7:169
16295 msgid ""
16296 "Symbolic links are handled either by operating on the link itself, or by "
16297 "operating on the object referred to by the link.  In the latter case, an "
16298 "application or system call is said to I<follow> the link.  Symbolic links "
16299 "may refer to other symbolic links, in which case the links are dereferenced "
16300 "until an object that is not a symbolic link is found, a symbolic link that "
16301 "refers to a file which does not exist is found, or a loop is detected.  "
16302 "(Loop detection is done by placing an upper limit on the number of links "
16303 "that may be followed, and an error results if this limit is exceeded.)"
16304 msgstr "シンボリックリンクは、 リンク自身に対する操作か、 リンクが参照するオブジェクトに対する操作のいずれかとして扱われる。 後者の場合、 アプリケーションやシステムコールはリンクをI<辿る (follow)>と呼ばれる。 シンボリックリンクは他のシンボリックリンクを参照することもできる。 この場合、 シンボリックリンクでないオブジェクトが見つかるか、 存在しないファイルを参照するシンボリックリンクが見つかるか、 ループが検出されるまで、 リンクの展開が行われる。 (ループの検出は辿ることができるリンクの数に上限を設けることで行われる。 この上限を超過した場合はエラーとなる。)"
16305
16306 #. type: Plain text
16307 #: build/C/man7/symlink.7:172
16308 msgid ""
16309 "There are three separate areas that need to be discussed.  They are as "
16310 "follows:"
16311 msgstr "3 つの領域に分けて議論する必要がある。以下の 3 つである。"
16312
16313 #. type: IP
16314 #: build/C/man7/symlink.7:172
16315 #, no-wrap
16316 msgid "1."
16317 msgstr "1."
16318
16319 #. type: Plain text
16320 #: build/C/man7/symlink.7:174
16321 msgid "Symbolic links used as filename arguments for system calls."
16322 msgstr ""
16323 "システムコールのファイル名引き数としてシンボリックリンクが使用される場合。"
16324
16325 #. type: IP
16326 #: build/C/man7/symlink.7:174
16327 #, no-wrap
16328 msgid "2."
16329 msgstr "2."
16330
16331 #. type: Plain text
16332 #: build/C/man7/symlink.7:177
16333 msgid ""
16334 "Symbolic links specified as command-line arguments to utilities that are not "
16335 "traversing a file tree."
16336 msgstr ""
16337 "ファイルツリーを辿っていないユーティリティのコマンドライン引き数としてシンボ"
16338 "リックリンクが指定される場合。"
16339
16340 #. type: IP
16341 #: build/C/man7/symlink.7:177
16342 #, no-wrap
16343 msgid "3."
16344 msgstr "3."
16345
16346 #. type: Plain text
16347 #: build/C/man7/symlink.7:181
16348 msgid ""
16349 "Symbolic links encountered by utilities that are traversing a file tree "
16350 "(either specified on the command line or encountered as part of the file "
16351 "hierarchy walk)."
16352 msgstr ""
16353 "ファイルツリーを辿っているユーティリティがシンボリックリンクを見つけた場合 "
16354 "(コマンドラインで指定される場合もあれば、 ファイル階層を辿っている途中で遭遇"
16355 "する場合もある)。"
16356
16357 #. type: SS
16358 #: build/C/man7/symlink.7:181
16359 #, no-wrap
16360 msgid "System calls"
16361 msgstr "システムコール"
16362
16363 #. type: Plain text
16364 #: build/C/man7/symlink.7:184
16365 msgid ""
16366 "The first area is symbolic links used as filename arguments for system calls."
16367 msgstr ""
16368 "最初の領域は、システムコールのファイル名引き数としてシンボリックリンクが使用"
16369 "される場合である。"
16370
16371 #. type: Plain text
16372 #: build/C/man7/symlink.7:194
16373 msgid ""
16374 "Except as noted below, all system calls follow symbolic links.  For example, "
16375 "if there were a symbolic link I<slink> which pointed to a file named "
16376 "I<afile>, the system call I<open(\"slink\" ...\\&)> would return a file "
16377 "descriptor referring to the file I<afile>."
16378 msgstr ""
16379 "以下に述べる場合を除くと、 すべてのシステムコールはシンボリックリンクを辿"
16380 "る。 例えば、 I<afile> という名前のファイルを指しているシンボリックリンク "
16381 "I<slink> があったとすると、 システムコール I<open(\"slink\" ...\\&)> はファイ"
16382 "ル I<afile> を参照するファイルディスクリプタを返す。"
16383
16384 #. type: Plain text
16385 #: build/C/man7/symlink.7:209
16386 msgid ""
16387 "Various system calls do not follow links, and operate on the symbolic link "
16388 "itself.  They are: B<lchown>(2), B<lgetxattr>(2), B<llistxattr>(2), "
16389 "B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), B<readlink>(2), "
16390 "B<rename>(2), B<rmdir>(2), and B<unlink>(2)."
16391 msgstr ""
16392 "リンクを辿らず、シンボリックリンク自身に対して操作を行うシステムコールもあ"
16393 "る。 このようなシステムコールとしては、 B<lchown>(2), B<lgetxattr>(2), "
16394 "B<llistxattr>(2), B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), "
16395 "B<readlink>(2), B<rename>(2), B<rmdir>(2), B<unlink>(2) がある。"
16396
16397 #.  Maybe one day: .BR fchownat (2)
16398 #. type: Plain text
16399 #: build/C/man7/symlink.7:233
16400 msgid ""
16401 "Certain other system calls optionally follow symbolic links.  They are: "
16402 "B<faccessat>(2), B<fchownat>(2), B<fstatat>(2), B<linkat>(2), "
16403 "B<name_to_handle_at>(2), B<open>(2), B<openat>(2), B<open_by_handle_at>(2), "
16404 "and B<utimensat>(2); see their manual pages for details.  Because "
16405 "B<remove>(3)  is an alias for B<unlink>(2), that library function also does "
16406 "not follow symbolic links.  When B<rmdir>(2)  is applied to a symbolic link, "
16407 "it fails with the error B<ENOTDIR>."
16408 msgstr ""
16409 "他のいくつかのシステムコールは、指定された場合にのみシンボリックリンクを辿"
16410 "る。 これらのシステムコールとしては、 B<faccessat>(2), B<fchownat>(2), "
16411 "B<fstatat>(2), B<linkat>(2), B<name_to_handle_at>(2), B<open>(2), "
16412 "B<openat>(2), B<open_by_handle_at>(2), B<utimensat>(2) がある。 詳細はそれぞ"
16413 "れのマニュアルページを参照してほしい。 B<remove>(3) は B<unlink>(2) の別名な"
16414 "ので、 このライブラリ関数もシンボリックリンクを辿らない。 B<rmdir>(2) がシン"
16415 "ボリックリンクに対して行われた場合、その呼び出しはエラー B<ENOTDIR> で失敗す"
16416 "る。"
16417
16418 #. type: Plain text
16419 #: build/C/man7/symlink.7:248
16420 msgid ""
16421 "The B<link>(2)  warrants special discussion.  POSIX.1-2001 specifies that "
16422 "B<link>(2)  should dereference I<oldpath> if it is a symbolic link.  "
16423 "However, Linux does not do this.  (By default Solaris is the same, but the "
16424 "POSIX.1-2001 specified behavior can be obtained with suitable compiler "
16425 "options.)  The upcoming POSIX.1 revision changes the specification to allow "
16426 "either behavior in an implementation."
16427 msgstr ""
16428 "B<link>(2) については特別に議論が必要である。 POSIX.1-2001 では B<link>(2) "
16429 "は I<oldpath> がシンボリックリンクであればこれを展開するように規定している。 "
16430 "しかしながら、 Linux はシンボリックリンクを展開しない。 (デフォルトでは "
16431 "Solaris も同じだが、 適切なコンパイラーオプションを指定することで "
16432 "POSIX.1-2001 で規定された動作をさせることができる。) 今後のバージョンの "
16433 "POSIX.1 では、どちらの動作の実装も認められるように規定が変更される。"
16434
16435 #. type: SS
16436 #: build/C/man7/symlink.7:248
16437 #, no-wrap
16438 msgid "Commands not traversing a file tree"
16439 msgstr "ファイルツリーを辿らないコマンド"
16440
16441 #. type: Plain text
16442 #: build/C/man7/symlink.7:251
16443 msgid ""
16444 "The second area is symbolic links, specified as command-line filename "
16445 "arguments, to commands which are not traversing a file tree."
16446 msgstr "二つ目の領域は、 ファイルツリーを辿らないコマンドの、 コマンドライン引き数のファイル名としてシンボリックリンクが指定される場合である。"
16447
16448 #. type: Plain text
16449 #: build/C/man7/symlink.7:262
16450 msgid ""
16451 "Except as noted below, commands follow symbolic links named as command-line "
16452 "arguments.  For example, if there were a symbolic link I<slink> which "
16453 "pointed to a file named I<afile>, the command I<cat slink> would display the "
16454 "contents of the file I<afile>."
16455 msgstr ""
16456 "以下に述べる場合を除くと、 コマンドはコマンドライン引き数で指定された名前のシ"
16457 "ンボリックリンクを辿る。 例えば、 I<afile> という名前のファイルを指しているシ"
16458 "ンボリックリンク I<slink> があったとすると、 コマンド I<cat slink> は "
16459 "I<afile> の内容を表示することになる。"
16460
16461 #. type: Plain text
16462 #: build/C/man7/symlink.7:270
16463 msgid ""
16464 "It is important to realize that this rule includes commands which may "
16465 "optionally traverse file trees; for example, the command I<chown file> is "
16466 "included in this rule, while the command I<chown\\ -R file>, which performs "
16467 "a tree traversal, is not.  (The latter is described in the third area, "
16468 "below.)"
16469 msgstr ""
16470
16471 #. type: Plain text
16472 #: build/C/man7/symlink.7:288
16473 msgid ""
16474 "If it is explicitly intended that the command operate on the symbolic link "
16475 "instead of following the symbolic link\\(emfor example, it is desired that "
16476 "I<chown slink> change the ownership of the file that I<slink> is, whether it "
16477 "is a symbolic link or not\\(emthe I<-h> option should be used.  In the above "
16478 "example, I<chown root slink> would change the ownership of the file referred "
16479 "to by I<slink>, while I<chown\\ -h root slink> would change the ownership of "
16480 "I<slink> itself."
16481 msgstr ""
16482
16483 #. type: Plain text
16484 #: build/C/man7/symlink.7:290
16485 msgid "There are some exceptions to this rule:"
16486 msgstr "このルールにはいくつかの例外がある。"
16487
16488 #. type: Plain text
16489 #: build/C/man7/symlink.7:300
16490 msgid ""
16491 "The B<mv>(1)  and B<rm>(1)  commands do not follow symbolic links named as "
16492 "arguments, but respectively attempt to rename and delete them.  (Note, if "
16493 "the symbolic link references a file via a relative path, moving it to "
16494 "another directory may very well cause it to stop working, since the path may "
16495 "no longer be correct.)"
16496 msgstr ""
16497 "コマンド B<mv>(1) と B<rm>(1) は引き数で指定された名前のシンボリックリンクを"
16498 "辿らないが、 それぞれシンボリックリンク自身の名前変更と削除を行おうとする。 "
16499 "(シンボリックリンクが相対パスでファイルを参照している場合、 そのシンボリック"
16500 "リンクを別のディレクトリに移動すると、動かなくなることが非常によくある。 移動"
16501 "の結果、 パスが正しくないものになってしまうからである。)"
16502
16503 #. type: Plain text
16504 #: build/C/man7/symlink.7:330
16505 msgid ""
16506 "The B<ls>(1)  command is also an exception to this rule.  For compatibility "
16507 "with historic systems (when B<ls>(1)  is not doing a tree walk\\(emthat is, "
16508 "I<-R> option is not specified), the B<ls>(1)  command follows symbolic links "
16509 "named as arguments if the I<-H> or I<-L> option is specified, or if the I<-"
16510 "F>, I<-d>, or I<-l> options are not specified.  (The B<ls>(1)  command is "
16511 "the only command where the I<-H> and I<-L> options affect its behavior even "
16512 "though it is not doing a walk of a file tree.)"
16513 msgstr ""
16514
16515 #. The 4.4BSD system differs from historical 4BSD systems in that the
16516 #. .BR chown (1)
16517 #. and
16518 #. .BR chgrp (1)
16519 #. commands follow symbolic links specified on the command line.
16520 #. type: Plain text
16521 #: build/C/man7/symlink.7:348
16522 msgid ""
16523 "The B<file>(1)  command is also an exception to this rule.  The B<file>(1)  "
16524 "command does not follow symbolic links named as argument by default.  The "
16525 "B<file>(1)  command does follow symbolic links named as argument if the I<-"
16526 "L> option is specified."
16527 msgstr ""
16528
16529 #. type: SS
16530 #: build/C/man7/symlink.7:348
16531 #, no-wrap
16532 msgid "Commands traversing a file tree"
16533 msgstr "ファイルツリーを辿るコマンド"
16534
16535 #. type: Plain text
16536 #: build/C/man7/symlink.7:361
16537 msgid ""
16538 "The following commands either optionally or always traverse file trees: "
16539 "B<chgrp>(1), B<chmod>(1), B<chown>(1), B<cp>(1), B<du>(1), B<find>(1), "
16540 "B<ls>(1), B<pax>(1), B<rm>(1), and B<tar>(1)."
16541 msgstr ""
16542
16543 #. type: Plain text
16544 #: build/C/man7/symlink.7:365
16545 msgid ""
16546 "It is important to realize that the following rules apply equally to "
16547 "symbolic links encountered during the file tree traversal and symbolic links "
16548 "listed as command-line arguments."
16549 msgstr ""
16550
16551 #. type: Plain text
16552 #: build/C/man7/symlink.7:370
16553 msgid ""
16554 "The I<first rule> applies to symbolic links that reference files other than "
16555 "directories.  Operations that apply to symbolic links are performed on the "
16556 "links themselves, but otherwise the links are ignored."
16557 msgstr ""
16558
16559 #. type: Plain text
16560 #: build/C/man7/symlink.7:382
16561 msgid ""
16562 "The command I<rm\\ -r slink directory> will remove I<slink>, as well as any "
16563 "symbolic links encountered in the tree traversal of I<directory>, because "
16564 "symbolic links may be removed.  In no case will B<rm>(1)  affect the file "
16565 "referred to by I<slink>."
16566 msgstr ""
16567
16568 #. type: Plain text
16569 #: build/C/man7/symlink.7:387
16570 msgid ""
16571 "The I<second rule> applies to symbolic links that refer to directories.  "
16572 "Symbolic links that refer to directories are never followed by default.  "
16573 "This is often referred to as a \"physical\" walk, as opposed to a \"logical"
16574 "\" walk (where symbolic links the refer to directories are followed)."
16575 msgstr ""
16576
16577 #. type: Plain text
16578 #: build/C/man7/symlink.7:390
16579 msgid ""
16580 "Certain conventions are (should be) followed as consistently as possible by "
16581 "commands that perform file tree walks:"
16582 msgstr ""
16583
16584 #. type: Plain text
16585 #: build/C/man7/symlink.7:403
16586 msgid ""
16587 "A command can be made to follow any symbolic links named on the command "
16588 "line, regardless of the type of file they reference, by specifying the I<-H> "
16589 "(for \"half-logical\") flag.  This flag is intended to make the command-line "
16590 "name space look like the logical name space.  (Note, for commands that do "
16591 "not always do file tree traversals, the I<-H> flag will be ignored if the I<-"
16592 "R> flag is not also specified.)"
16593 msgstr ""
16594
16595 #. type: Plain text
16596 #: build/C/man7/symlink.7:419
16597 msgid ""
16598 "For example, the command I<chown\\ -HR user slink> will traverse the file "
16599 "hierarchy rooted in the file pointed to by I<slink>.  Note, the I<-H> is not "
16600 "the same as the previously discussed I<-h> flag.  The I<-H> flag causes "
16601 "symbolic links specified on the command line to be dereferenced for the "
16602 "purposes of both the action to be performed and the tree walk, and it is as "
16603 "if the user had specified the name of the file to which the symbolic link "
16604 "pointed."
16605 msgstr ""
16606
16607 #. type: Plain text
16608 #: build/C/man7/symlink.7:433
16609 msgid ""
16610 "A command can be made to follow any symbolic links named on the command "
16611 "line, as well as any symbolic links encountered during the traversal, "
16612 "regardless of the type of file they reference, by specifying the I<-L> (for "
16613 "\"logical\") flag.  This flag is intended to make the entire name space look "
16614 "like the logical name space.  (Note, for commands that do not always do file "
16615 "tree traversals, the I<-L> flag will be ignored if the I<-R> flag is not "
16616 "also specified.)"
16617 msgstr ""
16618
16619 #. type: Plain text
16620 #: build/C/man7/symlink.7:448
16621 msgid ""
16622 "For example, the command I<chown\\ -LR user slink> will change the owner of "
16623 "the file referred to by I<slink>.  If I<slink> refers to a directory, "
16624 "B<chown> will traverse the file hierarchy rooted in the directory that it "
16625 "references.  In addition, if any symbolic links are encountered in any file "
16626 "tree that B<chown> traverses, they will be treated in the same fashion as "
16627 "I<slink>."
16628 msgstr ""
16629
16630 #. type: Plain text
16631 #: build/C/man7/symlink.7:455
16632 msgid ""
16633 "A command can be made to provide the default behavior by specifying the I<-"
16634 "P> (for \"physical\") flag.  This flag is intended to make the entire name "
16635 "space look like the physical name space."
16636 msgstr ""
16637
16638 #. type: Plain text
16639 #: build/C/man7/symlink.7:473
16640 msgid ""
16641 "For commands that do not by default do file tree traversals, the I<-H>, I<-"
16642 "L>, and I<-P> flags are ignored if the I<-R> flag is not also specified.  In "
16643 "addition, you may specify the I<-H>, I<-L>, and I<-P> options more than "
16644 "once; the last one specified determines the command's behavior.  This is "
16645 "intended to permit you to alias commands to behave one way or the other, and "
16646 "then override that behavior on the command line."
16647 msgstr ""
16648
16649 #. type: Plain text
16650 #: build/C/man7/symlink.7:479
16651 msgid "The B<ls>(1)  and B<rm>(1)  commands have exceptions to these rules:"
16652 msgstr ""
16653 "コマンド B<ls>(1) と B<rm>(1) には、 これらのルールに対する例外がある。"
16654
16655 #. type: Plain text
16656 #: build/C/man7/symlink.7:492
16657 msgid ""
16658 "The B<rm>(1)  command operates on the symbolic link, and not the file it "
16659 "references, and therefore never follows a symbolic link.  The B<rm>(1)  "
16660 "command does not support the I<-H>, I<-L>, or I<-P> options."
16661 msgstr ""
16662 "B<rm>(1) コマンドは、 参照先のファイルではなく、シンボリックリンクに対して操"
16663 "作を行う。 したがって、 シンボリックリンクを辿ることはない。 B<rm>(1) コマン"
16664 "ドはオプション I<-H>, I<-L>, I<-P> をサポートしていない。"
16665
16666 #. type: Plain text
16667 #: build/C/man7/symlink.7:512
16668 msgid ""
16669 "To maintain compatibility with historic systems, the B<ls>(1)  command acts "
16670 "a little differently.  If you do not specify the I<-F>, I<-d> or I<-l> "
16671 "options, B<ls>(1)  will follow symbolic links specified on the command "
16672 "line.  If the I<-L> flag is specified, B<ls>(1)  follows all symbolic links, "
16673 "regardless of their type, whether specified on the command line or "
16674 "encountered in the tree walk."
16675 msgstr ""
16676
16677 #. type: Plain text
16678 #: build/C/man7/symlink.7:530
16679 msgid ""
16680 "B<chgrp>(1), B<chmod>(1), B<find>(1), B<ln>(1), B<ls>(1), B<mv>(1), "
16681 "B<rm>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<readlink>(2), "
16682 "B<rename>(2), B<symlink>(2), B<unlink>(2), B<utimensat>(2), B<lutimes>(3), "
16683 "B<path_resolution>(7)"
16684 msgstr ""
16685 "B<chgrp>(1), B<chmod>(1), B<find>(1), B<ln>(1), B<ls>(1), B<mv>(1),\n"
16686 "B<rm>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<readlink>(2),\n"
16687 "B<rename>(2), B<symlink>(2), B<unlink>(2), B<utimensat>(2),\n"
16688 "B<lutimes>(3), B<path_resolution>(7)"
16689
16690 #. type: TH
16691 #: build/C/man3/tempnam.3:25
16692 #, no-wrap
16693 msgid "TEMPNAM"
16694 msgstr "TEMPNAM"
16695
16696 #. type: TH
16697 #: build/C/man3/tempnam.3:25 build/C/man3/tmpnam.3:27
16698 #, no-wrap
16699 msgid "2014-02-27"
16700 msgstr "2014-02-27"
16701
16702 #. type: Plain text
16703 #: build/C/man3/tempnam.3:28
16704 msgid "tempnam - create a name for a temporary file"
16705 msgstr "tempnam - テンポラリファイルの名前を作成する"
16706
16707 #. type: Plain text
16708 #: build/C/man3/tempnam.3:33
16709 #, no-wrap
16710 msgid "B<char *tempnam(const char *>I<dir>B<, const char *>I<pfx>B<);>\n"
16711 msgstr "B<char *tempnam(const char *>I<dir>B<, const char *>I<pfx>B<);>\n"
16712
16713 #. type: Plain text
16714 #: build/C/man3/tempnam.3:42
16715 msgid "B<tempnam>(): _BSD_SOURCE || _SVID_SOURCE"
16716 msgstr "B<tempnam>(): _BSD_SOURCE || _SVID_SOURCE"
16717
16718 #. type: Plain text
16719 #: build/C/man3/tempnam.3:49
16720 msgid ""
16721 "I<Never use this function.> Use B<mkstemp>(3)  or B<tmpfile>(3)  instead."
16722 msgstr ""
16723 "I<決してこの関数を使用しないこと。> 代わりに B<mkstemp>(3)  か B<tmpfile>(3) "
16724 "を使うこと。"
16725
16726 #. type: Plain text
16727 #: build/C/man3/tempnam.3:63
16728 msgid ""
16729 "The B<tempnam>()  function returns a pointer to a string that is a valid "
16730 "filename, and such that a file with this name did not exist when "
16731 "B<tempnam>()  checked.  The filename suffix of the pathname generated will "
16732 "start with I<pfx> in case I<pfx> is a non-NULL string of at most five "
16733 "bytes.  The directory prefix part of the pathname generated is required to "
16734 "be \"appropriate\" (often that at least implies writable)."
16735 msgstr ""
16736 "B<tempnam>()  関数はファイル名として正しい文字列へのポインタを返す。 このファ"
16737 "イル名を持つファイルは、 B<tempnam>()  がチェックした時点においては存在しな"
16738 "い (しなかった)。 I<pfx> が NULL でない 5 バイト以内の文字列であれば、 生成さ"
16739 "れるパス名のうちのファイル名の部分は I<pfx> から始まるものになる。 生成される"
16740 "ディレクトリの部分は、「適切」でなければならない (大抵の場合、「適切」である"
16741 "ためにはまず少なくとも 書き込み可能でなければならない)。"
16742
16743 #. type: Plain text
16744 #: build/C/man3/tempnam.3:66
16745 msgid ""
16746 "Attempts to find an appropriate directory go through the following steps:"
16747 msgstr "適切なディレクトリの探索は、以下の手順にしたがって行われる。"
16748
16749 #. type: TP
16750 #: build/C/man3/tempnam.3:66
16751 #, no-wrap
16752 msgid "a)"
16753 msgstr "a)"
16754
16755 #. type: Plain text
16756 #: build/C/man3/tempnam.3:72
16757 msgid ""
16758 "In case the environment variable B<TMPDIR> exists and contains the name of "
16759 "an appropriate directory, that is used."
16760 msgstr ""
16761 "環境変数 B<TMPDIR> が設定されていて、 その内容が適切なディレクトリの名前な"
16762 "ら、それを用いる。"
16763
16764 #. type: TP
16765 #: build/C/man3/tempnam.3:72
16766 #, no-wrap
16767 msgid "b)"
16768 msgstr "b)"
16769
16770 #. type: Plain text
16771 #: build/C/man3/tempnam.3:77
16772 msgid ""
16773 "Otherwise, if the I<dir> argument is non-NULL and appropriate, it is used."
16774 msgstr ""
16775 "それ以外の場合、 I<dir> 引き数が NULL でない文字列でかつ適切なら、それを用い"
16776 "る。"
16777
16778 #. type: TP
16779 #: build/C/man3/tempnam.3:77
16780 #, no-wrap
16781 msgid "c)"
16782 msgstr "c)"
16783
16784 #. type: Plain text
16785 #: build/C/man3/tempnam.3:84
16786 msgid ""
16787 "Otherwise, I<P_tmpdir> (as defined in I<E<lt>stdio.hE<gt>>)  is used when "
16788 "appropriate."
16789 msgstr ""
16790 "それ以外の場合、 (I<E<lt>stdio.hE<gt>> で定義されている)  I<P_tmpdir> が適切"
16791 "なら、それを用いる。"
16792
16793 #. type: TP
16794 #: build/C/man3/tempnam.3:84
16795 #, no-wrap
16796 msgid "d)"
16797 msgstr "d)"
16798
16799 #. type: Plain text
16800 #: build/C/man3/tempnam.3:87
16801 msgid "Finally an implementation-defined directory may be used."
16802 msgstr "最後に実装で定義されたディレクトリが用いられることになる。"
16803
16804 #. type: Plain text
16805 #: build/C/man3/tempnam.3:94
16806 msgid ""
16807 "The string returned by B<tempnam>()  is allocated using B<malloc>(3)  and "
16808 "hence should be freed by B<free>(3)."
16809 msgstr ""
16810 "B<tempnam>()  が返す文字列は B<malloc>(3)  を使って確保される。そのため、 "
16811 "B<free>(3)  で解放すべきである。"
16812
16813 #. type: Plain text
16814 #: build/C/man3/tempnam.3:101
16815 msgid ""
16816 "On success, the B<tempnam>()  function returns a pointer to a unique "
16817 "temporary filename.  It returns NULL if a unique name cannot be generated, "
16818 "with I<errno> set to indicate the cause of the error."
16819 msgstr ""
16820 "成功すると B<tempnam>()  関数は、一意なテンポラリファイル名へのポインタを返"
16821 "す。 一意な名前が生成できなければ NULL を返し、 I<errno> にエラーの原因を示す"
16822 "値を設定する。"
16823
16824 #. type: Plain text
16825 #: build/C/man3/tempnam.3:105
16826 msgid "Allocation of storage failed."
16827 msgstr "保存領域の割り当てに失敗した。"
16828
16829 #. type: Plain text
16830 #: build/C/man3/tempnam.3:110
16831 msgid ""
16832 "SVr4, 4.3BSD, POSIX.1-2001.  POSIX.1-2008 marks B<tempnam>()  as obsolete."
16833 msgstr ""
16834 "SVr4, 4.3BSD, POSIX.1-2001.  POSIX.1-2008 は B<tempnam>()  を廃止予定としてい"
16835 "る。"
16836
16837 #. type: Plain text
16838 #: build/C/man3/tempnam.3:129
16839 msgid ""
16840 "Although B<tempnam>()  generates names that are difficult to guess, it is "
16841 "nevertheless possible that between the time that B<tempnam>()  returns a "
16842 "pathname, and the time that the program opens it, another program might "
16843 "create that pathname using B<open>(2), or create it as a symbolic link.  "
16844 "This can lead to security holes.  To avoid such possibilities, use the "
16845 "B<open>(2)  B<O_EXCL> flag to open the pathname.  Or better yet, use "
16846 "B<mkstemp>(3)  or B<tmpfile>(3)."
16847 msgstr ""
16848 "B<tempnam>()  は推測が難しい名前を生成するが、それにもかかわらず、 "
16849 "B<tempnam>()  がパス名を返してから、プログラムがそのファイルをオープンする ま"
16850 "での間に、別のプログラムが同じパス名で、ファイルを B<open>(2)  で作成したり、"
16851 "シンボリックリンクを作成したりする可能性がある。 これはセキュリティホールにつ"
16852 "ながる可能性がある。 そのような可能性を回避するためには、 B<open>(2)  の "
16853 "B<O_EXCL> フラグを使ってパス名をオープンすればよい。 もっといいのは、 "
16854 "B<mkstemp>(3)  や B<tmpfile>(3)  を使うことである。"
16855
16856 #. type: Plain text
16857 #: build/C/man3/tempnam.3:137
16858 msgid ""
16859 "SUSv2 does not mention the use of B<TMPDIR>; glibc will use it only when the "
16860 "program is not set-user-ID.  On SVr4, the directory used under B<d)> is I</"
16861 "tmp> (and this is what glibc does)."
16862 msgstr ""
16863 "SUSv2 では B<TMPDIR> に付いて言及されていない。 glibc は、プログラムが set-"
16864 "user-ID されていない場合に限ってこれを用いる。 SVr4 では B<d)> で使用される"
16865 "ディレクトリを I</tmp> と定めている (glibc もこの通りである)。"
16866
16867 #. type: Plain text
16868 #: build/C/man3/tempnam.3:142
16869 msgid ""
16870 "Because it dynamically allocates memory used to return the pathname, "
16871 "B<tempnam>()  is reentrant, and thus thread safe, unlike B<tmpnam>(3)."
16872 msgstr ""
16873 "パス名を返すのに使用するメモリを動的に確保するので、 B<tmpnam>(3)  と違い、 "
16874 "B<tempnam>()  はリエントラントであり、スレッドセーフである。"
16875
16876 #. type: Plain text
16877 #: build/C/man3/tempnam.3:155
16878 msgid ""
16879 "The B<tempnam>()  function generates a different string each time it is "
16880 "called, up to B<TMP_MAX> (defined in I<E<lt>stdio.hE<gt>>)  times.  If it is "
16881 "called more than B<TMP_MAX> times, the behavior is implementation defined."
16882 msgstr ""
16883 "B<tempnam>()  関数は最大 B<TMP_MAX> 回まで、呼び出される度に異なる文字列を作"
16884 "成する (B<TMP_MAX> は I<E<lt>stdio.hE<gt>> で定義されている)。 もし "
16885 "B<TMP_MAX> 回以上呼び出された場合、動作は実装依存である。"
16886
16887 #. type: Plain text
16888 #: build/C/man3/tempnam.3:159
16889 msgid "B<tempnam>()  uses at most the first five bytes from I<pfx>."
16890 msgstr "B<tempnam>()  は最大で I<pfx> の先頭 5 バイトを使用する。"
16891
16892 #. type: Plain text
16893 #: build/C/man3/tempnam.3:165
16894 msgid ""
16895 "The glibc implementation of B<tempnam>()  will fail with the error B<EEXIST> "
16896 "upon failure to find a unique name."
16897 msgstr ""
16898 "他と重ならない名前が見つけられなかった場合、glibc の B<tempnam>()  の実装はエ"
16899 "ラー B<EEXIST> で失敗する。"
16900
16901 #. type: Plain text
16902 #: build/C/man3/tempnam.3:168
16903 msgid ""
16904 "The precise meaning of \"appropriate\" is undefined; it is unspecified how "
16905 "accessibility of a directory is determined."
16906 msgstr ""
16907 "「適切」という言葉の正確な意味は定義されていない。 ディレクトリに対してどの程"
16908 "度のアクセス権限が必要なのかは指定されていない。"
16909
16910 #. type: Plain text
16911 #: build/C/man3/tempnam.3:173
16912 msgid "B<mkstemp>(3), B<mktemp>(3), B<tmpfile>(3), B<tmpnam>(3)"
16913 msgstr "B<mkstemp>(3), B<mktemp>(3), B<tmpfile>(3), B<tmpnam>(3)"
16914
16915 #. type: TH
16916 #: build/C/man3/tmpfile.3:31
16917 #, no-wrap
16918 msgid "TMPFILE"
16919 msgstr "TMPFILE"
16920
16921 #. type: Plain text
16922 #: build/C/man3/tmpfile.3:34
16923 msgid "tmpfile - create a temporary file"
16924 msgstr "tmpfile - テンポラリファイルを作成する"
16925
16926 #. type: Plain text
16927 #: build/C/man3/tmpfile.3:39
16928 #, no-wrap
16929 msgid "B<FILE *tmpfile(void);>\n"
16930 msgstr "B<FILE *tmpfile(void);>\n"
16931
16932 #. type: Plain text
16933 #: build/C/man3/tmpfile.3:47
16934 msgid ""
16935 "The B<tmpfile>()  function opens a unique temporary file in binary read/"
16936 "write (w+b) mode.  The file will be automatically deleted when it is closed "
16937 "or the program terminates."
16938 msgstr ""
16939 "B<tmpfile>()  関数はユニークなテンポラリファイルを バイナリリードライトモー"
16940 "ド (w+b) でオープンする。 このファイルはクローズ時またはプログラムの終了時に"
16941 "自動的に削除される。"
16942
16943 #. type: Plain text
16944 #: build/C/man3/tmpfile.3:56
16945 msgid ""
16946 "The B<tmpfile>()  function returns a stream descriptor, or NULL if a unique "
16947 "filename cannot be generated or the unique file cannot be opened.  In the "
16948 "latter case, I<errno> is set to indicate the error."
16949 msgstr ""
16950 "B<tmpfile>()  関数はファイルポインタを返すか、 ユニークなファイルが作れなかっ"
16951 "たかオープンできなかった場合は NULL を返す。 後者の場合、エラーを表す "
16952 "I<errno> を設定する。"
16953
16954 #. type: Plain text
16955 #: build/C/man3/tmpfile.3:60
16956 msgid "Search permission denied for directory in file's path prefix."
16957 msgstr ""
16958 "ファイルのあるディレクトリにサーチのアクセス権 (search permission) がない。"
16959
16960 #. type: Plain text
16961 #: build/C/man3/tmpfile.3:63
16962 msgid "Unable to generate a unique filename."
16963 msgstr "ユニークなファイル名が作成できなかった。"
16964
16965 #. type: Plain text
16966 #: build/C/man3/tmpfile.3:66
16967 msgid "The call was interrupted by a signal."
16968 msgstr "呼び出しがシグナルによって中断された。"
16969
16970 #. type: Plain text
16971 #: build/C/man3/tmpfile.3:69
16972 msgid "Too many file descriptors in use by the process."
16973 msgstr "1 つのプロセスで使用可能なファイルディスクリプタ数を超過した。"
16974
16975 #. type: Plain text
16976 #: build/C/man3/tmpfile.3:72
16977 msgid "Too many files open in the system."
16978 msgstr "システム全体でオープン可能なファイル数を超過した。"
16979
16980 #. type: Plain text
16981 #: build/C/man3/tmpfile.3:75
16982 msgid "There was no room in the directory to add the new filename."
16983 msgstr "ディレクトリに新しいファイルを追加するための空き領域がない。"
16984
16985 #. type: Plain text
16986 #: build/C/man3/tmpfile.3:78
16987 msgid "Read-only filesystem."
16988 msgstr "読みだし専用ファイルシステムである。"
16989
16990 #. type: Plain text
16991 #: build/C/man3/tmpfile.3:80
16992 msgid "SVr4, 4.3BSD, C89, C99, SUSv2, POSIX.1-2001."
16993 msgstr "SVr4, 4.3BSD, C89, C99, SUSv2, POSIX.1-2001."
16994
16995 #. type: Plain text
16996 #: build/C/man3/tmpfile.3:86
16997 msgid ""
16998 "POSIX.1-2001 specifies: an error message may be written to I<stdout> if the "
16999 "stream cannot be opened."
17000 msgstr ""
17001 "POSIX.1-2001 では、 ストリームをオープンできなかった場合、 I<stdout> にエラー"
17002 "メッセージが書き出される、と規定されている。"
17003
17004 #. type: Plain text
17005 #: build/C/man3/tmpfile.3:97
17006 msgid ""
17007 "The standard does not specify the directory that B<tmpfile>()  will use.  "
17008 "Glibc will try the path prefix I<P_tmpdir> defined in I<E<lt>stdio.hE<gt>>, "
17009 "and if that fails the directory I</tmp>."
17010 msgstr ""
17011 "規格では B<tmpfile>()  が使うディレクトリは指定されていない。 glibc では "
17012 "I<E<lt>stdio.hE<gt>> で定義されている I<P_tmpdir> をパスの先頭に使おうとす"
17013 "る。 これが失敗した場合は、ディレクトリ I</tmp> を使う。"
17014
17015 #. type: Plain text
17016 #: build/C/man3/tmpfile.3:103
17017 msgid "B<exit>(3), B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpnam>(3)"
17018 msgstr "B<exit>(3), B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpnam>(3)"
17019
17020 #. type: TH
17021 #: build/C/man3/tmpnam.3:27
17022 #, no-wrap
17023 msgid "TMPNAM"
17024 msgstr "TMPNAM"
17025
17026 #. type: Plain text
17027 #: build/C/man3/tmpnam.3:30
17028 msgid "tmpnam, tmpnam_r - create a name for a temporary file"
17029 msgstr "tmpnam, tmpnam_r - 一時ファイルの名前を作成する"
17030
17031 #. type: Plain text
17032 #: build/C/man3/tmpnam.3:35
17033 #, no-wrap
17034 msgid "B<char *tmpnam(char *>I<s>B<);>\n"
17035 msgstr "B<char *tmpnam(char *>I<s>B<);>\n"
17036
17037 #. type: Plain text
17038 #: build/C/man3/tmpnam.3:45
17039 msgid ""
17040 "B<Note:> Avoid use of B<tmpnam>(); use B<mkstemp>(3)  or B<tmpfile>(3)  "
17041 "instead."
17042 msgstr ""
17043 "B<注意:> B<tmpnam>() の使用は避けること。代わりに B<mkstemp>(3) か "
17044 "B<tmpfile>(3) を使うこと。"
17045
17046 #. type: Plain text
17047 #: build/C/man3/tmpnam.3:67
17048 msgid ""
17049 "The B<tmpnam>()  function returns a pointer to a string that is a valid "
17050 "filename, and such that a file with this name did not exist at some point in "
17051 "time, so that naive programmers may think it a suitable name for a temporary "
17052 "file.  If the argument I<s> is NULL, this name is generated in an internal "
17053 "static buffer and may be overwritten by the next call to B<tmpnam>().  If "
17054 "I<s> is not NULL, the name is copied to the character array (of length at "
17055 "least I<L_tmpnam>)  pointed to by I<s> and the value I<s> is returned in "
17056 "case of success."
17057 msgstr ""
17058 "B<tmpnam>()  関数は、ファイル名に使える文字列へのポインタを返す。 ある時点で"
17059 "は同じ名前を持つファイルが存在しないファイル名が返されるので、 幼稚なプログラ"
17060 "マはこの文字列が一時ファイルのファイル名として 適していると考えるかもしれな"
17061 "い。 引き数 I<s> が NULL なら、この名前は内部の静的バッファに作成され、 次に "
17062 "B<tmpnam>()  関数が呼び出された時に上書きされる。 I<s> が NULL でなければ、"
17063 "ファイル名は I<s> が指す (少なくとも I<L_tmpnam> の長さを持つ) 文字配列にコ"
17064 "ピーされ、 成功した場合は I<s> が返される。"
17065
17066 #. type: Plain text
17067 #: build/C/man3/tmpnam.3:79
17068 msgid ""
17069 "The pathname that is created, has a directory prefix I<P_tmpdir>.  (Both "
17070 "I<L_tmpnam> and I<P_tmpdir> are defined in I<E<lt>stdio.hE<gt>>, just like "
17071 "the B<TMP_MAX> mentioned below.)"
17072 msgstr ""
17073 "作成されるパス名は、ディレクトリの部分に I<P_tmpdir> が使われる。 "
17074 "(I<L_tmpnam> と I<P_tmpdir> は、以下で説明する B<TMP_MAX> 同様 I<E<lt>stdio."
17075 "hE<gt>> で定義されている。)"
17076
17077 #. type: Plain text
17078 #: build/C/man3/tmpnam.3:84
17079 msgid ""
17080 "The B<tmpnam>()  function returns a pointer to a unique temporary filename, "
17081 "or NULL if a unique name cannot be generated."
17082 msgstr ""
17083 "B<tmpnam>()  関数は一意な一時ファイル名へのポインタを返す。 一意なファイル名"
17084 "が作成できなかった場合は NULL を返す。"
17085
17086 #. type: Plain text
17087 #: build/C/man3/tmpnam.3:86
17088 msgid "No errors are defined."
17089 msgstr "エラーは定義されていない。"
17090
17091 #. type: Plain text
17092 #: build/C/man3/tmpnam.3:92
17093 msgid ""
17094 "The B<tmpnam>()  function is thread-safe with exceptions.  It is not thread-"
17095 "safe if called with a NULL parameter."
17096 msgstr ""
17097 "B<tmpnam>() 関数は例外付きでスレッドセーフである。 NULL パラメータで呼び出さ"
17098 "れた場合はスレッドセーフではない。"
17099
17100 #. type: Plain text
17101 #: build/C/man3/tmpnam.3:96
17102 msgid "The B<tmpnam_r>()  function is thread-safe."
17103 msgstr "B<tmpnam_r>() 関数はスレッドセーフである。"
17104
17105 #. type: Plain text
17106 #: build/C/man3/tmpnam.3:101
17107 msgid ""
17108 "SVr4, 4.3BSD, C89, C99, POSIX.1-2001.  POSIX.1-2008 marks B<tmpnam>()  as "
17109 "obsolete."
17110 msgstr ""
17111 "SVr4, 4.3BSD, C89, C99, POSIX.1-2001.  POSIX.1-2008 は B<tmpnam>()  を廃止予"
17112 "定としている。"
17113
17114 #. type: Plain text
17115 #: build/C/man3/tmpnam.3:112
17116 msgid ""
17117 "The B<tmpnam>()  function generates a different string each time it is "
17118 "called, up to B<TMP_MAX> times.  If it is called more than B<TMP_MAX> times, "
17119 "the behavior is implementation defined."
17120 msgstr ""
17121 "B<tmpnam>()  関数は最大 B<TMP_MAX> 回まで、呼び出される度に異なる文字列を作成"
17122 "する。 B<TMP_MAX> 回以上呼び出された場合、その動作は実装依存である。"
17123
17124 #. type: Plain text
17125 #: build/C/man3/tmpnam.3:131
17126 msgid ""
17127 "Although B<tmpnam>()  generates names that are difficult to guess, it is "
17128 "nevertheless possible that between the time that B<tmpnam>()  returns a "
17129 "pathname, and the time that the program opens it, another program might "
17130 "create that pathname using B<open>(2), or create it as a symbolic link.  "
17131 "This can lead to security holes.  To avoid such possibilities, use the "
17132 "B<open>(2)  B<O_EXCL> flag to open the pathname.  Or better yet, use "
17133 "B<mkstemp>(3)  or B<tmpfile>(3)."
17134 msgstr ""
17135 "B<tmpnam>()  は推測が難しい名前を生成するが、それにもかかわらず、 "
17136 "B<tmpnam>()  がパス名を返してから、プログラムがそのファイルをオープンする ま"
17137 "での間に、別のプログラムが同じパス名で、ファイルを B<open>(2)  で作成したり、"
17138 "シンボリックリンクを作成したりする可能性がある。 これはセキュリティホールにつ"
17139 "ながる可能性がある。 そのような可能性を回避するためには、 B<open>(2)  の "
17140 "B<O_EXCL> フラグを使ってパス名をオープンすればよい。 もっといいのは、 "
17141 "B<mkstemp>(3)  や B<tmpfile>(3)  を使うことである。"
17142
17143 #. type: Plain text
17144 #: build/C/man3/tmpnam.3:139
17145 msgid ""
17146 "Portable applications that use threads cannot call B<tmpnam>()  with a NULL "
17147 "argument if either B<_POSIX_THREADS> or B<_POSIX_THREAD_SAFE_FUNCTIONS> is "
17148 "defined."
17149 msgstr ""
17150 "移植性が必要な、スレッドを使ったアプリケーションでは、 B<_POSIX_THREADS> か "
17151 "B<_POSIX_THREAD_SAFE_FUNCTIONS> が定義されている場合に、 B<tmpnam>()  関数を "
17152 "NULL 引き数で呼び出してはならない。"
17153
17154 #. type: Plain text
17155 #: build/C/man3/tmpnam.3:143
17156 msgid "A POSIX draft proposed to use a function B<tmpnam_r>()  defined by"
17157 msgstr ""
17158 "POSIX 草案では、関数 B<tmpnam_r>()  を使うことを提案している。 この関数は、以"
17159 "下のように定義されており、 NULL を使わないようにという警告の意味で NULL を別"
17160 "扱いしている。"
17161
17162 #. type: Plain text
17163 #: build/C/man3/tmpnam.3:151
17164 #, no-wrap
17165 msgid ""
17166 "char *\n"
17167 "tmpnam_r(char *s)\n"
17168 "{\n"
17169 "    return s ? tmpnam(s) : NULL;\n"
17170 "}\n"
17171 msgstr ""
17172 "char *\n"
17173 "tmpnam_r(char *s)\n"
17174 "{\n"
17175 "    return s ? tmpnam(s) : NULL;\n"
17176 "}\n"
17177
17178 #. type: Plain text
17179 #: build/C/man3/tmpnam.3:165
17180 msgid ""
17181 "apparently as a warning not to use NULL.  A few systems implement it.  To "
17182 "get a glibc prototype for this function from I<E<lt>stdio.hE<gt>>, define "
17183 "B<_SVID_SOURCE> or B<_BSD_SOURCE> (before including I<any> header file)."
17184 msgstr ""
17185 "数は少ないが、この関数を実装しているシステムもある。 この関数の glibc のプロ"
17186 "トタイプを I<E<lt>stdio.hE<gt>> から得るには、 (「どの」ヘッダファイルをイン"
17187 "クルードするよりも前に)  B<_SVID_SOURCE> か B<_BSD_SOURCE> を定義しておく必要"
17188 "がある。"
17189
17190 #. type: Plain text
17191 #: build/C/man3/tmpnam.3:172
17192 msgid "Never use this function.  Use B<mkstemp>(3)  or B<tmpfile>(3)  instead."
17193 msgstr ""
17194 "決してこの関数を使ってはならない。代わりに B<mkstemp>(3)  か B<tmpfile>(3)  "
17195 "を使うこと。"
17196
17197 #. type: Plain text
17198 #: build/C/man3/tmpnam.3:177
17199 msgid "B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3)"
17200 msgstr "B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3)"
17201
17202 #. type: TH
17203 #: build/C/man2/unlink.2:33
17204 #, no-wrap
17205 msgid "UNLINK"
17206 msgstr "UNLINK"
17207
17208 #. type: Plain text
17209 #: build/C/man2/unlink.2:36
17210 msgid "unlink, unlinkat - delete a name and possibly the file it refers to"
17211 msgstr ""
17212 "unlink, unlinkat - 名前を削除し、場合によってはそれが参照しているファイルも削"
17213 "除する"
17214
17215 #. type: Plain text
17216 #: build/C/man2/unlink.2:41
17217 #, no-wrap
17218 msgid "B<int unlink(const char *>I<pathname>B<);>\n"
17219 msgstr "B<int unlink(const char *>I<pathname>B<);>\n"
17220
17221 #. type: Plain text
17222 #: build/C/man2/unlink.2:46
17223 #, no-wrap
17224 msgid "B<int unlinkat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
17225 msgstr "B<int unlinkat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
17226
17227 #. type: Plain text
17228 #: build/C/man2/unlink.2:54
17229 msgid "B<unlinkat>():"
17230 msgstr "B<unlinkat>():"
17231
17232 #. type: Plain text
17233 #: build/C/man2/unlink.2:72
17234 msgid ""
17235 "B<unlink>()  deletes a name from the filesystem.  If that name was the last "
17236 "link to a file and no processes have the file open, the file is deleted and "
17237 "the space it was using is made available for reuse."
17238 msgstr ""
17239 "B<unlink>()  はファイルシステム上の名前を削除する。 もしその名前がファイルへ"
17240 "の最後のリンク (link) であり、 どのプロセスもそのファイルをオープン (open) し"
17241 "ていなければ、 ファイルは削除される。 ファイルが使用していたディスク上の領域"
17242 "は再利用が可能になる。"
17243
17244 #. type: Plain text
17245 #: build/C/man2/unlink.2:76
17246 msgid ""
17247 "If the name was the last link to a file but any processes still have the "
17248 "file open, the file will remain in existence until the last file descriptor "
17249 "referring to it is closed."
17250 msgstr ""
17251 "名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開"
17252 "いているなら、ファイルの最後のファイル記述子 (file descriptor) が閉じられるま"
17253 "でファイルは存在し続ける。"
17254
17255 #. type: Plain text
17256 #: build/C/man2/unlink.2:82
17257 msgid ""
17258 "If the name referred to a socket, FIFO, or device, the name for it is "
17259 "removed but processes which have the object open may continue to use it."
17260 msgstr ""
17261 "名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、 その"
17262 "ソケットなどを開いているプロセスはそのまま使い続けることができる。"
17263
17264 #. type: SS
17265 #: build/C/man2/unlink.2:82
17266 #, no-wrap
17267 msgid "unlinkat()"
17268 msgstr "unlinkat()"
17269
17270 #. type: Plain text
17271 #: build/C/man2/unlink.2:95
17272 msgid ""
17273 "The B<unlinkat>()  system call operates in exactly the same way as either "
17274 "B<unlink>()  or B<rmdir>(2)  (depending on whether or not I<flags> includes "
17275 "the B<AT_REMOVEDIR> flag)  except for the differences described here."
17276 msgstr ""
17277 "B<unlinkat>() システムコールは、B<unlink>() と B<rmdir>(2) のいずれかと全く同"
17278 "じ動作をする (どちらと同じになるかは I<flags> に B<AT_REMOVEDIR> フラグが指定"
17279 "されたかにより決まる) が、以下で説明する点が異なる。"
17280
17281 #. type: Plain text
17282 #: build/C/man2/unlink.2:107
17283 msgid ""
17284 "If the pathname given in I<pathname> is relative, then it is interpreted "
17285 "relative to the directory referred to by the file descriptor I<dirfd> "
17286 "(rather than relative to the current working directory of the calling "
17287 "process, as is done by B<unlink>()  and B<rmdir>(2)  for a relative "
17288 "pathname)."
17289 msgstr ""
17290 "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
17291 "リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
17292 "(B<unlink>() や B<rmdir>(2) に相対パス名を渡した場合のように、呼び出したプロ"
17293 "セスのカレントワーキングディレクトリに対する相対パスではない)。"
17294
17295 #. type: Plain text
17296 #: build/C/man2/unlink.2:121
17297 msgid ""
17298 "If the pathname given in I<pathname> is relative and I<dirfd> is the special "
17299 "value B<AT_FDCWD>, then I<pathname> is interpreted relative to the current "
17300 "working directory of the calling process (like B<unlink>()  and B<rmdir>(2))."
17301 msgstr ""
17302 "I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
17303 "の場合、 (B<unlink>() や B<rmdir>(2) と同様に) I<pathname> は呼び出したプロセ"
17304 "スのカレントワーキングディレクトリに対する相対パスと解釈される。"
17305
17306 #. type: Plain text
17307 #: build/C/man2/unlink.2:127
17308 msgid ""
17309 "If the pathname given in I<pathname> is absolute, then I<dirfd> is ignored."
17310 msgstr ""
17311 "I<pathname> で指定されたパス名が絶対パスの場合、 I<dirfd> は無視される。"
17312
17313 #. type: Plain text
17314 #: build/C/man2/unlink.2:133
17315 msgid ""
17316 "I<flags> is a bit mask that can either be specified as 0, or by ORing "
17317 "together flag values that control the operation of B<unlinkat>().  Currently "
17318 "only one such flag is defined:"
17319 msgstr ""
17320 "I<flags> はビットマスクで、0 もしくは B<unlinkat>() の動作を制御するフラグ値"
17321 "を論理和の形で指定することができる。現在のところ、定義されているフラグはひと"
17322 "つだけである。"
17323
17324 #. type: TP
17325 #: build/C/man2/unlink.2:133
17326 #, no-wrap
17327 msgid "B<AT_REMOVEDIR>"
17328 msgstr "B<AT_REMOVEDIR>"
17329
17330 #. type: Plain text
17331 #: build/C/man2/unlink.2:148
17332 msgid ""
17333 "By default, B<unlinkat>()  performs the equivalent of B<unlink>()  on "
17334 "I<pathname>.  If the B<AT_REMOVEDIR> flag is specified, then performs the "
17335 "equivalent of B<rmdir>(2)  on I<pathname>."
17336 msgstr ""
17337 "デフォルトでは、 B<unlinkat>() は I<pathname> に対して B<unlink>() と等価な動"
17338 "作をする。 B<AT_REMOVEDIR> フラグが指定された場合、 I<pathname> に対して "
17339 "B<rmdir>(2) と等価な動作をする。"
17340
17341 #. type: Plain text
17342 #: build/C/man2/unlink.2:153
17343 msgid "See B<openat>(2)  for an explanation of the need for B<unlinkat>()."
17344 msgstr "B<unlinkat>() の必要性についての説明については B<openat>(2) を参照。"
17345
17346 #. type: Plain text
17347 #: build/C/man2/unlink.2:169
17348 msgid ""
17349 "Write access to the directory containing I<pathname> is not allowed for the "
17350 "process's effective UID, or one of the directories in I<pathname> did not "
17351 "allow search permission.  (See also B<path_resolution>(7).)"
17352 msgstr ""
17353 "I<pathname> を含んでいるディレクトリの書き込み許可がプロセスの実効 "
17354 "(effective)  ユーザー ID に与えられていないか、 I<pathname> の中のディレクト"
17355 "リのどれかに検索許可が与えられていない (B<path_resolution>(7)  も参照するこ"
17356 "と)。"
17357
17358 #. type: Plain text
17359 #: build/C/man2/unlink.2:178
17360 msgid ""
17361 "The file I<pathname> cannot be unlinked because it is being used by the "
17362 "system or another process; for example, it is a mount point or the NFS "
17363 "client software created it to represent an active but otherwise nameless "
17364 "inode (\"NFS silly renamed\")."
17365 msgstr ""
17366 "システムか別のプロセスがそのファイルを使用中のため、\n"
17367 "ファイル I<pathname> を unlink できない。\n"
17368 "例えば、そのファイルがマウントポイントの場合や、\n"
17369 "NFS クライアントソフトウェアがそのファイルがアクティブであるが\n"
17370 "名前なし inode (nameless inode) であることを示すために作成した\n"
17371 "場合 (\"NFS silly renamed\") などがある。"
17372
17373 #. type: Plain text
17374 #: build/C/man2/unlink.2:190
17375 msgid ""
17376 "I<pathname> refers to a directory.  (This is the non-POSIX value returned by "
17377 "Linux since 2.1.132.)"
17378 msgstr ""
17379 "I<pathname> がディレクトリを参照している。 (これは POSIX で規定されていない値"
17380 "で、Linux 2.1.132 以降で返される。)"
17381
17382 #. type: Plain text
17383 #: build/C/man2/unlink.2:194
17384 msgid "Too many symbolic links were encountered in translating I<pathname>."
17385 msgstr "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
17386
17387 #. type: Plain text
17388 #: build/C/man2/unlink.2:204
17389 msgid ""
17390 "A component in I<pathname> does not exist or is a dangling symbolic link, or "
17391 "I<pathname> is empty."
17392 msgstr ""
17393 "I<pathname> に対応するものが存在しないか、壊れたシンボリックリンクであるか、 "
17394 "I<pathname> が空である。"
17395
17396 #. type: Plain text
17397 #: build/C/man2/unlink.2:212
17398 msgid ""
17399 "A component used as a directory in I<pathname> is not, in fact, a directory."
17400 msgstr "I<pathname> のディレクトリ部分が、実際には、ディレクトリでない。"
17401
17402 #. type: Plain text
17403 #: build/C/man2/unlink.2:221
17404 msgid ""
17405 "The system does not allow unlinking of directories, or unlinking of "
17406 "directories requires privileges that the calling process doesn't have.  "
17407 "(This is the POSIX prescribed error return; as noted above, Linux returns "
17408 "B<EISDIR> for this case.)"
17409 msgstr ""
17410 "システムがディレクトリに対する unlink 操作を許可していない。 またはディレクト"
17411 "リに対する unlink 操作のために必要な特権を 呼び出し元のプロセスが持っていな"
17412 "い。 (これは POSIX で規定されているエラーの返し方である。 上述の通り、この場"
17413 "合には Linux は B<EISDIR> を返す。)"
17414
17415 #. type: TP
17416 #: build/C/man2/unlink.2:221
17417 #, no-wrap
17418 msgid "B<EPERM> (Linux only)"
17419 msgstr "B<EPERM> (Linux のみ)"
17420
17421 #. type: Plain text
17422 #: build/C/man2/unlink.2:224
17423 msgid "The filesystem does not allow unlinking of files."
17424 msgstr "ファイルシステムがファイルに対する unlink 操作を許していない。"
17425
17426 #. type: Plain text
17427 #: build/C/man2/unlink.2:235
17428 msgid ""
17429 "The directory containing I<pathname> has the sticky bit (B<S_ISVTX>)  set "
17430 "and the process's effective UID is neither the UID of the file to be deleted "
17431 "nor that of the directory containing it, and the process is not privileged "
17432 "(Linux: does not have the B<CAP_FOWNER> capability)."
17433 msgstr ""
17434 "I<pathname> を含んでいるディレクトリにスティッキービット (sticky-bit)  "
17435 "(B<S_ISVTX>)  が設定されていて、プロセスの実効ユーザー ID が削除しようとする"
17436 "ファイルの UID でもそれを含んでいるディレクトリのものでもなく、 かつプロセス"
17437 "に特権がない (Linux では B<CAP_FOWNER> ケーパビリティ (capability) がない)。"
17438
17439 #. type: Plain text
17440 #: build/C/man2/unlink.2:239
17441 msgid "I<pathname> refers to a file on a read-only filesystem."
17442 msgstr "I<pathname> が読み込み専用のファイルシステムのファイルを参照している。"
17443
17444 #. type: Plain text
17445 #: build/C/man2/unlink.2:248
17446 msgid ""
17447 "The same errors that occur for B<unlink>()  and B<rmdir>(2)  can also occur "
17448 "for B<unlinkat>().  The following additional errors can occur for "
17449 "B<unlinkat>():"
17450 msgstr ""
17451 "B<unlink>() と B<rmdir>(2) で発生するのと同じエラーが B<unlinkat>() でも起こ"
17452 "る。 B<unlinkat>() では以下のエラーも発生する。"
17453
17454 #. type: Plain text
17455 #: build/C/man2/unlink.2:263
17456 msgid ""
17457 "I<pathname> refers to a directory, and B<AT_REMOVEDIR> was not specified in "
17458 "I<flags>."
17459 msgstr ""
17460 "I<pathname> がディレクトリを参照していて、 I<flags> に B<AT_REMOVEDIR> がされ"
17461 "ていなかった。"
17462
17463 #. type: Plain text
17464 #: build/C/man2/unlink.2:273
17465 msgid ""
17466 "B<unlinkat>()  was added to Linux in kernel 2.6.16; library support was "
17467 "added to glibc in version 2.4."
17468 msgstr ""
17469 "B<unlinkat>()  はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
17470 "ポートはバージョン 2.4 で glibc に追加された。"
17471
17472 #.  SVr4 documents additional error
17473 #.  conditions EINTR, EMULTIHOP, ETXTBSY, ENOLINK.
17474 #. type: Plain text
17475 #: build/C/man2/unlink.2:278
17476 msgid "B<unlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
17477 msgstr "B<unlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
17478
17479 #. type: Plain text
17480 #: build/C/man2/unlink.2:281
17481 msgid "B<unlinkat>(): POSIX.1-2008."
17482 msgstr "B<unlinkat>(): POSIX.1-2008."
17483
17484 #. type: Plain text
17485 #: build/C/man2/unlink.2:297
17486 msgid ""
17487 "On older kernels where B<unlinkat>()  is unavailable, the glibc wrapper "
17488 "function falls back to the use of B<unlink>(2)  or B<rmdir>(2).  When "
17489 "I<pathname> is a relative pathname, glibc constructs a pathname based on the "
17490 "symbolic link in I</proc/self/fd> that corresponds to the I<dirfd> argument."
17491 msgstr ""
17492 "B<unlinkat>() が利用できない古いカーネルでは、 glibc ラッパー関数は "
17493 "B<unlink>(2) と B<rmdir>(2) を使用するモードにフォールバックする。 "
17494 "I<pathname> が相対パスの場合、 glibc は I<dirfd> 引き数に対応する I</proc/"
17495 "self/fd> のシンボリックリンクに基づいてパス名を構成する。"
17496
17497 #. type: Plain text
17498 #: build/C/man2/unlink.2:312
17499 msgid ""
17500 "B<rm>(1), B<chmod>(2), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
17501 "B<rmdir>(2), B<mkfifo>(3), B<remove>(3), B<path_resolution>(7), B<symlink>(7)"
17502 msgstr ""
17503 "B<rm>(1), B<chmod>(2), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
17504 "B<rmdir>(2), B<mkfifo>(3), B<remove>(3), B<path_resolution>(7), B<symlink>(7)"
17505
17506 #. type: TH
17507 #: build/C/man3/unlocked_stdio.3:25
17508 #, no-wrap
17509 msgid "UNLOCKED_STDIO"
17510 msgstr "UNLOCKED_STDIO"
17511
17512 #. type: TH
17513 #: build/C/man3/unlocked_stdio.3:25
17514 #, no-wrap
17515 msgid "2008-08-29"
17516 msgstr "2008-08-29"
17517
17518 #. type: Plain text
17519 #: build/C/man3/unlocked_stdio.3:29
17520 msgid ""
17521 "getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - "
17522 "nonlocking stdio functions"
17523 msgstr ""
17524 "getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - ロックを行"
17525 "わずに標準入出力を行う関数群"
17526
17527 #. type: Plain text
17528 #: build/C/man3/unlocked_stdio.3:37
17529 #, no-wrap
17530 msgid ""
17531 "B<int getc_unlocked(FILE *>I<stream>B<);>\n"
17532 "B<int getchar_unlocked(void);>\n"
17533 "B<int putc_unlocked(int >I<c>B<, FILE *>I<stream>B<);>\n"
17534 "B<int putchar_unlocked(int >I<c>B<);>\n"
17535 msgstr ""
17536 "B<int getc_unlocked(FILE *>I<stream>B<);>\n"
17537 "B<int getchar_unlocked(void);>\n"
17538 "B<int putc_unlocked(int >I<c>B<, FILE *>I<stream>B<);>\n"
17539 "B<int putchar_unlocked(int >I<c>B<);>\n"
17540
17541 #. type: Plain text
17542 #: build/C/man3/unlocked_stdio.3:49
17543 #, no-wrap
17544 msgid ""
17545 "B<void clearerr_unlocked(FILE *>I<stream>B<);>\n"
17546 "B<int feof_unlocked(FILE *>I<stream>B<);>\n"
17547 "B<int ferror_unlocked(FILE *>I<stream>B<);>\n"
17548 "B<int fileno_unlocked(FILE *>I<stream>B<);>\n"
17549 "B<int fflush_unlocked(FILE *>I<stream>B<);>\n"
17550 "B<int fgetc_unlocked(FILE *>I<stream>B<);>\n"
17551 "B<int fputc_unlocked(int >I<c>B<, FILE *>I<stream>B<);>\n"
17552 "B<size_t fread_unlocked(void *>I<ptr>B<, size_t >I<size>B<, size_t >I<n>B<,>\n"
17553 "B<                      FILE *>I<stream>B<);>\n"
17554 "B<size_t fwrite_unlocked(const void *>I<ptr>B<, size_t >I<size>B<, size_t >I<n>B<,>\n"
17555 "B<                      FILE *>I<stream>B<);>\n"
17556 msgstr ""
17557 "B<void clearerr_unlocked(FILE *>I<stream>B<);>\n"
17558 "B<int feof_unlocked(FILE *>I<stream>B<);>\n"
17559 "B<int ferror_unlocked(FILE *>I<stream>B<);>\n"
17560 "B<int fileno_unlocked(FILE *>I<stream>B<);>\n"
17561 "B<int fflush_unlocked(FILE *>I<stream>B<);>\n"
17562 "B<int fgetc_unlocked(FILE *>I<stream>B<);>\n"
17563 "B<int fputc_unlocked(int >I<c>B<, FILE *>I<stream>B<);>\n"
17564 "B<size_t fread_unlocked(void *>I<ptr>B<, size_t >I<size>B<, size_t >I<n>B<,>\n"
17565 "B<                      FILE *>I<stream>B<);>\n"
17566 "B<size_t fwrite_unlocked(const void *>I<ptr>B<, size_t >I<size>B<, size_t >I<n>B<,>\n"
17567 "B<                      FILE *>I<stream>B<);>\n"
17568
17569 #. type: Plain text
17570 #: build/C/man3/unlocked_stdio.3:52
17571 #, no-wrap
17572 msgid ""
17573 "B<char *fgets_unlocked(char *>I<s>B<, int >I<n>B<, FILE *>I<stream>B<);>\n"
17574 "B<int fputs_unlocked(const char *>I<s>B<, FILE *>I<stream>B<);>\n"
17575 msgstr ""
17576 "B<char *fgets_unlocked(char *>I<s>B<, int >I<n>B<, FILE *>I<stream>B<);>\n"
17577 "B<int fputs_unlocked(const char *>I<s>B<, FILE *>I<stream>B<);>\n"
17578
17579 #. type: Plain text
17580 #: build/C/man3/unlocked_stdio.3:63
17581 #, no-wrap
17582 msgid ""
17583 "B<wint_t getwc_unlocked(FILE *>I<stream>B<);>\n"
17584 "B<wint_t getwchar_unlocked(void);>\n"
17585 "B<wint_t fgetwc_unlocked(FILE *>I<stream>B<);>\n"
17586 "B<wint_t fputwc_unlocked(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
17587 "B<wint_t putwc_unlocked(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
17588 "B<wint_t putwchar_unlocked(wchar_t >I<wc>B<);>\n"
17589 "B<wchar_t *fgetws_unlocked(wchar_t *>I<ws>B<, int >I<n>B<, FILE *>I<stream>B<);>\n"
17590 "B<int fputws_unlocked(const wchar_t *>I<ws>B<, FILE *>I<stream>B<);>\n"
17591 msgstr ""
17592 "B<wint_t getwc_unlocked(FILE *>I<stream>B<);>\n"
17593 "B<wint_t getwchar_unlocked(void);>\n"
17594 "B<wint_t fgetwc_unlocked(FILE *>I<stream>B<);>\n"
17595 "B<wint_t fputwc_unlocked(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
17596 "B<wint_t putwc_unlocked(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
17597 "B<wint_t putwchar_unlocked(wchar_t >I<wc>B<);>\n"
17598 "B<wchar_t *fgetws_unlocked(wchar_t *>I<ws>B<, int >I<n>B<, FILE *>I<stream>B<);>\n"
17599 "B<int fputws_unlocked(const wchar_t *>I<ws>B<, FILE *>I<stream>B<);>\n"
17600
17601 #. type: Plain text
17602 #: build/C/man3/unlocked_stdio.3:75
17603 msgid ""
17604 "B<getc_unlocked>(), B<getchar_unlocked>(), B<putc_unlocked>(), "
17605 "B<putchar_unlocked>():"
17606 msgstr ""
17607 "B<getc_unlocked>(), B<getchar_unlocked>(), B<putc_unlocked>(), "
17608 "B<putchar_unlocked>():"
17609
17610 #. type: Plain text
17611 #: build/C/man3/unlocked_stdio.3:78
17612 msgid ""
17613 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE || "
17614 "_BSD_SOURCE || _SVID_SOURCE"
17615 msgstr ""
17616 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE || "
17617 "_BSD_SOURCE || _SVID_SOURCE"
17618
17619 #. type: Plain text
17620 #: build/C/man3/unlocked_stdio.3:89
17621 msgid ""
17622 "B<clearerr_unlocked>(), B<feof_unlocked>(), B<ferror_unlocked>(), "
17623 "B<fileno_unlocked>(), B<fflush_unlocked>(), B<fgetc_unlocked>(), "
17624 "B<fputc_unlocked>(), B<fread_unlocked>(), B<fwrite_unlocked>():"
17625 msgstr ""
17626 "B<clearerr_unlocked>(), B<feof_unlocked>(), B<ferror_unlocked>(), "
17627 "B<fileno_unlocked>(), B<fflush_unlocked>(), B<fgetc_unlocked>(), "
17628 "B<fputc_unlocked>(), B<fread_unlocked>(), B<fwrite_unlocked>():"
17629
17630 #. type: Plain text
17631 #: build/C/man3/unlocked_stdio.3:91
17632 msgid "_BSD_SOURCE || _SVID_SOURCE"
17633 msgstr "_BSD_SOURCE || _SVID_SOURCE"
17634
17635 #. type: Plain text
17636 #: build/C/man3/unlocked_stdio.3:102
17637 msgid ""
17638 "B<fgets_unlocked>(), B<fputs_unlocked>(), B<getwc_unlocked>(), "
17639 "B<getwchar_unlocked>(), B<fgetwc_unlocked>(), B<fputwc_unlocked>(), "
17640 "B<putwchar_unlocked>(), B<fgetws_unlocked>(), B<fputws_unlocked>():"
17641 msgstr ""
17642 "B<fgets_unlocked>(), B<fputs_unlocked>(), B<getwc_unlocked>(), "
17643 "B<getwchar_unlocked>(), B<fgetwc_unlocked>(), B<fputwc_unlocked>(), "
17644 "B<putwchar_unlocked>(), B<fgetws_unlocked>(), B<fputws_unlocked>():"
17645
17646 #. type: Plain text
17647 #: build/C/man3/unlocked_stdio.3:113
17648 msgid ""
17649 "Each of these functions has the same behavior as its counterpart without the "
17650 "\"_unlocked\" suffix, except that they do not use locking (they do not set "
17651 "locks themselves, and do not test for the presence of locks set by others) "
17652 "and hence are thread-unsafe.  See B<flockfile>(3)."
17653 msgstr ""
17654 "これらの関数は、末尾に \"_unlocked\" がついていない関数と同じ動作をするが、 "
17655 "ファイルのロックを使用しない点が異なる。(これらの関数自身はファイルのロック "
17656 "をセットせず、他の関数によってロックがセットされているかどうかのチェックも 行"
17657 "わない) それゆえ、スレッド(thread)で安全に使用することができない。 "
17658 "B<flockfile>(3)  を参照のこと。"
17659
17660 #. type: Plain text
17661 #: build/C/man3/unlocked_stdio.3:120
17662 msgid ""
17663 "The four functions B<getc_unlocked>(), B<getchar_unlocked>(), "
17664 "B<putc_unlocked>(), B<putchar_unlocked>()  are in POSIX.1-2001."
17665 msgstr ""
17666 "B<getc_unlocked>(), B<getchar_unlocked>(), B<putc_unlocked>(), "
17667 "B<putchar_unlocked>()  の 4 つの関数は POSIX.1-2001 に規定されている。"
17668
17669 #.  E.g., in HP-UX 10.0. In HP-UX 10.30 they are called obsolescent, and
17670 #.  moved to a compatibility library.
17671 #.  Available in HP-UX 10.0: clearerr_unlocked, fclose_unlocked,
17672 #.  feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked,
17673 #.  fgetwc_unlocked, fgetws_unlocked, fileno_unlocked, fputs_unlocked,
17674 #.  fputwc_unlocked, fputws_unlocked, fread_unlocked, fseek_unlocked,
17675 #.  ftell_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
17676 #.  getw_unlocked, getwc_unlocked, getwchar_unlocked, putc_unlocked,
17677 #.  putchar_unlocked, puts_unlocked, putws_unlocked, putw_unlocked,
17678 #.  putwc_unlocked, putwchar_unlocked, rewind_unlocked, setvbuf_unlocked,
17679 #.  ungetc_unlocked, ungetwc_unlocked.
17680 #. type: Plain text
17681 #: build/C/man3/unlocked_stdio.3:136
17682 msgid ""
17683 "The nonstandard B<*_unlocked>()  variants occur on a few UNIX systems, and "
17684 "are available in recent glibc.  They should probably not be used."
17685 msgstr ""
17686 "非標準の B<*_unlocked>()  の仲間は 2、3 の UNIX システムで定義されており、 最"
17687 "近の glibc では使用可能であるが、 これらの関数は使わない方がよいだろう。"
17688
17689 #. type: Plain text
17690 #: build/C/man3/unlocked_stdio.3:139
17691 msgid "B<flockfile>(3), B<stdio>(3)"
17692 msgstr "B<flockfile>(3), B<stdio>(3)"
17693
17694 #. type: TH
17695 #: build/C/man3/wprintf.3:16
17696 #, no-wrap
17697 msgid "WPRINTF"
17698 msgstr "WPRINTF"
17699
17700 #. type: TH
17701 #: build/C/man3/wprintf.3:16
17702 #, no-wrap
17703 msgid "2014-03-19"
17704 msgstr "2014-03-19"
17705
17706 #. type: Plain text
17707 #: build/C/man3/wprintf.3:20
17708 msgid ""
17709 "wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - formatted wide-"
17710 "character output conversion"
17711 msgstr ""
17712 "wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - ワイド文字を "
17713 "フォーマットして出力する"
17714
17715 #. type: Plain text
17716 #: build/C/man3/wprintf.3:24
17717 #, no-wrap
17718 msgid ""
17719 "B<#include E<lt>stdio.hE<gt>>\n"
17720 "B<#include E<lt>wchar.hE<gt>>\n"
17721 msgstr ""
17722 "B<#include E<lt>stdio.hE<gt>>\n"
17723 "B<#include E<lt>wchar.hE<gt>>\n"
17724
17725 #. type: Plain text
17726 #: build/C/man3/wprintf.3:29
17727 #, no-wrap
17728 msgid ""
17729 "B<int wprintf(const wchar_t *>I<format>B<, ...);>\n"
17730 "B<int fwprintf(FILE *>I<stream>B<, const wchar_t *>I<format>B<, ...);>\n"
17731 "B<int swprintf(wchar_t *>I<wcs>B<, size_t >I<maxlen>B<,>\n"
17732 "B<             const wchar_t *>I<format>B<, ...);>\n"
17733 msgstr ""
17734 "B<int wprintf(const wchar_t *>I<format>B<, ...);>\n"
17735 "B<int fwprintf(FILE *>I<stream>B<, const wchar_t *>I<format>B<, ...);>\n"
17736 "B<int swprintf(wchar_t *>I<wcs>B<, size_t >I<maxlen>B<,>\n"
17737 "B<             const wchar_t *>I<format>B<, ...);>\n"
17738
17739 #. type: Plain text
17740 #: build/C/man3/wprintf.3:34
17741 #, no-wrap
17742 msgid ""
17743 "B<int vwprintf(const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17744 "B<int vfwprintf(FILE *>I<stream>B<, const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17745 "B<int vswprintf(wchar_t *>I<wcs>B<, size_t >I<maxlen>B<,>\n"
17746 "B<              const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17747 msgstr ""
17748 "B<int vwprintf(const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17749 "B<int vfwprintf(FILE *>I<stream>B<, const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17750 "B<int vswprintf(wchar_t *>I<wcs>B<, size_t >I<maxlen>B<,>\n"
17751 "B<              const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17752
17753 #.  .BR wprintf (),
17754 #.  .BR fwprintf (),
17755 #.  .BR swprintf (),
17756 #.  .BR vwprintf (),
17757 #.  .BR vfwprintf (),
17758 #.  .BR vswprintf ():
17759 #. type: Plain text
17760 #: build/C/man3/wprintf.3:51
17761 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE ||"
17762 msgstr "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE ||"
17763
17764 #. type: Plain text
17765 #: build/C/man3/wprintf.3:53
17766 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
17767 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
17768
17769 #. type: Plain text
17770 #: build/C/man3/wprintf.3:56
17771 msgid "or I<cc\\ -std=c99>"
17772 msgstr "or I<cc\\ -std=c99>"
17773
17774 #. type: Plain text
17775 #: build/C/man3/wprintf.3:67
17776 msgid ""
17777 "The B<wprintf>()  family of functions is the wide-character equivalent of "
17778 "the B<printf>(3)  family of functions.  It performs formatted output of wide "
17779 "characters."
17780 msgstr ""
17781 "B<wprintf>()  ファミリーの関数は B<printf>(3)  ファミリーの関数の ワイド文字"
17782 "版である。これらはワイド文字をフォーマットして出力する。"
17783
17784 #. type: Plain text
17785 #: build/C/man3/wprintf.3:79
17786 msgid ""
17787 "The B<wprintf>()  and B<vwprintf>()  functions perform wide-character output "
17788 "to I<stdout>.  I<stdout> must not be byte oriented; see B<fwide>(3)  for "
17789 "more information."
17790 msgstr ""
17791 "B<wprintf>()  と B<vwprintf>()  関数は I<stdout> に出力を行なう。 I<stdout> "
17792 "がバイト単位入出力であってはいけない。より詳しい説明は B<fwide>(3)  を参照す"
17793 "ること。"
17794
17795 #. type: Plain text
17796 #: build/C/man3/wprintf.3:91
17797 msgid ""
17798 "The B<fwprintf>()  and B<vfwprintf>()  functions perform wide-character "
17799 "output to I<stream>.  I<stream> must not be byte oriented; see B<fwide>(3)  "
17800 "for more information."
17801 msgstr ""
17802 "B<fwprintf>()  と B<vfwprintf>()  関数は I<stream> にワイド文字出力 を行な"
17803 "う。 I<stream> がバイト単位入出力であってはいけない。 より詳しい説明は "
17804 "B<fwide>(3)  を参照すること。"
17805
17806 #. type: Plain text
17807 #: build/C/man3/wprintf.3:105
17808 msgid ""
17809 "The B<swprintf>()  and B<vswprintf>()  functions perform wide-character "
17810 "output to an array of wide characters.  The programmer must ensure that "
17811 "there is room for at least I<maxlen> wide characters at I<wcs>."
17812 msgstr ""
17813 "B<swprintf>()  と B<vswprintf>()  関数はワイド文字の配列に ワイド文字出力を行"
17814 "なう。プログラマーは I<wcs> に最低でも I<maxlen> 文字のワイド文字を出力できる"
17815 "空きがあることを保証しなければ ならない。"
17816
17817 #. type: Plain text
17818 #: build/C/man3/wprintf.3:116
17819 msgid ""
17820 "These functions are like the B<printf>(3), B<vprintf>(3), B<fprintf>(3), "
17821 "B<vfprintf>(3), B<sprintf>(3), B<vsprintf>(3)  functions except for the "
17822 "following differences:"
17823 msgstr ""
17824 "これらの関数は B<printf>(3), B<vprintf>(3), B<fprintf>(3), B<vfprintf>(3), "
17825 "B<sprintf>(3), B<vsprintf>(3)  関数に似ているが以下の 点で異っている。"
17826
17827 #. type: TP
17828 #: build/C/man3/wprintf.3:116 build/C/man3/wprintf.3:121
17829 #: build/C/man3/wprintf.3:124
17830 #, no-wrap
17831 msgid "B<\\(bu>"
17832 msgstr "B<\\(bu>"
17833
17834 #. type: Plain text
17835 #: build/C/man3/wprintf.3:121
17836 msgid "The I<format> string is a wide-character string."
17837 msgstr "I<format> がワイド文字列で与えられる。"
17838
17839 #. type: Plain text
17840 #: build/C/man3/wprintf.3:124
17841 msgid "The output consists of wide characters, not bytes."
17842 msgstr "出力がバイトではなくワイド文字で構成される。"
17843
17844 #. type: Plain text
17845 #: build/C/man3/wprintf.3:143
17846 msgid ""
17847 "B<swprintf>()  and B<vswprintf>()  take a I<maxlen> argument, B<sprintf>(3)  "
17848 "and B<vsprintf>(3)  do not.  (B<snprintf>(3)  and B<vsnprintf>(3)  take a "
17849 "I<maxlen> argument, but these functions do not return -1 upon buffer "
17850 "overflow on Linux.)"
17851 msgstr ""
17852 "B<swprintf>()  と B<vswprintf>()  は I<maxlen> 引き数を取るが、 "
17853 "B<sprintf>()  と B<vsprintf>()  は取らない (B<snprintf>()  と "
17854 "B<vsnprintf>()  は I<maxlen> 引き数を取るが これらの関数が Linux では、バッ"
17855 "ファーが溢れた場合でも -1 を返さない)。"
17856
17857 #. type: Plain text
17858 #: build/C/man3/wprintf.3:149
17859 msgid "The treatment of the conversion characters B<c> and B<s> is different:"
17860 msgstr "B<c> と B<s> 変換文字の扱いが異っている:"
17861
17862 #. type: Plain text
17863 #: build/C/man3/wprintf.3:163
17864 msgid ""
17865 "If no B<l> modifier is present, the I<int> argument is converted to a wide "
17866 "character by a call to the B<btowc>(3)  function, and the resulting wide "
17867 "character is written.  If an B<l> modifier is present, the I<wint_t> (wide "
17868 "character) argument is written."
17869 msgstr ""
17870 "もし B<l> 修飾子が存在しない場合は I<int> 引き数は B<btowc>(3)  関数によって"
17871 "ワイド文字に変換される。そして結果のワイド文字が出力される。 B<l> 修飾子が存"
17872 "在する場合は I<wint_t> (ワイド文字)引き数が出力される。"
17873
17874 #. type: Plain text
17875 #: build/C/man3/wprintf.3:203
17876 msgid ""
17877 "If no B<l> modifier is present: The I<const\\ char\\ *> argument is expected "
17878 "to be a pointer to an array of character type (pointer to a string) "
17879 "containing a multibyte character sequence beginning in the initial shift "
17880 "state.  Characters from the array are converted to wide characters (each by "
17881 "a call to the B<mbrtowc>(3)  function with a conversion state starting in "
17882 "the initial state before the first byte).  The resulting wide characters are "
17883 "written up to (but not including) the terminating null wide character (L\\(aq"
17884 "\\e0\\(aq).  If a precision is specified, no more wide characters than the "
17885 "number specified are written.  Note that the precision determines the number "
17886 "of I<wide characters> written, not the number of I<bytes> or I<screen "
17887 "positions>.  The array must contain a terminating null byte (\\(aq"
17888 "\\e0\\(aq), unless a precision is given and it is so small that the number "
17889 "of converted wide characters reaches it before the end of the array is "
17890 "reached.  If an B<l> modifier is present: The I<const\\ wchar_t\\ *> "
17891 "argument is expected to be a pointer to an array of wide characters.  Wide "
17892 "characters from the array are written up to (but not including) a "
17893 "terminating null wide character.  If a precision is specified, no more than "
17894 "the number specified are written.  The array must contain a terminating null "
17895 "wide character, unless a precision is given and it is smaller than or equal "
17896 "to the number of wide characters in the array."
17897 msgstr ""
17898 "もし B<l> 修飾子が存在しない場合、 I<const\\ char\\ *> 引き数は初期状態より始"
17899 "まるマルチバイト文字列を含んだ char 型の配列へのポインタ(文字列へのポインタ)"
17900 "とみなされる。 配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれ"
17901 "の文字を B<mbrtowc>(3)  関数によって)ワイド文字へと変換される。結果のワイド文"
17902 "字は終端の ナルワイド文字 (L\\(aq\\e0\\(aq) の手前までが書き込まれる。精度"
17903 "(precision)が指定された 場合、指定された数字を超えるワイド文字は書き込まれな"
17904 "い。精度は 書き込まれる I<バイト> 数や I<画面上の位置> ではなく I<ワイド文字"
17905 "> の数を指定することに注意すること。 精度がない場合には配列の終端にナルバイ"
17906 "ト (\\(aq\\e0\\(aq) を含む必要がある。 精度を指定する場合には、配列の最後に到"
17907 "着する前に変換されたワイド文字の 数がそれに到達するよう、精度は十分に小さな数"
17908 "でなければならない。 もし B<l> 修飾子が存在する場合、 I<const\\ wchar_t\\ *> "
17909 "引き数はワイド文字の配列へのポインタとみなされる。 配列のワイド文字列は終端の"
17910 "ナルワイド文字の手間まで出力される。 もし精度が指定された場合には指定された精"
17911 "度以上の文字は出力されない。 精度を指定しない場合には終端のナルワイド文字を含"
17912 "む必要がある。 精度を指定する場合にはそれはワイド文字の配列の大きさよりも小さ"
17913 "くな ければならない。"
17914
17915 #. type: Plain text
17916 #: build/C/man3/wprintf.3:211
17917 msgid ""
17918 "The functions return the number of wide characters written, excluding the "
17919 "terminating null wide character in case of the functions B<swprintf>()  and "
17920 "B<vswprintf>().  They return -1 when an error occurs."
17921 msgstr ""
17922 "これらの関数は書き込まれたワイド文字の文字数を返す。 B<swprintf>()  と "
17923 "B<vswprintf>()  関数の場合は 終端のナルワイド文字は含まない。エラーが起こった"
17924 "場合は -1 を返す。"
17925
17926 #. type: Plain text
17927 #: build/C/man3/wprintf.3:213
17928 msgid "C99."
17929 msgstr "C99."
17930
17931 #. type: Plain text
17932 #: build/C/man3/wprintf.3:221
17933 msgid ""
17934 "The behavior of B<wprintf>()  et al. depends on the B<LC_CTYPE> category of "
17935 "the current locale."
17936 msgstr ""
17937 "B<wprintf>()  等の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存している。"
17938
17939 #. type: Plain text
17940 #: build/C/man3/wprintf.3:251
17941 msgid ""
17942 "If the I<format> string contains non-ASCII wide characters, the program will "
17943 "work correctly only if the B<LC_CTYPE> category of the current locale at run "
17944 "time is the same as the B<LC_CTYPE> category of the current locale at "
17945 "compile time.  This is because the I<wchar_t> representation is platform- "
17946 "and locale-dependent.  (The glibc represents wide characters using their "
17947 "Unicode (ISO-10646) code point, but other platforms don't do this.  Also, "
17948 "the use of C99 universal character names of the form \\eunnnn does not solve "
17949 "this problem.)  Therefore, in internationalized programs, the I<format> "
17950 "string should consist of ASCII wide characters only, or should be "
17951 "constructed at run time in an internationalized way (e.g., using "
17952 "B<gettext>(3)  or B<iconv>(3), followed by B<mbstowcs>(3))."
17953 msgstr ""
17954 "I<format> 文字列が ASCII 以外のワイド文字を含んでいる場合、 実行時のロケール"
17955 "の B<LC_CTYPE> カテゴリがコンパイル時の B<LC_CTYPE> カテゴリと 一致している場"
17956 "合にのみプログラムは正常に動作する。これは I<wchar_t> の表現がロケールやプ"
17957 "ラットホームに依存していることに原因がある。 (glibc ではワイド文字として "
17958 "Unicode (ISO-10646) のコードポイントを 使用している。他のプラットホームではそ"
17959 "うではない。同様に ISO C99 の \\eunnnn 形式の汎用文字名称はこの問題を解決しな"
17960 "い。)  このため国際化されたプログラムでは I<format> 文字列を ASCII ワイド 文"
17961 "字のみにするか、実行時に国際化された方法で構成する必要がある (例えば "
17962 "B<gettext>()  と B<iconv>()  や B<mbstowcs>()  を組み合わて使用する)。"
17963
17964 #.  .BR wscanf (3)
17965 #. type: Plain text
17966 #: build/C/man3/wprintf.3:258
17967 msgid "B<fprintf>(3), B<fputwc>(3), B<fwide>(3), B<printf>(3), B<snprintf>(3)"
17968 msgstr "B<fprintf>(3), B<fputwc>(3), B<fwide>(3), B<printf>(3), B<snprintf>(3)"
17969
17970 #. type: TH
17971 #: build/C/man2/write.2:39
17972 #, no-wrap
17973 msgid "WRITE"
17974 msgstr "WRITE"
17975
17976 #. type: Plain text
17977 #: build/C/man2/write.2:42
17978 msgid "write - write to a file descriptor"
17979 msgstr "write - ファイルディスクリプタ (file descriptor) に書き込む"
17980
17981 #. type: Plain text
17982 #: build/C/man2/write.2:46
17983 msgid ""
17984 "B<ssize_t write(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<);>"
17985 msgstr ""
17986 "B<ssize_t write(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<);>"
17987
17988 #. type: Plain text
17989 #: build/C/man2/write.2:54
17990 msgid ""
17991 "B<write>()  writes up to I<count> bytes from the buffer pointed I<buf> to "
17992 "the file referred to by the file descriptor I<fd>."
17993 msgstr ""
17994 "B<write>()  は、 I<buf> が指すバッファから、ファイルディスクリプタ I<fd> が参"
17995 "照するファイルへ、最大 I<count> バイトを書き込む。"
17996
17997 #. type: Plain text
17998 #: build/C/man2/write.2:68
17999 msgid ""
18000 "The number of bytes written may be less than I<count> if, for example, there "
18001 "is insufficient space on the underlying physical medium, or the "
18002 "B<RLIMIT_FSIZE> resource limit is encountered (see B<setrlimit>(2)), or the "
18003 "call was interrupted by a signal handler after having written less than "
18004 "I<count> bytes.  (See also B<pipe>(7).)"
18005 msgstr ""
18006 "書き込まれるバイト数は I<count> よりも小さくなることがある。 例えば、書き込み"
18007 "対象の物理メディアに十分な領域がない場合、 リソース上限 B<RLIMIT_FSIZE> に達"
18008 "した場合 (B<setrlimit>(2)  参照)、 I<count> バイト未満の書き込みが行われた後"
18009 "で 呼び出しがシグナルハンドラにより割り込まれた場合、 などである。 "
18010 "(B<pipe>(7)  も参照のこと。)"
18011
18012 #. type: Plain text
18013 #: build/C/man2/write.2:82
18014 msgid ""
18015 "For a seekable file (i.e., one to which B<lseek>(2)  may be applied, for "
18016 "example, a regular file)  writing takes place at the current file offset, "
18017 "and the file offset is incremented by the number of bytes actually written.  "
18018 "If the file was B<open>(2)ed with B<O_APPEND>, the file offset is first set "
18019 "to the end of the file before writing.  The adjustment of the file offset "
18020 "and the write operation are performed as an atomic step."
18021 msgstr ""
18022 "seek 可能なファイル (つまり B<lseek>(2)  が適用できるファイル、例えば通常の"
18023 "ファイル) では、 書き込みは現在のファイルオフセットから行われ、 ファイルオフ"
18024 "セットは実際に書き込みが行われたバイト数分 加算される。ファイルが "
18025 "B<O_APPEND> で B<open>(2)  された場合、ファイルオフセットは書き込み前に ファ"
18026 "イルの末尾に設定される。 ファイルオフセットの調整と書き込み操作はアトミックな"
18027 "処理として 実行される。"
18028
18029 #. type: Plain text
18030 #: build/C/man2/write.2:89
18031 msgid ""
18032 "POSIX requires that a B<read>(2)  which can be proved to occur after a "
18033 "B<write>()  has returned returns the new data.  Note that not all "
18034 "filesystems are POSIX conforming."
18035 msgstr ""
18036 "POSIX は B<write>()  が行なわれた後に実行した B<read>(2)  が 新しいデータを返"
18037 "すことを要求している。 全てのファイルシステムが POSIX 準拠ではない点に注意す"
18038 "ること。"
18039
18040 #. type: Plain text
18041 #: build/C/man2/write.2:94
18042 msgid ""
18043 "On success, the number of bytes written is returned (zero indicates nothing "
18044 "was written).  On error, -1 is returned, and I<errno> is set appropriately."
18045 msgstr ""
18046 "成功した場合、書き込まれたバイト数が返される (ゼロは何も書き込まれなかったこ"
18047 "とを示す)。 エラーならば -1 が返され、I<errno> が適切に設定される。"
18048
18049 #. type: Plain text
18050 #: build/C/man2/write.2:107
18051 msgid ""
18052 "If I<count> is zero and I<fd> refers to a regular file, then B<write>()  may "
18053 "return a failure status if one of the errors below is detected.  If no "
18054 "errors are detected, 0 will be returned without causing any other effect.  "
18055 "If I<count> is zero and I<fd> refers to a file other than a regular file, "
18056 "the results are not specified."
18057 msgstr ""
18058 "I<count> が 0 で、 I<fd> が通常のファイル (regular file) を参照している場"
18059 "合、 B<write>()  は後述のエラーのいずれかを検出した場合、失敗を返すことがあ"
18060 "る。 エラーが検出されなかった場合は、 0 を返し、他に何の影響も与えない。 "
18061 "I<count> が 0 で、 I<fd> が通常のファイル以外のファイルを参照している場合、 "
18062 "その結果は規定されていない。"
18063
18064 #. type: Plain text
18065 #: build/C/man2/write.2:115
18066 msgid ""
18067 "The file descriptor I<fd> refers to a file other than a socket and has been "
18068 "marked nonblocking (B<O_NONBLOCK>), and the write would block."
18069 msgstr ""
18070 "ファイルディスクリプタ I<fd> がソケット以外のファイルを参照していて、 非停止 "
18071 "(nonblocking) モード (B<O_NONBLOCK>)  に設定されており、書き込みを行うと停止"
18072 "する状況にある。"
18073
18074 #.  Actually EAGAIN on Linux
18075 #. type: Plain text
18076 #: build/C/man2/write.2:126
18077 msgid ""
18078 "The file descriptor I<fd> refers to a socket and has been marked nonblocking "
18079 "(B<O_NONBLOCK>), and the write would block.  POSIX.1-2001 allows either "
18080 "error to be returned for this case, and does not require these constants to "
18081 "have the same value, so a portable application should check for both "
18082 "possibilities."
18083 msgstr ""
18084 "ファイルディスクリプタ I<fd> がソケットを参照していて、非停止 (nonblocking) "
18085 "モード (B<O_NONBLOCK>)  に設定されており、書き込みを行うと停止する状況にあ"
18086 "る。 POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 これ"
18087 "ら 2 つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なア"
18088 "プリケーションでは、両方の可能性を 確認すべきである。"
18089
18090 #. type: Plain text
18091 #: build/C/man2/write.2:130
18092 msgid "I<fd> is not a valid file descriptor or is not open for writing."
18093 msgstr ""
18094 "I<fd> が有効なファイルディスクリプタでないか書き込みのためにオープン (open) "
18095 "されていない。"
18096
18097 #. type: TP
18098 #: build/C/man2/write.2:130
18099 #, no-wrap
18100 msgid "B<EDESTADDRREQ>"
18101 msgstr "B<EDESTADDRREQ>"
18102
18103 #. type: Plain text
18104 #: build/C/man2/write.2:135
18105 msgid ""
18106 "I<fd> refers to a datagram socket for which a peer address has not been set "
18107 "using B<connect>(2)."
18108 msgstr ""
18109 "I<fd> が、 B<connect>(2)  を使って通信相手のアドレスが設定されていないデータ"
18110 "グラムソケットを 参照している。"
18111
18112 #. type: Plain text
18113 #: build/C/man2/write.2:141
18114 msgid ""
18115 "The user's quota of disk blocks on the filesystem containing the file "
18116 "referred to by I<fd> has been exhausted."
18117 msgstr ""
18118 "I<fd> が参照するファイルを含むファイルシステムのディスクブロックのユーザ"
18119 "クォータの上限に達している。"
18120
18121 #. type: Plain text
18122 #: build/C/man2/write.2:150
18123 msgid ""
18124 "An attempt was made to write a file that exceeds the implementation-defined "
18125 "maximum file size or the process's file size limit, or to write at a "
18126 "position past the maximum allowed offset."
18127 msgstr ""
18128 "実装定義の最大ファイルサイズまたはプロセスのファイルサイズ制限を 超えてファイ"
18129 "ルに書き込もうとした。 または許可されたオフセット値の限界を超えた先の位置に "
18130 "書き込もうとした。"
18131
18132 #. type: Plain text
18133 #: build/C/man2/write.2:154
18134 msgid ""
18135 "The call was interrupted by a signal before any data was written; see "
18136 "B<signal>(7)."
18137 msgstr ""
18138 "何のデータも書かない間にシグナルにより割り込まれた (interrupt)。 "
18139 "B<signal>(7)  参照。"
18140
18141 #. type: Plain text
18142 #: build/C/man2/write.2:165
18143 msgid ""
18144 "I<fd> is attached to an object which is unsuitable for writing; or the file "
18145 "was opened with the B<O_DIRECT> flag, and either the address specified in "
18146 "I<buf>, the value specified in I<count>, or the current file offset is not "
18147 "suitably aligned."
18148 msgstr ""
18149 "I<fd> が書き込みが不適切なオブジェクトを参照している。 もしくは、ファイルが "
18150 "B<O_DIRECT> フラグを指定してオープンされているが、 I<buf> に指定されたアドレ"
18151 "ス、 I<count> に指定された値、 現在のファイルオフセットのいずれかの アライン"
18152 "メントが不適切である。"
18153
18154 #. type: Plain text
18155 #: build/C/man2/write.2:168
18156 msgid "A low-level I/O error occurred while modifying the inode."
18157 msgstr "inode の修正中に低レべル (low-level) I/O エラーが発生した。"
18158
18159 #. type: Plain text
18160 #: build/C/man2/write.2:173
18161 msgid ""
18162 "The device containing the file referred to by I<fd> has no room for the data."
18163 msgstr ""
18164 "I<fd> によって参照されるファイルを含むデバイス (device) に十分な空きがない。"
18165
18166 #. type: TP
18167 #: build/C/man2/write.2:173
18168 #, no-wrap
18169 msgid "B<EPIPE>"
18170 msgstr "B<EPIPE>"
18171
18172 #. type: Plain text
18173 #: build/C/man2/write.2:182
18174 msgid ""
18175 "I<fd> is connected to a pipe or socket whose reading end is closed.  When "
18176 "this happens the writing process will also receive a B<SIGPIPE> signal.  "
18177 "(Thus, the write return value is seen only if the program catches, blocks or "
18178 "ignores this signal.)"
18179 msgstr ""
18180 "I<fd> がパイプ (pipe) かソケット (socket) に接続されており、 その反対側 (読み"
18181 "込み側) がクローズ (close) されている。 これが発生した場合には、書き込みを行"
18182 "なうプロセスは B<SIGPIPE> シグナル (signal)も受ける。 (したがって、プログラム"
18183 "がこのシグナルを捕獲 (catch)、停止 (block)、無視 (ignore)  した場合のみ、"
18184 "write の返り値を参照できる。)"
18185
18186 #. type: Plain text
18187 #: build/C/man2/write.2:185
18188 msgid "Other errors may occur, depending on the object connected to I<fd>."
18189 msgstr ""
18190 "I<fd> に接続されたオブジェクトによっては、他のエラーが起こるかもしれない。"
18191
18192 #. type: Plain text
18193 #: build/C/man2/write.2:194
18194 msgid ""
18195 "Under SVr4 a write may be interrupted and return B<EINTR> at any point, not "
18196 "just before any data is written."
18197 msgstr ""
18198 "SVr4 では write が割り込まれると、データが書き込まれる直前ではなく、 その時点"
18199 "で B<EINTR> が返る。"
18200
18201 #. type: Plain text
18202 #: build/C/man2/write.2:203
18203 msgid ""
18204 "A successful return from B<write>()  does not make any guarantee that data "
18205 "has been committed to disk.  In fact, on some buggy implementations, it does "
18206 "not even guarantee that space has successfully been reserved for the data.  "
18207 "The only way to be sure is to call B<fsync>(2)  after you are done writing "
18208 "all your data."
18209 msgstr ""
18210 "B<write>()  が成功して返ってきても、データがディスクに記録されたことを 保証す"
18211 "るものではない。 実際、データのためのスペースが確保されたことすら保証されない"
18212 "という バグっぽい実装もある。 これを確実にする唯一の方法は、 全てのデータを "
18213 "write した後に B<fsync>(2)  を呼び出すことである。"
18214
18215 #. type: Plain text
18216 #: build/C/man2/write.2:211
18217 msgid ""
18218 "If a B<write>()  is interrupted by a signal handler before any bytes are "
18219 "written, then the call fails with the error B<EINTR>; if it is interrupted "
18220 "after at least one byte has been written, the call succeeds, and returns the "
18221 "number of bytes written."
18222 msgstr ""
18223 "B<write>()  が 1 バイトも書き込まないうちにシグナルハンドラにより割り込まれた"
18224 "場合、 B<write>()  はエラー B<EINTR> で失敗する。 1バイトでも書き込んだ後で割"
18225 "り込まれた場合には、 B<write>()  は成功し、書き込んだバイト数を返す。"
18226
18227 #
18228 #.  http://thread.gmane.org/gmane.linux.kernel/1649458
18229 #.     From: Michael Kerrisk (man-pages <mtk.manpages <at> gmail.com>
18230 #.     Subject: Update of file offset on write() etc. is non-atomic with I/O
18231 #.     Date: 2014-02-17 15:41:37 GMT
18232 #.     Newsgroups: gmane.linux.kernel, gmane.linux.file-systems
18233 #.  commit 9c225f2655e36a470c4f58dbbc99244c5fc7f2d4
18234 #.     Author: Linus Torvalds <torvalds@linux-foundation.org>
18235 #.     Date:   Mon Mar 3 09:36:58 2014 -0800
18236 #.         vfs: atomic f_pos accesses as per POSIX
18237 #. type: Plain text
18238 #: build/C/man2/write.2:250
18239 msgid ""
18240 "Among the APIs subsequently listed are B<write>()  and B<writev>(2).  And "
18241 "among the effects that should be atomic across threads (and processes)  are "
18242 "updates of the file offset.  However, on Linux before version 3.14, this was "
18243 "not the case: if two processes that share an open file description (see "
18244 "B<open>(2))  perform a B<write>()  (or B<writev>(2))  at the same time, then "
18245 "the I/O operations were not atomic with respect updating the file offset, "
18246 "with the result that the blocks of data output by the two processes might "
18247 "(incorrectly) overlap.  This problem was fixed in Linux 3.14."
18248 msgstr ""
18249 "この後に書かれている API の中に B<write>() と B<writev>(2) である。 スレッド"
18250 "(やプロセス) 間でアトミックに適用することが求められる効果の一つとして、 ファ"
18251 "イルオフセットの更新がある。 しかしながら、 バージョン 3.14 より前の Linux で"
18252 "は、 この限りではない。 オープンファイル記述 (open file description) を共有す"
18253 "る 2 つのプロセスが同時に B<write>() (や B<writev>(2)) を実行した場合、 この "
18254 "I/O 操作ではファイルオフセットの更新に関してはアトミックではなく、 2 つのプロ"
18255 "セスから出力されるデータブロックが (間違って) 重なる可能性がある。 この問題"
18256 "は Linux 3.14 で修正された。"
18257
18258 #. type: Plain text
18259 #: build/C/man2/write.2:262
18260 msgid ""
18261 "B<close>(2), B<fcntl>(2), B<fsync>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), "
18262 "B<pwrite>(2), B<read>(2), B<select>(2), B<writev>(2), B<fwrite>(3)"
18263 msgstr ""
18264 "B<close>(2), B<fcntl>(2), B<fsync>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), "
18265 "B<pwrite>(2), B<read>(2), B<select>(2), B<writev>(2), B<fwrite>(3)"
18266
18267 #~ msgid "2013-07-23"
18268 #~ msgstr "2013-07-23"
18269
18270 #~ msgid "2014-03-20"
18271 #~ msgstr "2014-03-20"
18272
18273 #~ msgid ""
18274 #~ "On many architectures both I<off_t> and I<long> are 32-bit types, but "
18275 #~ "compilation with"
18276 #~ msgstr ""
18277 #~ "多くのアーキテクチャでは I<off_t> も I<long> も共に 32 ビットの型である"
18278 #~ "が、"
18279
18280 #~ msgid "will turn I<off_t> into a 64-bit type."
18281 #~ msgstr "でコンパイルすると I<off_t> は 64 ビット型となる。"
18282
18283 #~ msgid ""
18284 #~ "These functions are found on System V-like systems.  They are not present "
18285 #~ "in libc4, libc5, glibc 2.0 but are available since glibc 2.1."
18286 #~ msgstr ""
18287 #~ "これらの関数は System V 的なシステムにある。 libc4, libc5, glibc 2.0 には"
18288 #~ "なかったが、 glibc 2.1 から使えるようになった。"
18289
18290 #~ msgid "2014-05-10"
18291 #~ msgstr "2014-05-10"
18292
18293 #~ msgid "2014-01-22"
18294 #~ msgstr "2014-01-22"
18295
18296 #~ msgid "2014-02-11"
18297 #~ msgstr "2014-02-11"
18298
18299 #~ msgid "2013-12-30"
18300 #~ msgstr "2013-12-30"
18301
18302 #~ msgid ""
18303 #~ "(\"quad\". 4.4BSD and Linux libc5 only.  Don't use.)  This is a synonym "
18304 #~ "for B<ll>."
18305 #~ msgstr ""
18306 #~ "(\"quad\"。 4.4BSD と Linux libc5 のみ有効。使ってはならない。)  B<ll> と"
18307 #~ "同じ意味である。"
18308
18309 #~ msgid ""
18310 #~ "A following integer conversion corresponds to an I<intmax_t> or "
18311 #~ "I<uintmax_t> argument."
18312 #~ msgstr ""
18313 #~ "整数変換に対応する引き数が I<intmax_t> か I<uintmax_t> であることを示す。"
18314
18315 #~ msgid ""
18316 #~ "A following integer conversion corresponds to a I<size_t> or I<ssize_t> "
18317 #~ "argument.  (Linux libc5 has B<Z> with this meaning.  Don't use it.)"
18318 #~ msgstr ""
18319 #~ "整数変換に対応する引き数が I<size_t> か I<ssize_t> であることを示す。 "
18320 #~ "(Linux libc5 では、これを指定するのに B<Z> を用いる。使ってはならない。)"
18321
18322 #~ msgid ""
18323 #~ "A following integer conversion corresponds to a I<ptrdiff_t> argument."
18324 #~ msgstr "整数変換に対応する引き数が I<ptrdiff_t> であることを示す。"
18325
18326 #~ msgid ""
18327 #~ "The number of characters written so far is stored into the integer "
18328 #~ "indicated by the I<int\\ *> (or variant) pointer argument.  No argument "
18329 #~ "is converted."
18330 #~ msgstr ""
18331 #~ "これまでに出力された文字数を I<int\\ *> (または類似の型) のポインタ引き数"
18332 #~ "が指す整数に保存する。 引き数の変換は行われない。"
18333
18334 #~ msgid ""
18335 #~ "Linux libc4 knows about the five C standard flags.  It knows about the "
18336 #~ "length modifiers B<h>, B<l>, B<L>, and the conversions B<c>, B<d>, B<e>, "
18337 #~ "B<E>, B<f>, B<F>, B<g>, B<G>, B<i>, B<n>, B<o>, B<p>, B<s>, B<u>, B<x>, "
18338 #~ "and B<X>, where B<F> is a synonym for B<f>.  Additionally, it accepts "
18339 #~ "B<D>, B<O>, and B<U> as synonyms for B<ld>, B<lo>, and B<lu>.  (This is "
18340 #~ "bad, and caused serious bugs later, when support for B<%D> disappeared.)  "
18341 #~ "No locale-dependent radix character, no thousands' separator, no NaN or "
18342 #~ "infinity, no \"%m$\" and \"*m$\"."
18343 #~ msgstr ""
18344 #~ "Linux libc4 では、 5 つの C 標準のフラグ、 長さ修飾子 B<h>, B<l>, B<L>、変"
18345 #~ "換 B<c>, B<d>, B<e>, B<E>, B<f>, B<F>, B<g>, B<G>, B<i>, B<n>, B<o>, "
18346 #~ "B<p>, B<s>, B<u>, B<x>, B<X> が使える。 但し B<F> は B<f> と同義である。 "
18347 #~ "また、 B<D>, B<O>, and B<U> を B<ld>, B<lo>, and B<lu> と同じものとして使"
18348 #~ "える (これはまずい仕様で、 後に B<%D> の対応が打ち切られた時に深刻なバグ"
18349 #~ "を 引き起こした)。ロケール依存の小数点、1000 区切り、 NaN と無限、 \"%m$"
18350 #~ "\" と \"*m$\" は使えない。"
18351
18352 #~ msgid ""
18353 #~ "Linux libc5 knows about the five C standard flags and the \\(aq flag, "
18354 #~ "locale, \"%m$\" and \"*m$\".  It knows about the length modifiers B<h>, "
18355 #~ "B<l>, B<L>, B<Z>, and B<q>, but accepts B<L> and B<q> both for I<long "
18356 #~ "double> and for I<long long int> (this is a bug).  It no longer "
18357 #~ "recognizes B<F>, B<D>, B<O>, and B<U>, but adds the conversion character "
18358 #~ "B<m>, which outputs I<strerror(errno)>."
18359 #~ msgstr ""
18360 #~ "Linux libc5 では、 5 つの C 標準のフラグと \\(aq フラグ、ロケール、 \"%m$"
18361 #~ "\" と \"*m$\" が使える。 また、長さ修飾子 B<h>, B<l>, B<L>, B<Z>, iand "
18362 #~ "B<q> が使えるが、 B<L> と B<q> は両方とも I<long double> と I<long long "
18363 #~ "int> に対応している (これはバグである)。 現在では変換 B<F>, B<D>, B<O>, "
18364 #~ "B<U> は認識されないが、変換文字 B<m> が追加された。これは "
18365 #~ "I<strerror(errno)> を出力するものである。"
18366
18367 #~ msgid "glibc 2.0 adds conversion characters B<C> and B<S>."
18368 #~ msgstr "glibc 2.0 では、変換文字 B<C> と B<S> が追加された。"
18369
18370 #~ msgid ""
18371 #~ "Linux libc4.[45] does not have a B<snprintf>(), but provides a libbsd "
18372 #~ "that contains an B<snprintf>()  equivalent to B<sprintf>(), that is, one "
18373 #~ "that ignores the I<size> argument.  Thus, the use of B<snprintf>()  with "
18374 #~ "early libc4 leads to serious security problems."
18375 #~ msgstr ""
18376 #~ "Linux libc4.[45] には B<snprintf>()  はないが、 libbsd が提供されており、 "
18377 #~ "その中には B<sprintf>()  と等価な (つまり I<size> 引き数を無視する)  "
18378 #~ "B<snprintf>()  がある。 したがって、初期の libc4 で B<snprintf>()  を使う"
18379 #~ "と、深刻なセキュリティ問題を引き起こすことがある。"
18380
18381 #~ msgid "2010-11-17"
18382 #~ msgstr "2010-11-17"
18383
18384 #~ msgid ""
18385 #~ "B<readv>(), B<writev>(): 4.4BSD (these system calls first appeared in "
18386 #~ "4.2BSD), POSIX.1-2001.  Linux libc5 used I<size_t> as the type of the "
18387 #~ "I<iovcnt> argument, and I<int> as the return type."
18388 #~ msgstr ""
18389 #~ "B<readv>(), B<writev>(): \n"
18390 #~ "4.4BSD (これらのシステムコールは 4.2BSD で最初に現われた)、"
18391 #~ "POSIX.1-2001。 \n"
18392 #~ "Linux libc5 では、 I<iovcnt> 引き数の型として I<size_t> を、\n"
18393 #~ "返り値の型として I<int> を使用していた。"
18394
18395 #~ msgid "Linux notes"
18396 #~ msgstr "Linux での注意"
18397
18398 #~ msgid "2014-03-10"
18399 #~ msgstr "2014-03-10"
18400
18401 #~ msgid ""
18402 #~ "Under libc4 and libc5, B<remove>()  was an alias for B<unlink>(2)  (and "
18403 #~ "hence would not remove directories)."
18404 #~ msgstr ""
18405 #~ "libc4 と libc5 においては、 B<remove>()  は B<unlink>(2)  の別名であった "
18406 #~ "(従ってディレクトリを削除できなかった)。"
18407
18408 #~ msgid "2014-02-18"
18409 #~ msgstr "2014-02-18"
18410
18411 #~ msgid ""
18412 #~ "The B<setbuffer>()  and B<setlinebuf>()  functions are not portable to "
18413 #~ "versions of BSD before 4.2BSD, and are available under Linux since libc "
18414 #~ "4.5.21.  On 4.2BSD and 4.3BSD systems, B<setbuf>()  always uses a "
18415 #~ "suboptimal buffer size and should be avoided."
18416 #~ msgstr ""
18417 #~ "B<setbuffer>()  関数および B<setlinebuf>()  関数は 4.2BSD より前の BSD と"
18418 #~ "は互換性がない。また Linux でも(古いバージョン では)利用できないかもしれな"
18419 #~ "い。4.2BSD および 4.3BSD のシステムでは B<setbuf>()  は必ず追加のバッ"
18420 #~ "ファーのサイズを使用するので、これも使うべきでない。"
18421
18422 #~ msgid "2014-05-05"
18423 #~ msgstr "2014-05-05"
18424
18425 #~ msgid "2014-02-21"
18426 #~ msgstr "2014-02-21"
18427
18428 #~ msgid "2012-04-17"
18429 #~ msgstr "2012-04-17"
18430
18431 #~ msgid "B<int >I<errno>B<;>"
18432 #~ msgstr "B<int >I<errno>B<;>"
18433
18434 #~ msgid "2014-04-20"
18435 #~ msgstr "2014-04-20"
18436
18437 #~ msgid ""
18438 #~ "If the pathname given in I<pathname> is relative, then it is interpreted "
18439 #~ "relative to the directory relative to by the file descriptor I<dirfd> "
18440 #~ "(rather than relative to the current working directory of the calling "
18441 #~ "process, as is done by B<open>()  for a relative pathname)."
18442 #~ msgstr ""
18443 #~ "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディス"
18444 #~ "クリプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
18445 #~ "(B<open>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
18446 #~ "ワーキングディレクトリに対する相対パスではない)。"
18447
18448 #~ msgid "2014-03-24"
18449 #~ msgstr "2014-03-24"
18450
18451 #~ msgid "2013-02-12"
18452 #~ msgstr "2013-02-12"
18453
18454 #~ msgid "2013-01-27"
18455 #~ msgstr "2013-01-27"
18456
18457 #~ msgid ""
18458 #~ "Enable the close-on-exec flag for the new file descriptor.  Specifying "
18459 #~ "this flag permits a program to avoid additional B<fcntl>(2)  B<F_SETFD> "
18460 #~ "operations to set the B<FD_CLOEXEC> flag.  Additionally, use of this flag "
18461 #~ "is essential in some multithreaded programs since using a separate "
18462 #~ "B<fcntl>(2)  B<F_SETFD> operation to set the B<FD_CLOEXEC> flag does not "
18463 #~ "suffice to avoid race conditions where one thread opens a file descriptor "
18464 #~ "at the same time as another thread does a B<fork>(2)  plus B<execve>(2)."
18465 #~ msgstr ""
18466 #~ "新しいファイルディスクリプタに対して close-on-exec フラグを有効にする。 こ"
18467 #~ "のフラグを指定することで、プログラムは B<FD_CLOEXEC> フラグをセットするた"
18468 #~ "めの B<fcntl>(2)  B<F_SETFD> 操作を別途呼び出す必要がなくなる。 また、ある"
18469 #~ "種のマルチスレッドのプログラムはこのフラグの使用は 不可欠である。なぜな"
18470 #~ "ら、個別に B<FD_CLOEXEC> フラグを設定する B<fcntl>(2)  B<F_SETFD> 操作を呼"
18471 #~ "び出したとしても、あるスレッドがファイルディスクリプタを オープンするのと"
18472 #~ "同時に別のスレッドが B<fork>(2)  と B<execve>(2)  を実行するという競合条件"
18473 #~ "を避けるのには十分ではないからである。"
18474
18475 #~ msgid "SYMBOLIC LINK HANDLING"
18476 #~ msgstr "シンボリックリンクの取り扱い"
18477
18478 #~ msgid ""
18479 #~ "Various system calls do not follow links, and operate on the symbolic "
18480 #~ "link itself.  They are: B<lchown>(2), B<lgetxattr>(2), B<llistxattr>(2), "
18481 #~ "B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), B<readlink>(2), "
18482 #~ "B<rename>(2), B<rmdir>(2), and B<unlink>(2).  Certain other system calls "
18483 #~ "optionally follow symbolic links.  They are: B<faccessat>(2), "
18484 #~ "B<fchownat>(2), B<fstatat>(2), B<linkat>(2), B<open>(2), B<openat>(2), "
18485 #~ "and B<utimensat>(2); see their manual pages for details.  Because "
18486 #~ "B<remove>(3)  is an alias for B<unlink>(2), that library function also "
18487 #~ "does not follow symbolic links.  When B<rmdir>(2)  is applied to a "
18488 #~ "symbolic link, it fails with the error B<ENOTDIR>.  The B<link>(2)  "
18489 #~ "warrants special discussion.  POSIX.1-2001 specifies that B<link>(2)  "
18490 #~ "should dereference I<oldpath> if it is a symbolic link.  However, Linux "
18491 #~ "does not do this.  (By default Solaris is the same, but the POSIX.1-2001 "
18492 #~ "specified behavior can be obtained with suitable compiler options.)  The "
18493 #~ "upcoming POSIX.1 revision changes the specification to allow either "
18494 #~ "behavior in an implementation."
18495 #~ msgstr ""
18496 #~ "いくつかのシステムコールは、 シンボリックリンクを辿らず、 シンボリックリン"
18497 #~ "ク自身に対して操作を行う。 B<lchown>(2), B<lgetxattr>(2), "
18498 #~ "B<llistxattr>(2), B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), "
18499 #~ "B<readlink>(2), B<rename>(2), B<rmdir>(2), B<unlink>(2) が該当する。 他の"
18500 #~ "いくつかのシステムコールは、 シンボリックリンクを辿る場合と辿らない場合が"
18501 #~ "ある。 該当するのは B<faccessat>(2), B<fchownat>(2), B<fstatat>(2), "
18502 #~ "B<linkat>(2), B<open>(2), B<openat>(2), B<utimensat>(2) である。 詳細はそ"
18503 #~ "れぞれのマニュアルページを参照。 ライブラリ関数 B<remove>(3) は "
18504 #~ "B<unlink>(2) の別名なので、 この関数もシンボリックリンクを辿らない。 "
18505 #~ "B<rmdir>(2) をシンボリックリンクに対して行った場合、 エラー B<ENOTDIR> で"
18506 #~ "失敗する。 B<link>(2) は特別に議論が必要である。 POSIX.1-2001 は、 "
18507 #~ "B<link>(2) は I<oldpath> がシンボリックリンクの場合にはこのリンクを展開す"
18508 #~ "べきだと規定している。 しかし、 Linux はこれを行っていない。 (デフォルトで"
18509 #~ "は Solaris も同じだが、 適切なコンパイルオプションを指定することで "
18510 #~ "POSIX.1-2001 で規定された動作にすることもできる。) POSIX.1-2001 の次の版で"
18511 #~ "は、仕様が変更され、 どちらの動作の実装も認められるようになる。"
18512
18513 #~ msgid ""
18514 #~ "If the name was the last link to a file but any processes still have the "
18515 #~ "file open the file will remain in existence until the last file "
18516 #~ "descriptor referring to it is closed."
18517 #~ msgstr ""
18518 #~ "もし削除する名前がファイルへの最後のリンクだが、どれかのプロセスが その"
18519 #~ "ファイルをまだオープンしている場合は、 そのファイルを参照している最後の"
18520 #~ "ファイルディスクリプタ (file descriptor)  がクローズ (close) されるまで"
18521 #~ "ファイルは存在し続ける。"
18522
18523 #~ msgid "If the name referred to a symbolic link the link is removed."
18524 #~ msgstr ""
18525 #~ "もしその名前がシンボリックリンク (symbolic link) を参照していれば、 リンク"
18526 #~ "は削除される。"
18527
18528 #~ msgid ""
18529 #~ "If the name referred to a socket, fifo or device the name for it is "
18530 #~ "removed but processes which have the object open may continue to use it."
18531 #~ msgstr ""
18532 #~ "もし名前がソケット (socket) や fifo やデバイス (device) を参照していれば "
18533 #~ "名前は削除されるがそのオブジェクトをオープンしていたプロセスは それを使い"
18534 #~ "続けることができる。"
18535
18536 #~ msgid ""
18537 #~ "The file is opened for synchronous I/O.  Any B<write>(2)s on the "
18538 #~ "resulting file descriptor will block the calling process until the data "
18539 #~ "has been physically written to the underlying hardware.  I<But see NOTES "
18540 #~ "below>."
18541 #~ msgstr ""
18542 #~ "ファイルは同期 (synchronous) I/O モードでオープンされる。 B<open>()  が返"
18543 #~ "したファイルディスクリプタに対して B<write>(2)  を行うと、必ず呼び出したプ"
18544 #~ "ロセスをブロックし、 該当ハードウェアに物理的に書き込まれるまで返らない。 "
18545 #~ "I<以下の「注意」の章も参照。>"
18546
18547 #~ msgid ""
18548 #~ "Some of these optional flags can be altered using B<fcntl>(2)  after the "
18549 #~ "file has been opened."
18550 #~ msgstr ""
18551 #~ "これらの選択フラグのいくつかはファイルをオープンした後でも B<fcntl>(2)  を"
18552 #~ "使用して変更することができる。"
18553
18554 #~ msgid ""
18555 #~ "Too many symbolic links were encountered in resolving I<pathname>, or "
18556 #~ "B<O_NOFOLLOW> was specified but I<pathname> was a symbolic link."
18557 #~ msgstr ""
18558 #~ "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。 または "
18559 #~ "B<O_NOFOLLOW> が指定されており、 I<pathname> がシンボリックリンクだった。"
18560
18561 #~ msgid ""
18562 #~ "The B<O_CLOEXEC> flag is not specified in POSIX.1-2001, but is specified "
18563 #~ "in POSIX.1-2008."
18564 #~ msgstr ""
18565 #~ "B<O_CLOEXEC> フラグは POSIX.1-2001 では規定されていないが、 POSIX.1-2008 "
18566 #~ "で規定されている。"
18567
18568 #~ msgid ""
18569 #~ "B<O_DIRECT> is not specified in POSIX; one has to define B<_GNU_SOURCE> "
18570 #~ "(before including I<any> header files)  to get its definition."
18571 #~ msgstr ""
18572 #~ "B<O_DIRECT> は POSIX では規定されていない。 B<O_DIRECT> の定義を得るには "
18573 #~ "(「どの」ヘッダファイルをインクルードするよりも前に)  B<_GNU_SOURCE> を定"
18574 #~ "義しなければならない。"
18575
18576 #~ msgid ""
18577 #~ "POSIX provides for three different variants of synchronized I/O, "
18578 #~ "corresponding to the flags B<O_SYNC>, B<O_DSYNC>, and B<O_RSYNC>.  "
18579 #~ "Currently (2.6.31), Linux implements only B<O_SYNC>, but glibc maps "
18580 #~ "B<O_DSYNC> and B<O_RSYNC> to the same numerical value as B<O_SYNC>.  Most "
18581 #~ "Linux filesystems don't actually implement the POSIX B<O_SYNC> semantics, "
18582 #~ "which require all metadata updates of a write to be on disk on returning "
18583 #~ "to user space, but only the B<O_DSYNC> semantics, which require only "
18584 #~ "actual file data and metadata necessary to retrieve it to be on disk by "
18585 #~ "the time the system call returns."
18586 #~ msgstr ""
18587 #~ "POSIX では、3 種類の同期 I/O が提供されており、 B<O_SYNC>, B<O_DSYNC>, "
18588 #~ "B<O_RSYNC> フラグがこれに対応するものである。 今のところ (カーネル "
18589 #~ "2.6.31)、 Linux では B<O_SYNC> だけが実装されているが、 glibc は "
18590 #~ "B<O_DSYNC> と B<O_RSYNC> に B<O_SYNC> と同じ数値を割り当てている。 ほとん"
18591 #~ "どの Linux のファイルシステムは、実際には POSIX の B<O_SYNC> の動作ではな"
18592 #~ "く B<O_DSYNC> の動作だけを実装している。 POSIX の B<O_SYNC> では、 "
18593 #~ "B<open>()  がユーザ空間に返る際に、書き込みに関する全てのメタデータの 更新"
18594 #~ "がディスクに書き込まれている必要がある。 一方、 B<O_DSYNC> では、 "
18595 #~ "B<open>()  が返るまでに、実際のファイルのデータとそのデータを取得するため"
18596 #~ "に 必要なメタデータだけがディスクに書き込まれていればよい。"