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.
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"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
19 #: build/C/man3/asprintf.3:27
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
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
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
69 msgid "Linux Programmer's Manual"
70 msgstr "Linux Programmer's Manual"
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
100 #: build/C/man3/asprintf.3:30
101 msgid "asprintf, vasprintf - print to allocated string"
102 msgstr "asprintf, vasprintf - 文字列を割り当ててそれに出力する"
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
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) 参照 */"
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>>"
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<, ...);>"
150 #: build/C/man3/asprintf.3:38
152 "B<int vasprintf(char **>I<strp>B<, const char *>I<fmt>B<, va_list >I<ap>B<);>"
154 "B<int vasprintf(char **>I<strp>B<, const char *>I<fmt>B<, va_list >I<ap>B<);>"
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
184 #: build/C/man3/asprintf.3:53
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 "
193 "B<asprintf>() 関数と B<vasprintf>() 関数とは、それぞれ B<sprintf>(3) 関数"
194 "と B<vsprintf>(3) 関数とに似ているが、 出力文字列を (終端のヌルバイト (\\(aq"
195 "\\e0\\(aq) も含めて) 保持するのに十分な大きさのメモリを確保し、 最初の引数に"
196 "その文字列へのポインタを返す。 このポインタは、不要になったら B<free>(3) に"
197 "渡し、割り当てられた記憶領域を解放すべきである。"
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
224 #: build/C/man3/asprintf.3:61
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 "
231 "成功すると、これらの関数は出力されたバイト数を (B<sprintf>(3) のように) 返"
232 "す。 メモリの割り当てができなかったり、 その他エラーが生じると、 これらの関数"
233 "は -1 を返し、 I<strp> の内容は未定義となる。"
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
258 msgid "CONFORMING TO"
262 #: build/C/man3/asprintf.3:67
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 "
268 "これらの関数は GNU の拡張であり、C や POSIX のものではない。 これらは *BSD で"
269 "も利用できる。 FreeBSD の実装では、エラーの際には I<strp> を NULL にセットす"
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
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)"
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
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
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-"
363 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.77 の一部\n"
364 "である。プロジェクトの説明とバグ報告に関する情報は\n"
365 "http://www.kernel.org/doc/man-pages/ に書かれている。"
368 #: build/C/man3/ctermid.3:26
374 #: build/C/man3/ctermid.3:26
380 #: build/C/man3/ctermid.3:29
381 msgid "ctermid - get controlling terminal name"
382 msgstr "ctermid - 制御端末名の取得"
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
394 msgid "B<#include E<lt>stdio.hE<gt>>\n"
395 msgstr "B<#include E<lt>stdio.hE<gt>>\n"
398 #: build/C/man3/ctermid.3:36
400 msgid "B<char *ctermid(char *>I<s>B<);>\n"
401 msgstr "B<char *ctermid(char *>I<s>B<);>\n"
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
415 "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
416 msgstr "glibc 向けの機能検査マクロの要件 (B<feature_test_macros>(7) 参照):"
418 #. From <unistd.h>: _XOPEN_SOURCE
420 #: build/C/man3/ctermid.3:46
422 "B<ctermid>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
424 "B<ctermid>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
427 #: build/C/man3/ctermid.3:59
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."
435 "B<ctermid>() はプロセスの現在の制御端末のパス名を返す。 I<s> が NULL の場"
436 "合、静的なバッファを用いる。それ以外の場合、 I<s> は端末パス名を保持するのに"
437 "使用されるバッファへのポインタとなる。 シンボル定数 B<L_ctermid> は返されるパ"
441 #: build/C/man3/ctermid.3:61
442 msgid "The pointer to the pathname."
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
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
464 msgid "Multithreading (see pthreads(7))"
465 msgstr "マルチスレッディング (pthreads(7) 参照)"
468 #: build/C/man3/ctermid.3:67
470 "The B<ctermid>() function is thread-safe with exceptions. It is not thread-"
471 "safe if called with a NULL parameter."
473 "B<ctermid>() 関数は例外付きでスレッドセーフである。 NULL パラメータで呼び出さ"
477 #: build/C/man3/ctermid.3:69
478 msgid "Svr4, POSIX.1-2001."
479 msgstr "SVr4, POSIX.1-2001."
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
495 #: build/C/man3/ctermid.3:73
497 "The path returned may not uniquely identify the controlling terminal; it "
498 "may, for example, be I</dev/tty>."
500 "返されたパスはたぶん制御端末を一意には特定できない。 たとえば I</dev/tty> の"
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.
506 #: build/C/man3/ctermid.3:77
507 msgid "It is not assured that the program can open the terminal."
508 msgstr "プログラムが端末をオープンできることは保証されていない。"
511 #: build/C/man3/ctermid.3:79
512 msgid "B<ttyname>(3)"
513 msgstr "B<ttyname>(3)"
516 #: build/C/man3/dprintf.3:26
522 #: build/C/man3/dprintf.3:26
528 #: build/C/man3/dprintf.3:29
529 msgid "dprintf, vdprintf - print to a file descriptor"
530 msgstr "dprintf, vdprintf - ファイルディスクリプタに文字出力する"
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<, ...);>"
538 #: build/C/man3/dprintf.3:35
540 "B<int vdprintf(int >I<fd>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
542 "B<int vdprintf(int >I<fd>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
545 #: build/C/man3/dprintf.3:43
546 msgid "B<dprintf>(), B<vdprintf>():"
547 msgstr "B<dprintf>(), B<vdprintf>():"
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
555 msgid "Since glibc 2.10:"
556 msgstr "glibc 2.10 以降:"
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"
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
571 msgid "Before glibc 2.10:"
572 msgstr "glibc 2.10 より前:"
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
581 #: build/C/man3/dprintf.3:69
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."
587 "(glibc2 ライブラリにおける) B<dprintf>() 関数と B<vdprintf>() 関数とは、そ"
588 "れぞれ B<fprintf>(3) 関数と B<vfprintf>(3) 関数とにちょうど対応するが、 こ"
589 "れらは I<stdio> ストリームではなくファイルディスクリプタ I<fd> に対して出力を"
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
597 #. usually some debugging version of
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
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
613 #: build/C/man3/dprintf.3:95
615 "These functions are GNU extensions that are nowadays specified in "
618 "これらの関数は GNU による拡張であり、 現在では POSIX.1-2008 で規定されてい"
622 #: build/C/man3/dprintf.3:97
624 msgstr "B<printf>(3)"
627 #: build/C/man3/fclose.3:44
633 #: build/C/man3/fclose.3:44
639 #: build/C/man3/fclose.3:47
640 msgid "fclose - close a stream"
641 msgstr "fclose - ストリームを閉じる"
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<);>"
649 #: build/C/man3/fclose.3:59
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 "
655 "B<fclose>() 関数は、 I<fp> が指すストリームを (バッファリングされて\n"
656 "いた全ての出力データを B<fflush>(3) を用いて書き込んで) フラッシュし、\n"
657 "対応するファイルディスクリプタをクローズする。"
660 #: build/C/man3/fclose.3:70
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 "
667 "関数が正常に終了すると 0 が返される。 正常に終了しなかった場合には B<EOF> が"
668 "返され、 I<errno> がエラーを示すために設定される。 どちらの場合も、そのスト"
669 "リームに対する (B<fclose>() へのさらなる呼び出しを含む) それ以上のアクセス"
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
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
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)).
706 #: build/C/man3/fclose.3:80
707 msgid "The file descriptor underlying I<fp> is not valid."
708 msgstr "I<fp> の基となるファイルディスクリプタが不正である。"
711 #: build/C/man3/fclose.3:90
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)."
716 "B<fclose>() 関数はこれ以外にも B<close>(2), B<write>(2), B<fflush>(3) の"
717 "ルーチンで失敗することがある。その場合は I<errno> が、失敗したルーチンで設定"
721 #: build/C/man3/fclose.3:92 build/C/man3/fseek.3:171 build/C/man3/puts.3:105
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
744 #: build/C/man3/fclose.3:102
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)."
750 "B<fclose>() は C ライブラリで提供されたユーザー空間バッファをフラッシュする"
751 "だけで ある点に注意すること。 データを確実に物理的にディスクに記録するために"
752 "は カーネルバッファも (B<sync>(2) や B<fsync>(2) を用いて) フラッシュしなけ"
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)"
761 #: build/C/man3/fcloseall.3:25
767 #: build/C/man3/fcloseall.3:28
768 msgid "fcloseall - close all open streams"
769 msgstr "fcloseall - 開いているすべてのストリームを閉じる"
772 #: build/C/man3/fcloseall.3:32 build/C/man3/fopencookie.3:33
775 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
776 "B<#include E<lt>stdio.hE<gt>>\n"
778 "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
779 "B<#include E<lt>stdio.hE<gt>>\n"
782 #: build/C/man3/fcloseall.3:34
784 msgid "B<int fcloseall(void);>\n"
785 msgstr "B<int fcloseall(void);>\n"
788 #: build/C/man3/fcloseall.3:43
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."
794 "B<fcloseall>() 関数は、呼び出し元プロセスが開いているすべてのストリームを閉"
795 "じる。 ストリームを閉じる前に、 (B<fflush>(3) と同じように) 各ストリームの"
796 "バッファに溜っている出力データは書き出される。 入力バッファ内のデータは破棄さ"
800 #: build/C/man3/fcloseall.3:50
802 "The standard streams, I<stdin>, I<stdout>, and I<stderr> are also closed."
803 msgstr "標準入出力 I<stdin>, I<stdout>, I<stderr> も閉じられる。"
806 #: build/C/man3/fcloseall.3:55
808 "This function returns 0 if all files were successfully closed; on error, "
809 "B<EOF> is returned."
811 "この関数は、すべてのファイルが正常に閉じられた場合 0 を返す。 エラーの場合、 "
815 #: build/C/man3/fcloseall.3:60
817 "The B<fcloseall>() function does not lock the streams, so it is not thread-"
820 "B<fcloseall>() 関数はストリームのロックを行わない。そのため、スレッドセーフで"
824 #: build/C/man3/fcloseall.3:62
825 msgid "This function is a GNU extension."
826 msgstr "この関数は GNU 拡張である。"
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)"
834 #: build/C/man3/ferror.3:44
840 #: build/C/man3/ferror.3:44
846 #: build/C/man3/ferror.3:47
847 msgid "clearerr, feof, ferror, fileno - check and reset stream status"
849 "clearerr, feof, ferror, fileno - ストリームステータスのチェックとリセット"
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<);>"
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<);>"
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<);>"
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<);>"
872 #: build/C/man3/ferror.3:65
874 "B<fileno>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
876 "B<fileno>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
879 #: build/C/man3/ferror.3:70
881 "The function B<clearerr>() clears the end-of-file and error indicators for "
882 "the stream pointed to by I<stream>."
884 "関数 B<clearerr>() は I<stream> で示されるストリームの EOF(end-of-file) 指示"
888 #: build/C/man3/ferror.3:78
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>()."
894 "関数 B<feof>() は I<stream> で示されるストリームの EOF 指示子をテストし、 "
895 "セットされていれば 0 以外の数を返す。 EOF 指示子は、関数 B<clearerr>() に"
899 #: build/C/man3/ferror.3:87
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."
905 "関数 B<ferror>() は I<stream> で示されるストリームのエラー指示子をテスト"
906 "し、 セットされていれば 0 以外の数を返す。 エラー指示子は、関数 "
907 "B<clearerr>() によってのみリセットすることができる。"
910 #: build/C/man3/ferror.3:93
912 "The function B<fileno>() examines the argument I<stream> and returns its "
913 "integer descriptor."
915 "関数 B<fileno>() は、引数 I<stream> を調べ、その整数のディスクリプタを返す。"
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)."
922 "これらの処理を停止せずに行いたいときは、 B<unlocked_stdio>(3) を参照のこと。"
925 #: build/C/man3/ferror.3:106
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>.)"
931 "これらの関数は失敗すべきではなく、また、外部変数 I<errno> に値をセットしな"
932 "い。 (しかし、 B<fileno>() 関数の場合で、引数が有効なストリームでなかった場"
933 "合、 関数は -1 を返し、 I<errno> に B<EBADF> を設定しなければならない。)"
936 #: build/C/man3/ferror.3:115
938 "The B<clearerr>(), B<feof>(), B<ferror>(), and B<fileno>() functions are "
941 "関数 B<clearerr>(), B<feof>(), B<ferror>(), B<fileno>() はスレッドセーフであ"
945 #: build/C/man3/ferror.3:122
947 "The functions B<clearerr>(), B<feof>(), and B<ferror>() conform to C89, "
948 "C99, POSIX.1-2001, and POSIX.1-2008."
950 "関数 B<clearerr>(), B<feof>(), B<ferror>() は C89, C99, POSIX.1-2001, "
951 "POSIX.1-2008 に準拠している。"
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 に準拠している。"
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)"
964 #: build/C/man3/fflush.3:45
970 #: build/C/man3/fflush.3:45
976 #: build/C/man3/fflush.3:48
977 msgid "fflush - flush a stream"
978 msgstr "fflush - ストリームの内容を強制的に出力(フラッシュ)する"
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<);>"
986 #: build/C/man3/fflush.3:63
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."
994 "出力ストリームに関しては、 B<fflush>() は、ユーザー空間でバッファリングされ"
995 "ているすべてのデータを 指定された出力に書き出す (フラッシュする)、 もしくはス"
996 "トリーム I<stream> の下位にある書き込み関数を用いてこのストリームを更新す"
997 "る。 入力ストリームに関しては、 B<fflush>() は、対応するファイルから取得され"
998 "たが、アプリケーションからは 読み出されていないバッファデータを全て破棄す"
999 "る。 ストリームは開いた状態のままであり、 この関数によって何の影響も受けな"
1003 #: build/C/man3/fflush.3:71
1005 "If the I<stream> argument is NULL, B<fflush>() flushes I<all> open output "
1008 "I<stream> 引数が NULL ならば、 B<fflush>() は開いているI<すべての>出力スト"
1012 #: build/C/man3/fflush.3:74
1013 msgid "For a nonlocking counterpart, see B<unlocked_stdio>(3)."
1015 "これらの処理をロックせずに行いたいときは、 B<unlocked_stdio>(3) を参照のこ"
1019 #: build/C/man3/fflush.3:81
1021 "Upon successful completion 0 is returned. Otherwise, B<EOF> is returned and "
1022 "I<errno> is set to indicate the error."
1024 "成功すると 0 が返される。 その他の場合には B<EOF> が返され、 I<errno> が、エ"
1028 #: build/C/man3/fflush.3:86
1029 msgid "I<Stream> is not an open stream, or is not open for writing."
1031 "I<Stream> は開いているストリームではない。 あるいはストリームは書き込み用では"
1035 #: build/C/man3/fflush.3:93
1037 "The function B<fflush>() may also fail and set I<errno> for any of the "
1038 "errors specified for B<write>(2)."
1040 "B<fflush>() 関数は B<write>(2) に関して規定されているエラーで失敗することも"
1041 "ある。 この場合 I<errno> もその値に設定される。"
1044 #: build/C/man3/fflush.3:98
1045 msgid "The B<fflush>() function is thread-safe."
1046 msgstr "関数 B<fflush>() はスレッドセーフである。"
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."
1053 #. Verified on: Solaris 8.
1055 #: build/C/man3/fflush.3:104
1057 "The standards do not specify the behavior for input streams. Most other "
1058 "implementations behave the same as Linux."
1060 "標準では、入力ストリームに対する動作は規定されていない。 他のほとんどの実装"
1064 #: build/C/man3/fflush.3:113
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)."
1070 "B<fflush>() は、 C ライブラリが与えているユーザー空間のバッファしかフラッ"
1071 "シュしない。 データが物理的にディスクに保存されることを保証したければ、 カー"
1072 "ネルバッファもフラッシュしなければならない。 これには例えば B<sync>(2) や "
1076 #: build/C/man3/fflush.3:121
1078 "B<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), "
1079 "B<setbuf>(3), B<unlocked_stdio>(3)"
1081 "B<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), "
1082 "B<setbuf>(3), B<unlocked_stdio>(3)"
1085 #: build/C/man3/fgetc.3:27
1091 #: build/C/man3/fgetc.3:27
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 - 文字と文字列の入力"
1102 #: build/C/man3/fgetc.3:35
1104 msgid "B<int fgetc(FILE *>I<stream>B<);>\n"
1105 msgstr "B<int fgetc(FILE *>I<stream>B<);>\n"
1108 #: build/C/man3/fgetc.3:37
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"
1114 #: build/C/man3/fgetc.3:39
1116 msgid "B<int getc(FILE *>I<stream>B<);>\n"
1117 msgstr "B<int getc(FILE *>I<stream>B<);>\n"
1120 #: build/C/man3/fgetc.3:41
1122 msgid "B<int getchar(void);>\n"
1123 msgstr "B<int getchar(void);>\n"
1126 #: build/C/man3/fgetc.3:43
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"
1132 #: build/C/man3/fgetc.3:55
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."
1137 "B<fgetc>() は、 I<stream> から次の文字を I<unsigned char> として読み、 "
1138 "I<int> にキャストして返す。ファイルの終わりやエラーとなった場合は B<EOF> を返"
1142 #: build/C/man3/fgetc.3:62
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."
1147 "B<getc>() は B<fgetc>() と同様だが、 I<stream> を複数回評価するマクロとして"
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<)> と同じである。"
1156 #: build/C/man3/fgetc.3:80
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 "
1164 "B<fgets>() は I<stream> から最大で I<size> - 1 個の文字を読み込み、 I<s> が"
1165 "指すバッファに格納する。読み込みは B<EOF> または改行文字を読み込んだ後で停止"
1166 "する。 読み込まれた改行文字はバッファに格納される。 終端のヌルバイト (\\(aq"
1167 "\\e0\\(aq) が一つバッファの中の最後の文字の後に書き込まれる。"
1170 #: build/C/man3/fgetc.3:91
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."
1176 "B<ungetc>() は、後の read 操作で読めるように、 I<c> を I<unsigned char> に"
1177 "キャストして I<stream> に書き戻す。 書き戻された文字は逆順に戻される; 書き戻"
1178 "しとして保証されているのは、一文字だけである。"
1181 #: build/C/man3/fgetc.3:96
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 "
1187 "ここで述べた関数や I<stdio> ライブラリの入力関数を同じ入力ストリームに対して"
1191 #: build/C/man3/fgetc.3:111
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."
1196 "B<fgetc>(), B<getc>(), B<getchar>() は、文字を I<unsigned char> として読ん"
1197 "で I<int> にキャストして返す。ファイルの終わりやエラーの場合は B<EOF> を返"
1201 #: build/C/man3/fgetc.3:117
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."
1206 "B<fgets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込んでいないのに"
1207 "ファイルの終わりになった 場合に NULL を返す。"
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> を返す。"
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."
1220 #: build/C/man3/fgetc.3:133
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."
1227 "入力ストリームのファイルディスクリプタに対して、 I<stdio> ライブラリの入力関"
1228 "数と、低レベル呼び出しの B<read>(2) を混ぜて呼び出す事は勧められない。 結果"
1229 "がどうなるかは分からず、おそらくあなたの 望んでいる結果にはならないだろう。"
1232 #: build/C/man3/fgetc.3:150
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)"
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)"
1245 #: build/C/man3/fgetwc.3:18
1251 #: build/C/man3/fgetwc.3:18 build/C/man3/fputwc.3:16 build/C/man3/popen.3:40
1257 #: build/C/man3/fgetwc.3:21
1258 msgid "fgetwc, getwc - read a wide character from a FILE stream"
1259 msgstr "fgetwc, getwc - ワイド文字を FILE ストリームから読み込む"
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
1265 msgid "B<#include E<lt>wchar.hE<gt>>\n"
1266 msgstr "B<#include E<lt>wchar.hE<gt>>\n"
1269 #: build/C/man3/fgetwc.3:29
1272 "B<wint_t fgetwc(FILE *>I<stream>B<);>\n"
1273 "B<wint_t getwc(FILE *>I<stream>B<);>\n"
1275 "B<wint_t fgetwc(FILE *>I<stream>B<);>\n"
1276 "B<wint_t getwc(FILE *>I<stream>B<);>\n"
1279 #: build/C/man3/fgetwc.3:44
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>."
1287 "B<fgetwc>() 関数は、 B<fgetc>(3) に対応するワイド文字関数である。 この関数"
1288 "は I<stream> からワイド文字を 1 文字読み込み、これを返す。 ストリームの終端に"
1289 "達するか、I<ferror(stream)> が真になった場合には、 この関数は B<WEOF> を返"
1290 "す。 ワイド文字変換でエラーが発生した場合は、 I<errno> に B<EILSEQ> をセット"
1294 #: build/C/man3/fgetwc.3:52
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."
1300 "B<getwc>() 関数あるいはマクロは、 B<fgetwc>() と全く同じ動作をする。 この関"
1301 "数はマクロとして実装されるかもしれないので、引き数が複数回評価さ れるかもしれ"
1302 "ない。この関数を使う理由はもはや存在しない。"
1305 #: build/C/man3/fgetwc.3:64
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."
1310 "B<fgetwc>() 関数はストリームの次のワイド文字か、あるいは B<WEOF> を返す。 エ"
1311 "ラーが起こった場合、 I<errno> にエラーの原因を示す値が設定される。"
1314 #: build/C/man3/fgetwc.3:66 build/C/man3/fputwc.3:65
1315 msgid "Apart from the usual ones, there is"
1316 msgstr "通常のエラーに加えて、以下のエラーがある:"
1319 #: build/C/man3/fgetwc.3:66 build/C/man3/fputwc.3:65 build/C/man3/scanf.3:558
1325 #: build/C/man3/fgetwc.3:70
1327 "The data obtained from the input stream does not form a valid character."
1328 msgstr "入力ストリームから取得したデータが、正しい文字でない。"
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."
1336 #: build/C/man3/fgetwc.3:79
1338 "The behavior of B<fgetwc>() depends on the B<LC_CTYPE> category of the "
1341 "B<fgetwc>() の動作は、現在のロケールの B<LC_CTYPE> カテゴリに依存する。"
1344 #: build/C/man3/fgetwc.3:87
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."
1350 "B<fopen>(3) システムコールに渡す追加情報がない場合には、 B<fgetwc>() が実"
1351 "際 にはマルチバイトシーケンスをストリームから読み込み、これをワイド文字に 変"
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)"
1360 #: build/C/man3/flockfile.3:25
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
1375 #: build/C/man3/flockfile.3:28
1376 msgid "flockfile, ftrylockfile, funlockfile - lock FILE for stdio"
1377 msgstr "flockfile, ftrylockfile, funlockfile - 標準入出力 FILE のロックを行う"
1380 #: build/C/man3/flockfile.3:33
1382 msgid "B<void flockfile(FILE *>I<filehandle>B<);>\n"
1383 msgstr "B<void flockfile(FILE *>I<filehandle>B<);>\n"
1386 #: build/C/man3/flockfile.3:35
1388 msgid "B<int ftrylockfile(FILE *>I<filehandle>B<);>\n"
1389 msgstr "B<int ftrylockfile(FILE *>I<filehandle>B<);>\n"
1392 #: build/C/man3/flockfile.3:37
1394 msgid "B<void funlockfile(FILE *>I<filehandle>B<);>\n"
1395 msgstr "B<void funlockfile(FILE *>I<filehandle>B<);>\n"
1398 #: build/C/man3/flockfile.3:46 build/C/man3/wprintf.3:43
1399 msgid "All functions shown above:"
1403 #: build/C/man3/flockfile.3:49
1405 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE "
1408 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE "
1412 #: build/C/man3/flockfile.3:63
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."
1420 "標準入出力関数はスレッドセーフである。これは、各 I<FILE> オブジェクトに対し、"
1421 "ロック数 (lockcount) と (ロック数が 0 でない場合は) 所有者スレッド (owner "
1422 "thread) を管理することで実現される。 ライブラリの呼び出しが行われる毎に、標"
1423 "準入出力関数は I<FILE> オブジェクトが他のスレッドによってロックされていない状"
1424 "態になるまで待ち、 I<FILE> オブジェクトをロックし、要求されて入出力を行い、 "
1428 #: build/C/man3/flockfile.3:69
1430 "(Note: this locking has nothing to do with the file locking done by "
1431 "functions like B<flock>(2) and B<lockf>(3).)"
1433 "(注: このロックは、 B<flock>(2) や B<lockf>(3) といった関数が行うロックとは"
1437 #: build/C/man3/flockfile.3:77
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."
1445 "これらのことはすべて C プログラマには見えない部分で行われるが、 より細かい制"
1446 "御ができた方がよい理由が2つあるだろう。一つは、一つのスレッドが 行う一連の入"
1447 "出力動作は一緒に行われ、他のスレッドの入出力によって中断されない 方がよいとい"
1448 "うことであろう。もう一つは、効率を大きく上げるためには ロックのオーバヘッドを"
1449 "避ける必要があるということであろう。"
1452 #: build/C/man3/flockfile.3:94
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 "
1461 "この目的を実現するために、 I<FILE> オブジェクトのロック、一連の入出力動作の実"
1462 "行、 ロックの解除をスレッドが明示的に指示することができる。 これにより、他の"
1463 "スレッドが途中で入出力を行うのを防止する。 このようなことを行う理由が効率の向"
1464 "上であるならば、 ロックを行わないバージョンの標準入出力関数を使うこともでき"
1465 "る。 例えば、 B<getc>(3) や B<putc>(3) の代わりに B<getc_unlocked>(3) や "
1466 "B<putc_unlocked>(3) を使用する。"
1469 #: build/C/man3/flockfile.3:105
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."
1475 "B<flockfile>() 関数は、I<*filehandle> が他のスレッドにロックされていな い状"
1476 "態になるまで待ったのち、現在のスレッドを I<*filehandle> のオーナに設 定し、"
1480 #: build/C/man3/flockfile.3:109
1481 msgid "The B<funlockfile>() function decrements the lock count."
1482 msgstr "B<funlockfile>() 関数は、ロック数を減算する。"
1485 #: build/C/man3/flockfile.3:120
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."
1491 "B<ftrylockfile>() 関数は B<flockfile>() のブロッキングを行わない バージョン"
1492 "である。他のスレッドが I<*filehandle> をロックしている時は 何も行わず、そうで"
1493 "ない場合は I<*filehandle> の所有権を獲得し、 ロック数を加算する。"
1496 #: build/C/man3/flockfile.3:125
1498 "The B<ftrylockfile>() function returns zero for success (the lock was "
1499 "obtained), and nonzero for failure."
1501 "B<ftrylockfile>() 関数はロックに成功すると 0 を返し、 失敗した場合は 0 以外"
1505 #: build/C/man3/flockfile.3:127
1510 #: build/C/man3/flockfile.3:135
1512 "The B<flockfile>(), B<ftrylockfile>(), and B<funlockfile>() functions are "
1515 "関数 B<flockfile>(), B<ftrylockfile>(), B<funlockfile>() はスレッドセーフであ"
1519 #: build/C/man3/flockfile.3:137 build/C/man3/popen.3:174
1520 msgid "POSIX.1-2001."
1521 msgstr "POSIX.1-2001."
1524 #: build/C/man3/flockfile.3:137
1526 msgid "AVAILABILITY"
1530 #: build/C/man3/flockfile.3:141
1532 "These functions are available when B<_POSIX_THREAD_SAFE_FUNCTIONS> is "
1535 "B<_POSIX_THREAD_SAFE_FUNCTIONS> が定義されているときにこれらの関数を使用する"
1539 #: build/C/man3/flockfile.3:143
1540 msgid "B<unlocked_stdio>(3)"
1541 msgstr "B<unlocked_stdio>(3)"
1544 #: build/C/man3/fmemopen.3:10
1550 #: build/C/man3/fmemopen.3:10 build/C/man7/symlink.7:37
1556 #: build/C/man3/fmemopen.3:13
1557 msgid "fmemopen, open_memstream, open_wmemstream - open memory as stream"
1559 "fmemopen, open_memstream, open_wmemstream - メモリをストリームとしてオープン"
1563 #: build/C/man3/fmemopen.3:18
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"
1569 #: build/C/man3/fmemopen.3:20
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"
1575 #: build/C/man3/fmemopen.3:24
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"
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>():"
1586 #: build/C/man3/fmemopen.3:57
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 "
1593 "B<fmemopen>() 関数は、ストリームをオープンし、そのストリームに I<mode> で指"
1594 "定されたアクセス許可を設定する。 そのストリームを通じて、 I<buf> で指定された"
1595 "文字列やメモリバッファへの読み書きができる。 このバッファは少なくとも "
1596 "I<size> バイトの長さでなければならない。"
1599 #: build/C/man3/fmemopen.3:77
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 "
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> で指定した値) からの相対値となる。"
1622 #: build/C/man3/fmemopen.3:89
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."
1629 "書き込み用にオープンされたストリームをフラッシュ (B<fflush>(3)) やクローズ "
1630 "(B<fclose>(3)) した時に、 (バッファに空きがあれば) ヌルバイトがバッファの末"
1631 "尾に書き込まれる。 このようにするためには、呼び出し元は バッファに 1バイト余"
1632 "裕を作る (I<size> にこの 1バイトを含めた値を指定する) 必要がある。"
1634 #. See http://sourceware.org/bugzilla/show_bug.cgi?id=1995
1636 #. http://sources.redhat.com/ml/libc-alpha/2006-04/msg00064.html
1638 #: build/C/man3/fmemopen.3:107
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)>.)"
1647 "バッファに I<size> バイトよりたくさん書き込もうとした場合には、エラーとな"
1648 "る。 (デフォルトでは、このようなエラーが見えるのは I<stdio> バッファがフラッ"
1649 "シュされた時だけである。 I<setbuf(fp,\\ NULL)> を使ってバッファリングを無効に"
1650 "する方法は、 出力操作を行った時点でエラーを検出するのに役立つ。 別の方法とし"
1651 "ては、 I<setbuffer(fp, buf, size)> を使って、呼び出し側が明示的に stdio スト"
1652 "リームバッファとして I<buf> を指定し、バッファの指定時にバッファのサイズを "
1656 #: build/C/man3/fmemopen.3:115
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."
1663 "読み出し用にオープンされたストリームでは、 バッファ内にヌルバイト (\\(aq"
1664 "\\e0\\(aq) があっても 読み出し操作がファイル末尾 (end-of-file) を返すことはな"
1665 "い。 バッファからの読み出しでファイル末尾が返るのは、 ファイルポインタがバッ"
1666 "ファの先頭から I<size> バイトを越えて先に進もうとした場合だけである。"
1669 #: build/C/man3/fmemopen.3:130
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)."
1678 "I<buf> に NULL が指定された場合、 B<fmemopen>() は動的に I<size> バイトの長"
1679 "さのバッファを確保する。 この方法は、一時バッファにデータの書き込みを行ってか"
1680 "ら、 その内容を再度読み出すようなアプリケーションで有用である。 このバッファ"
1681 "はストリームがクローズされるときに自動的に解放される。 呼び出し元からはこの関"
1682 "数が割り当てた一時バッファへのポインタ値を 知る方法は存在しない点に注意 (下記"
1683 "の B<open_memstream>() も参照)。"
1686 #: build/C/man3/fmemopen.3:141
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."
1693 "B<open_memstream>() 関数は、バッファへの書き込み用にストリームをオープンす"
1694 "る。 バッファは (B<malloc>(3) を使って) 動的に割り当てられ、必要に応じて自動"
1695 "的に伸長する。 ストリームをクローズした後で、呼び出し元はこのバッファを "
1696 "B<free>(3) すべきである。"
1699 #: build/C/man3/fmemopen.3:156
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."
1708 "このストリームが クローズ (B<fclose>(3)) されたりフラッシュ (B<fflush>(3)) "
1709 "された時に、 I<ptr> と I<sizeloc> の値はそれぞれバッファへのポインタとそのサ"
1710 "イズに更新される。 これらの値は、呼び出し元がそのストリームに新たな書き込み"
1711 "を 行わない場合に限り有効である。 ストリームに書き込みを行った際には、これら"
1712 "の変数を参照する前に ストリームを再度フラッシュしなければならない。"
1715 #: build/C/man3/fmemopen.3:162
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>."
1720 "バッファ末尾のヌルバイトは保持される。 このヌルバイトは I<sizeloc> に格納され"
1724 #: build/C/man3/fmemopen.3:170
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."
1730 "ストリームのファイル位置は B<fseek>(3) や B<fseeko>(3) で変更できる。 すで"
1731 "にデータが書き込まれた領域の末尾より先にファイル位置を動かすと、 その間の領域"
1735 #: build/C/man3/fmemopen.3:176
1737 "The B<open_wmemstream>() is similar to B<open_memstream>(), but operates on "
1738 "wide characters instead of bytes."
1740 "B<open_wmemstream>() は B<open_memstream>() と同様だが、バイトではなくワイ"
1741 "ド文字に対して操作を行う点が異なる。"
1744 #: build/C/man3/fmemopen.3:188
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."
1750 "成功して終了した場合には、 B<fmemopen>(), B<open_memstream>(), "
1751 "B<open_wmemstream>() は I<FILE> ポインタを返す。 失敗した場合は、 NULL を返"
1752 "し、 I<errno> にエラーを示す値をセットする。"
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
1766 #: build/C/man3/fmemopen.3:195
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."
1771 "B<fmemopen>() と B<open_memstream>() は glibc 1.0.x ですでに利用可能であっ"
1772 "た。 B<open_wmemstream>() は glibc 2.4 以降で利用可能である。"
1775 #: build/C/man3/fmemopen.3:199
1777 "POSIX.1-2008. These functions are not specified in POSIX.1-2001, and are "
1778 "not widely available on other systems."
1780 "POSIX.1-2008. これらの関数は POSIX.1-2001 では規定れていないが、 Linux 以外"
1783 #. http://austingroupbugs.net/view.php?id=396
1785 #: build/C/man3/fmemopen.3:207
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."
1792 "POSIX.1-2008 では I<mode> の \\(aqb\\(aq は無視されるべきだと規定されて\n"
1793 "いる。一方、Technical Corrigendum (正誤表) 1 では、I<mode> の\n"
1794 "\\(aqb\\(aq が指定された場合の扱いは実装依存であることを許容するように\n"
1795 "標準規格が修正されており、glibc の \\(aqb\\(aq の扱いは許されている。"
1798 #: build/C/man3/fmemopen.3:213
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 "
1804 "これらの関数が返すファイルストリームに対応するファイル ディスクリプタはない "
1805 "(つまり、返されたストリームに対して B<fileno>(3) を呼び出すとエラーが返るこ"
1808 #. http://sourceware.org/bugzilla/show_bug.cgi?id=1996
1810 #: build/C/man3/fmemopen.3:220
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."
1816 "バージョン 2.7 より前の glibc では、 B<open_memstream>() で作成されたスト"
1817 "リームの末尾より先にファイル位置を動かしても、 バッファが伸長されず、 "
1818 "B<fseek>(3) が失敗し -1 が返る。"
1820 #. FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=11216
1822 #: build/C/man3/fmemopen.3:231
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."
1829 "I<size> に 0 が指定された場合、 B<fmemopen>() はエラー B<EINVAL> で失敗\n"
1830 "する。この場合にはストリームの作成に成功して、最初の読み出しを行った際に\n"
1831 "EOF (end of file) が返される方が、ストリームの扱いの一貫性が増すだろう。\n"
1832 "また、 POSIX.1-2008 ではこの場合のエラーは規定されていない。"
1834 #. FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=13152
1836 #: build/C/man3/fmemopen.3:239
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."
1843 "B<fmemopen>() に追記モード (\"a\" や \"a+\") を指定すると、\n"
1844 "ファイル位置の初期値は最初のヌルバイトに設定されるが、(ファイル\n"
1845 "オフセットをストリームの末尾以外の位置に再設定した場合)それ以降の\n"
1846 "書き込みではストリームの末尾への追記が行われる訳ではない。"
1848 #. FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=13151
1850 #: build/C/man3/fmemopen.3:255
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."
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 に設定される。"
1864 #. FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12836
1866 #: build/C/man3/fmemopen.3:268
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)."
1873 "B<fmemopen>() でバイナリモードを指定するには、\n"
1874 "\\(aqb\\(aq は I<mode> の I<2 文字目> でなければならない。\n"
1875 "例えば、 \"wb+\" は意図通りの効果になるが、 \"w+b\" はそうではない。\n"
1876 "これは B<fopen>(3) の I<mode> の扱いとは異なる。"
1878 #. http://sourceware.org/bugzilla/show_bug.cgi?id=6544
1880 #: build/C/man3/fmemopen.3:276
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>."
1885 "glibc 2.9 での B<fmemopen>() の「バイナリ」モードの追加は、\n"
1886 "ABI (Application Binary Interface) が黙って変更された。\n"
1887 "それ以前の B<fmemopen>() では I<mode> 内の \\(aqb\\(aq は無視されていた。"
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
1900 #: build/C/man3/fmemopen.3:286
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 "
1909 "このプログラムは B<fmemopen>() を使って出力バッファをオープンし、 "
1910 "B<open_memstream>() を使って動的にサイズが変化する出力バッファをオープンして"
1911 "いる。 (プログラムの第一コマンドライン引き数から取った) 入力文字列を スキャン"
1912 "して整数を読み込み、これらの整数の二乗を出力バッファに書き出す。 このプログラ"
1916 #: build/C/man3/fmemopen.3:291
1919 "$B< ./a.out \\(aq1 23 43\\(aq>\n"
1920 "size=11; ptr=1 529 1849\n"
1922 "$B< ./a.out \\(aq1 23 43\\(aq>\n"
1923 "size=11; ptr=1 529 1849\n"
1926 #: build/C/man3/fmemopen.3:293 build/C/man3/fopencookie.3:271
1927 #: build/C/man2/pipe.2:181
1929 msgid "Program source"
1933 #: build/C/man3/fmemopen.3:300
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"
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"
1947 #: build/C/man3/fmemopen.3:303
1950 "#define handle_error(msg) \\e\n"
1951 " do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1953 "#define handle_error(msg) \\e\n"
1954 " do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1957 #: build/C/man3/fmemopen.3:311
1961 "main(int argc, char *argv[])\n"
1963 " FILE *out, *in;\n"
1969 "main(int argc, char *argv[])\n"
1971 " FILE *out, *in;\n"
1977 #: build/C/man3/fmemopen.3:316
1980 " if (argc != 2) {\n"
1981 " fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
1982 " exit(EXIT_FAILURE);\n"
1985 " if (argc != 2) {\n"
1986 " fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
1987 " exit(EXIT_FAILURE);\n"
1991 #: build/C/man3/fmemopen.3:320
1994 " in = fmemopen(argv[1], strlen(argv[1]), \"r\");\n"
1995 " if (in == NULL)\n"
1996 " handle_error(\"fmemopen\");\n"
1998 " in = fmemopen(argv[1], strlen(argv[1]), \"r\");\n"
1999 " if (in == NULL)\n"
2000 " handle_error(\"fmemopen\");\n"
2003 #: build/C/man3/fmemopen.3:324
2006 " out = open_memstream(&ptr, &size);\n"
2007 " if (out == NULL)\n"
2008 " handle_error(\"open_memstream\");\n"
2010 " out = open_memstream(&ptr, &size);\n"
2011 " if (out == NULL)\n"
2012 " handle_error(\"open_memstream\");\n"
2015 #: build/C/man3/fmemopen.3:329
2019 " s = fscanf(in, \"%d\", &v);\n"
2020 " if (s E<lt>= 0)\n"
2024 " s = fscanf(in, \"%d\", &v);\n"
2025 " if (s E<lt>= 0)\n"
2029 #: build/C/man3/fmemopen.3:340
2032 " s = fprintf(out, \"%d \", v * v);\n"
2034 " handle_error(\"fprintf\");\n"
2038 " printf(\"size=%zu; ptr=%s\\en\", size, ptr);\n"
2040 " exit(EXIT_SUCCESS);\n"
2043 " s = fprintf(out, \"%d \", v * v);\n"
2045 " handle_error(\"fprintf\");\n"
2049 " printf(\"size=%zu; ptr=%s\\en\", size, ptr);\n"
2051 " exit(EXIT_SUCCESS);\n"
2055 #: build/C/man3/fmemopen.3:344
2056 msgid "B<fopen>(3), B<fopencookie>(3)"
2057 msgstr "B<fopen>(3), B<fopencookie>(3)"
2060 #: build/C/man3/fmtmsg.3:13
2066 #: build/C/man3/fmtmsg.3:16
2067 msgid "fmtmsg - print formatted error messages"
2068 msgstr "fmtmsg - 整形されたエラーメッセージを表示する"
2071 #: build/C/man3/fmtmsg.3:19
2073 msgid "B<#include E<lt>fmtmsg.hE<gt>>\n"
2074 msgstr "B<#include E<lt>fmtmsg.hE<gt>>\n"
2077 #: build/C/man3/fmtmsg.3:21
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"
2083 #: build/C/man3/fmtmsg.3:23
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"
2089 #: build/C/man3/fmtmsg.3:25
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"
2095 #: build/C/man3/fmtmsg.3:36
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 "
2102 "この関数は、引き数で記述されたメッセージを、 I<classification> 引き数で指定さ"
2103 "れたデバイス上に表示する。 I<stderr> に書き出されるメッセージのフォーマット"
2104 "は、 B<MSGVERB> 環境変数に依存する。"
2107 #: build/C/man3/fmtmsg.3:43
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."
2113 "I<label> 引き数はメッセージの発生源を識別する。 この文字列はコロンで区切られ"
2114 "た 2 つの部分から構成されていなければならない。 1 つ目の部分は 10 文字以内で"
2115 "なければならず、 2 つ目の部分は 14 文字以内でなければならない。"
2118 #: build/C/man3/fmtmsg.3:47
2119 msgid "The I<text> argument describes the condition of the error."
2120 msgstr "I<text> 引き数にはエラー条件を記述する。"
2123 #: build/C/man3/fmtmsg.3:52
2125 "The I<action> argument describes possible steps to recover from the error. "
2126 "If it is printed, it is prefixed by \"TO FIX: \"."
2128 "I<action> 引き数にはエラーから回復するために利用可能なステップを記述する。 こ"
2129 "れが表示される場合、\"TO FIX: \" が前に付く。"
2132 #: build/C/man3/fmtmsg.3:60
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."
2138 "I<tag> 引き数はより多くの情報を見つけるためのオンラインドキュメントへの参照で"
2139 "ある。 これは I<label> 値とユニークな識別番号を含んでいるべきである。"
2142 #: build/C/man3/fmtmsg.3:60
2144 msgid "Dummy arguments"
2148 #: build/C/man3/fmtmsg.3:79
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>."
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> の別"
2165 #: build/C/man3/fmtmsg.3:79
2167 msgid "The classification argument"
2168 msgstr "classification 引き数"
2171 #: build/C/man3/fmtmsg.3:83
2173 "The I<classification> argument is the sum of values describing 4 types of "
2175 msgstr "I<classification> 引き数は 4 種類の情報を記述する値の和である。"
2178 #: build/C/man3/fmtmsg.3:86
2179 msgid "The first value defines the output channel."
2180 msgstr "最初の値は出力チャンネルを定義する。"
2183 #: build/C/man3/fmtmsg.3:86
2186 msgstr "B<MM_PRINT>"
2189 #: build/C/man3/fmtmsg.3:90
2190 msgid "Output to I<stderr>."
2191 msgstr "I<stderr> に出力する。"
2194 #: build/C/man3/fmtmsg.3:90
2196 msgid "B<MM_CONSOLE>"
2197 msgstr "B<MM_CONSOLE>"
2200 #: build/C/man3/fmtmsg.3:93
2201 msgid "Output to the system console."
2202 msgstr "システムコンソールに出力する。"
2205 #: build/C/man3/fmtmsg.3:93
2207 msgid "B<MM_PRINT | MM_CONSOLE>"
2208 msgstr "B<MM_PRINT | MM_CONSOLE>"
2211 #: build/C/man3/fmtmsg.3:96
2212 msgid "Output to both."
2216 #: build/C/man3/fmtmsg.3:98
2217 msgid "The second value is the source of the error:"
2218 msgstr "2 番目の値はエラーの発生源である:"
2221 #: build/C/man3/fmtmsg.3:98
2227 #: build/C/man3/fmtmsg.3:101
2228 msgid "A hardware error occurred."
2229 msgstr "ハードウェアエラーが起こった。"
2232 #: build/C/man3/fmtmsg.3:101
2238 #: build/C/man3/fmtmsg.3:104
2239 msgid "A firmware error occurred."
2240 msgstr "ファームウェアエラーが起こった。"
2243 #: build/C/man3/fmtmsg.3:104
2249 #: build/C/man3/fmtmsg.3:107
2250 msgid "A software error occurred."
2251 msgstr "ソフトウェアエラーが起こった。"
2254 #: build/C/man3/fmtmsg.3:109
2255 msgid "The third value encodes the detector of the problem:"
2256 msgstr "3 番目の値は問題の検知を行ったものをエンコードする:"
2259 #: build/C/man3/fmtmsg.3:109
2265 #: build/C/man3/fmtmsg.3:112
2266 msgid "It is detected by an application."
2267 msgstr "アプリケーションによって検知された。"
2270 #: build/C/man3/fmtmsg.3:112
2276 #: build/C/man3/fmtmsg.3:115
2277 msgid "It is detected by a utility."
2278 msgstr "ユーティリティによって検知された。"
2281 #: build/C/man3/fmtmsg.3:115
2284 msgstr "B<MM_OPSYS>"
2287 #: build/C/man3/fmtmsg.3:118
2288 msgid "It is detected by the operating system."
2289 msgstr "オペレーティングシステムによって検知された。"
2292 #: build/C/man3/fmtmsg.3:120
2293 msgid "The fourth value shows the severity of the incident:"
2294 msgstr "4 番目の値は問題の重大度を表す:"
2297 #: build/C/man3/fmtmsg.3:120
2299 msgid "B<MM_RECOVER>"
2300 msgstr "B<MM_RECOVER>"
2303 #: build/C/man3/fmtmsg.3:123
2304 msgid "It is a recoverable error."
2305 msgstr "回復可能なエラーである。"
2308 #: build/C/man3/fmtmsg.3:123
2310 msgid "B<MM_NRECOV>"
2311 msgstr "B<MM_NRECOV>"
2314 #: build/C/man3/fmtmsg.3:126
2315 msgid "It is a nonrecoverable error."
2316 msgstr "回復不可能なエラーである。"
2319 #: build/C/man3/fmtmsg.3:126
2321 msgid "The severity argument"
2322 msgstr "severity 引き数"
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 つの値をとることができる。"
2330 #: build/C/man3/fmtmsg.3:130
2333 msgstr "B<MM_NOSEV>"
2336 #: build/C/man3/fmtmsg.3:133
2337 msgid "No severity is printed."
2338 msgstr "重大度は表示されない。"
2341 #: build/C/man3/fmtmsg.3:133
2347 #: build/C/man3/fmtmsg.3:136
2348 msgid "This value is printed as HALT."
2349 msgstr "この値は HALT として表示される。"
2352 #: build/C/man3/fmtmsg.3:136
2355 msgstr "B<MM_ERROR>"
2358 #: build/C/man3/fmtmsg.3:139
2359 msgid "This value is printed as ERROR."
2360 msgstr "この値は ERROR として表示される。"
2363 #: build/C/man3/fmtmsg.3:139
2365 msgid "B<MM_WARNING>"
2366 msgstr "B<MM_WARNING>"
2369 #: build/C/man3/fmtmsg.3:142
2370 msgid "This value is printed as WARNING."
2371 msgstr "この値は WARNING として表示される。"
2374 #: build/C/man3/fmtmsg.3:142
2380 #: build/C/man3/fmtmsg.3:145
2381 msgid "This value is printed as INFO."
2382 msgstr "この値は INFO として表示される。"
2385 #: build/C/man3/fmtmsg.3:152
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 "
2391 "数値の場合は 0 から 4 である。 B<addseverity>(3) または環境変数 "
2392 "B<SEV_LEVEL> を使うことにより、表示するレベルと文字列を更に追加できる。"
2395 #: build/C/man3/fmtmsg.3:154
2396 msgid "The function can return 4 values:"
2397 msgstr "関数は 4 つの値を返す:"
2400 #: build/C/man3/fmtmsg.3:154
2406 #: build/C/man3/fmtmsg.3:157
2407 msgid "Everything went smooth."
2411 #: build/C/man3/fmtmsg.3:157
2414 msgstr "B<MM_NOTOK>"
2417 #: build/C/man3/fmtmsg.3:160
2418 msgid "Complete failure."
2422 #: build/C/man3/fmtmsg.3:160
2425 msgstr "B<MM_NOMSG>"
2428 #: build/C/man3/fmtmsg.3:164
2429 msgid "Error writing to I<stderr>."
2430 msgstr "I<stderr> に書き込むときにエラーが起こった。"
2433 #: build/C/man3/fmtmsg.3:164
2436 msgstr "B<MM_NOCON>"
2439 #: build/C/man3/fmtmsg.3:167
2440 msgid "Error writing to the console."
2441 msgstr "コンソールに書き込むときにエラーが起こった。"
2444 #: build/C/man3/fmtmsg.3:167
2450 #: build/C/man3/fmtmsg.3:178
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\"."
2459 "環境変数 B<MSGVERB> (\"message verbosity\") は I<stderr> への出力の一部を抑制"
2460 "するのに使うことができる。 (コンソールへの出力には影響しない。) この変数が定"
2461 "義されて、NULL でなく、 コロンで区切られた有効なキーワードのリストである場"
2462 "合、 キーワードに対応するメッセージの一部のみが表示される。 有効なキーワード"
2463 "は \"label\", \"severity\", \"text\", \"action\", \"tag\" である。"
2466 #: build/C/man3/fmtmsg.3:190
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"
2473 "環境変数 B<SEV_LEVEL> は新しい重大度レベルを導入するのに使用できる。 デフォル"
2474 "トでは、上記の 5 つの重大度レベルのみが利用可能である。 他の数値の場合、 "
2475 "B<fmtmsg>() は何も表示しない。 B<fmtmsg>() を初めて呼び出す前に、ユーザが "
2479 #: build/C/man3/fmtmsg.3:193
2480 msgid "SEV_LEVEL=[description[:description[:...]]]"
2481 msgstr "SEV_LEVEL=[description[:description[:...]]]"
2484 #: build/C/man3/fmtmsg.3:198
2486 "in the environment of the process before the first call to B<fmtmsg>(), "
2487 "where each description is of the form"
2489 "のような形式でプロセスの環境に設定すると、 B<fmtmsg>() は (標準のレベル 0-4 "
2490 "に加えて) level に指定された値も受け付け、 そのようなレベルの問題が発生すると"
2491 "指定された printstring を表示する。 各 description は"
2494 #: build/C/man3/fmtmsg.3:201
2495 msgid "severity-keyword,level,printstring"
2496 msgstr "severity-keyword,level,printstring"
2499 #: build/C/man3/fmtmsg.3:208
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."
2507 #: build/C/man3/fmtmsg.3:222
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>()."
2516 "severity-keyword 部は B<fmtmsg>() に使用されないが、存在しなければならな"
2517 "い。 level 部は数値を文字列で表したものである。 数値は 4 より大きい値でなけれ"
2518 "ばならない。 この値は B<fmtmsg>() の severity 引き数で使用されなければなら"
2519 "ず、この重大度を選択する。 前もって宣言された重大度を上書きすることはできな"
2520 "い。 printstring は、 この重大度のメッセージが B<fmtmsg>() によって生成され"
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 で提供されている。"
2529 #: build/C/man3/fmtmsg.3:231
2531 "Before glibc 2.16, the B<fmtmsg>() function uses a static variable that is "
2532 "not protected, so it is not thread-safe."
2534 "glibc 2.16 より前のバージョンでは、 B<fmtmsg>() 関数は、 保護されていない静的"
2535 "な変数を使うため、 スレッドセーフではない。"
2537 #. Modified in commit 7724defcf8873116fe4efab256596861eef21a94
2539 #: build/C/man3/fmtmsg.3:237
2541 "Since glibc 2.16, the B<fmtmsg>() function uses a lock to protect the "
2542 "static variable, so it is thread-safe."
2544 "glibc 2.16 以降では、 B<fmtmsg>() 関数はロックを使って静的な変数を保護してお"
2548 #: build/C/man3/fmtmsg.3:252
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."
2554 "関数 B<fmtmsg>() と B<addseverity>(3) と環境変数 B<MSGVERB> と "
2555 "B<SEV_LEVEL> は System V に由来している。 関数 B<fmtmsg>() と環境変数 "
2556 "B<MSGVERB> は POSIX.1-2001 に記述されている。"
2559 #: build/C/man3/fmtmsg.3:256
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."
2565 "System V と UnixWare の man ページには、 「これらの関数は \"pfmt() と "
2566 "addsev()\" または \"pfmt(), vpfmt(), lfmt(), vlfmt()\" で置き換えられてお"
2567 "り、 将来は削除される予定である」と書かれている。"
2570 #: build/C/man3/fmtmsg.3:261
2573 "#include E<lt>stdio.hE<gt>\n"
2574 "#include E<lt>stdlib.hE<gt>\n"
2575 "#include E<lt>fmtmsg.hE<gt>\n"
2577 "#include E<lt>stdio.hE<gt>\n"
2578 "#include E<lt>stdlib.hE<gt>\n"
2579 "#include E<lt>fmtmsg.hE<gt>\n"
2582 #: build/C/man3/fmtmsg.3:267
2588 " long class = MM_PRINT | MM_SOFT | MM_OPSYS | MM_RECOVER;\n"
2594 " long class = MM_PRINT | MM_SOFT | MM_OPSYS | MM_RECOVER;\n"
2598 #: build/C/man3/fmtmsg.3:288
2601 " err = fmtmsg(class, \"util-linux:mount\", MM_ERROR,\n"
2602 " \"unknown mount option\", \"See mount(8).\",\n"
2603 " \"util-linux:mount:017\");\n"
2608 " printf(\"Nothing printed\\en\");\n"
2611 " printf(\"Nothing printed to stderr\\en\");\n"
2614 " printf(\"No console output\\en\");\n"
2617 " printf(\"Unknown error from fmtmsg()\\en\");\n"
2619 " exit(EXIT_SUCCESS);\n"
2622 " err = fmtmsg(class, \"util-linux:mount\", MM_ERROR,\n"
2623 " \"unknown mount option\", \"See mount(8).\",\n"
2624 " \"util-linux:mount:017\");\n"
2629 " printf(\"Nothing printed\\en\");\n"
2632 " printf(\"Nothing printed to stderr\\en\");\n"
2635 " printf(\"No console output\\en\");\n"
2638 " printf(\"Unknown error from fmtmsg()\\en\");\n"
2640 " exit(EXIT_SUCCESS);\n"
2644 #: build/C/man3/fmtmsg.3:291
2645 msgid "The output should be:"
2649 #: build/C/man3/fmtmsg.3:295
2652 " util-linux:mount: ERROR: unknown mount option\n"
2653 " TO FIX: See mount(8). util-linux:mount:017\n"
2655 " util-linux:mount: ERROR: unknown mount option\n"
2656 " TO FIX: See mount(8). util-linux:mount:017\n"
2659 #: build/C/man3/fmtmsg.3:298
2664 #: build/C/man3/fmtmsg.3:301
2666 msgid " MSGVERB=text:action; export MSGVERB\n"
2667 msgstr " MSGVERB=text:action; export MSGVERB\n"
2670 #: build/C/man3/fmtmsg.3:304
2671 msgid "the output becomes:"
2672 msgstr "を実行すると、次のようになる。"
2675 #: build/C/man3/fmtmsg.3:308
2678 " unknown mount option\n"
2679 " TO FIX: See mount(8).\n"
2681 " unknown mount option\n"
2682 " TO FIX: See mount(8).\n"
2685 #: build/C/man3/fmtmsg.3:312
2686 msgid "B<addseverity>(3), B<perror>(3)"
2687 msgstr "B<addseverity>(3), B<perror>(3)"
2690 #: build/C/man3/fopen.3:44
2696 #: build/C/man3/fopen.3:44
2702 #: build/C/man3/fopen.3:47
2703 msgid "fopen, fdopen, freopen - stream open functions"
2704 msgstr "fopen, fdopen, freopen - ストリームを開く関数"
2707 #: build/C/man3/fopen.3:52
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"
2713 #: build/C/man3/fopen.3:54
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"
2719 #: build/C/man3/fopen.3:56
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"
2725 #: build/C/man3/fopen.3:65
2727 "B<fdopen>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
2729 "B<fdopen>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
2732 #: build/C/man3/fopen.3:71
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."
2737 "B<fopen>() 関数は、 I<path> で指定された名前のファイルを開き、ストリームと結"
2741 #: build/C/man3/fopen.3:76
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):"
2746 "引数 I<mode> は、以下に続く文字のひとつから始まる文字列へのポインタであ\n"
2747 "る (以下の述べる、追加の文字が後に続くこともある):"
2750 #: build/C/man3/fopen.3:76
2756 #: build/C/man3/fopen.3:80
2758 "Open text file for reading. The stream is positioned at the beginning of "
2761 "テキストファイルを読み出すために開く。 ストリームはファイルの先頭に位置され"
2765 #: build/C/man3/fopen.3:80
2771 #: build/C/man3/fopen.3:84
2773 "Open for reading and writing. The stream is positioned at the beginning of "
2776 "読み出しおよび書き込みするために開く。 ストリームはファイルの先頭に位置され"
2780 #: build/C/man3/fopen.3:84
2786 #: build/C/man3/fopen.3:88
2788 "Truncate file to zero length or create text file for writing. The stream is "
2789 "positioned at the beginning of the file."
2791 "ファイルを書き込みのために開く。 ファイルが既に存在する場合には長さゼロに切り"
2792 "詰める。 ファイルがなかった場合には新たに作成する。 ストリームはファイルの先"
2796 #: build/C/man3/fopen.3:88
2802 #: build/C/man3/fopen.3:94
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 "
2808 "読み出しおよび書き込みのために開く。 ファイルが存在していない場合には新たに作"
2809 "成する。 存在している場合には長さゼロに切り詰められる。 ストリームはファイル"
2813 #: build/C/man3/fopen.3:94 build/C/man3/scanf.3:447
2819 #: build/C/man3/fopen.3:99
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."
2824 "追加 (ファイルの最後に書き込む) のために開く。 ファイルが存在していない場合に"
2825 "は新たに作成する。 ストリームはファイルの最後に位置される。"
2828 #: build/C/man3/fopen.3:99
2834 #: build/C/man3/fopen.3:105
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 "
2841 "読み出しおよび追加 (ファイルの最後に書き込む) のために開く。 ファイルが存在し"
2842 "ていない場合には新たに作成する。 読み出しの初期ファイル位置はファイルの先頭で"
2843 "あるが、 書き込みは常にファイルの最後に追加される。"
2846 #: build/C/man3/fopen.3:118
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 "
2857 "I<mode> 文字列には文字 \\(aqb\\(aq を追加指定することができ、 I<mode> 文字列"
2858 "の最後の文字として指定する。 上記のうち 2 文字のモードの場合には 2 つの文字の"
2859 "間に指定することもできる。 これは C89 との互換性のためだけに用意された もので"
2860 "あり、関数の実行に対してはいかなる影響も持たない。 すなわち、Linux を含む全て"
2861 "の POSIX 準拠システムでは、 この \\(aqb\\(aq は無視される。 (その他のシステム"
2862 "ではテキストファイルとバイナリファイルを別々に扱うものもあるので、 もしバイナ"
2863 "リファイルの入出力を行い、 そのプログラムが非 UNIX 環境へ移植されると予測する"
2864 "なら、 \\(aqb\\(aqを付けておくのは良い考えである)"
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 による拡張の詳細については下記の「注意」を参照。"
2872 #: build/C/man3/fopen.3:126
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))."
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) を見よ)。"
2883 #: build/C/man3/fopen.3:141
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)."
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)> を その副次的効果である同期のためだけに呼べば良"
2907 #: build/C/man3/fopen.3:146
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:"
2913 "ファイルを追加モード (I<mode> の最初の文字を B<a> にする) で開くと、\n"
2914 "このストリームに対する書き込み操作は全て (先に以下の呼び出しを行った\n"
2915 "かのように) ファイルの末尾で行われる。"
2918 #: build/C/man3/fopen.3:149
2920 msgid " fseek(stream, 0, SEEK_END);\n"
2921 msgstr " fseek(stream, 0, SEEK_END);\n"
2924 #: build/C/man3/fopen.3:171
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."
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>() を行ったときの結果は定義されていない。"
2946 #: build/C/man3/fopen.3:189
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>)."
2955 "B<freopen>() 関数は I<path> で名前が指定されたファイルを開き、 I<stream> で"
2956 "指定されたストリームに、そのファイルを結びつける。 もとのストリームは (もし存"
2957 "在する場合には) 閉じられる。 I<mode> 引数は B<fopen>() 関数と同じ形で使われ"
2958 "る。 B<freopen>() 関数の主な用途は、標準テキストストリーム (I<stderr>, "
2959 "I<stdin>, I<stdout>) と対応付けられているファイルを変更することである。"
2962 #: build/C/man3/fopen.3:201
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."
2968 "B<fopen>(), B<fdopen>(), B<freopen>() は成功すると I<FILE> 型のポインタを返"
2969 "す。 失敗すると NULL が返され、 I<errno> がエラーを示す値にセットされる。"
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
2987 #: build/C/man3/fopen.3:212
2989 "The I<mode> provided to B<fopen>(), B<fdopen>(), or B<freopen>() was "
2992 "B<fopen>(), B<fdopen>(), B<freopen>() で与えられた I<mode> が不適切である。"
2995 #: build/C/man3/fopen.3:222
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)."
3000 "B<fopen>(), B<fdopen>(), B<freopen>() 関数は B<malloc>(3) ルーチンで規定さ"
3001 "れているエラーでも失敗することがあり、 その時は対応する値に I<errno> をセット"
3005 #: build/C/man3/fopen.3:229
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)."
3010 "B<fopen>() 関数は B<open>(2) ルーチンで規定されているエラーでも失敗すること"
3011 "があり、 その時は対応する値に I<errno> をセットする。"
3014 #: build/C/man3/fopen.3:236
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)."
3019 "B<fdopen>() 関数は B<fcntl>(2) ルーチンで規定されているエラーでも失敗するこ"
3020 "とがあり、 その時は対応する値に I<errno> をセットする。"
3023 #: build/C/man3/fopen.3:246
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)."
3028 "B<freopen>() 関数は B<open>(2), B<fclose>(3), B<fflush>(3) 各ルーチンで規定"
3029 "されているエラーでも失敗することがあり、 その時は対応する値に I<errno> をセッ"
3033 #: build/C/man3/fopen.3:255
3035 "The B<fopen>() and B<freopen>() functions conform to C89. The "
3036 "B<fdopen>() function conforms to POSIX.1-1990."
3038 "B<fopen>() 関数と B<freopen>() 関数は C89に準拠している。 B<fdopen>() 関数"
3039 "は POSIX.1-1990 に準拠している。"
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
3050 #: build/C/man3/fopen.3:259
3052 "The GNU C library allows the following extensions for the string specified "
3055 "GNU C ライブラリでは、 I<mode> に指定できる文字列として、以下の拡張が行われて"
3059 #: build/C/man3/fopen.3:259
3061 msgid "B<c> (since glibc 2.3.3)"
3062 msgstr "B<c> (glibc 2.3.3 以降)"
3065 #: build/C/man3/fopen.3:266
3067 "Do not make the open operation, or subsequent read and write operations, "
3068 "thread cancellation points. This flag is ignored for B<fdopen>()."
3070 "open 操作、それに続く read/write 操作の、 スレッドの取り消しポイント\n"
3071 "(cancellation points) を作成しない。\n"
3072 "このフラグは B<fdopen>() では無視される。"
3075 #: build/C/man3/fopen.3:266
3077 msgid "B<e> (since glibc 2.7)"
3078 msgstr "B<e> (glibc 2.7 以降)"
3081 #: build/C/man3/fopen.3:276
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>()."
3086 "B<O_CLOEXEC> フラグを有効にしてファイルをオープンする。詳細は\n"
3087 "B<open>(2) を参照。このフラグは B<fdopen>() では無視される。"
3090 #: build/C/man3/fopen.3:276
3092 msgid "B<m> (since glibc 2.3)"
3093 msgstr "B<m> (glibc 2.3 以降)"
3097 #: build/C/man3/fopen.3:288
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."
3103 "I/O システムコール (B<read>(2), B<write>(2)) ではなく、 B<mmap>(2) を使って"
3104 "ファイルにアクセスしようとする。 B<mmap>(2) を使おうとするのは、読み出し用に"
3105 "オープンするファイルについてだけである。"
3108 #: build/C/man3/fopen.3:288 build/C/man3/scanf.3:421
3114 #. FIXME . C11 specifies this flag
3116 #: build/C/man3/fopen.3:305
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>()."
3122 "ファイルを排他的にオープンする (B<open>(2) の B<O_EXCL> フラグと同様)。 ファ"
3123 "イルがすでに存在する場合、 B<fopen>() は失敗し、 I<errno> に B<EEXIST> が"
3124 "セットされる。 このフラグは B<fdopen>() では無視される。"
3127 #: build/C/man3/fopen.3:313
3129 "In addition to the above characters, B<fopen>() and B<freopen>() support "
3130 "the following syntax in I<mode>:"
3133 "B<fopen>() と B<freopen>() では I<mode> に\n"
3134 "以下の書式を 指定することができる。"
3137 #: build/C/man3/fopen.3:315
3138 msgid "B< ,ccs=>I<string>"
3139 msgstr "B< ,ccs=>I<string>"
3142 #: build/C/man3/fopen.3:331
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."
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 "符号化文字集合との変換を行う関数が読み込まれる。"
3162 #. FIXME . http://sourceware.org/bugzilla/show_bug.cgi?id=12685
3164 #: build/C/man3/fopen.3:348
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>."
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> しか解釈されない。"
3181 #: build/C/man3/fopen.3:354
3183 "B<open>(2), B<fclose>(3), B<fileno>(3), B<fmemopen>(3), B<fopencookie>(3)"
3185 "B<open>(2), B<fclose>(3), B<fileno>(3), B<fmemopen>(3), B<fopencookie>(3)"
3188 #: build/C/man3/fopencookie.3:26
3191 msgstr "FOPENCOOKIE"
3194 #: build/C/man3/fopencookie.3:26
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
3212 #: build/C/man3/fopencookie.3:29
3213 msgid "fopencookie - opening a custom stream"
3217 #: build/C/man3/fopencookie.3:36
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"
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"
3227 #: build/C/man3/fopencookie.3:49
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."
3237 #: build/C/man3/fopencookie.3:51
3238 msgid "In order to create a custom stream the programmer must:"
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
3261 #: build/C/man3/fopencookie.3:54
3263 "Implement four \"hook\" functions that are used internally by the standard I/"
3264 "O library when performing I/O on the stream."
3268 #: build/C/man3/fopencookie.3:65
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."
3279 #: build/C/man3/fopencookie.3:70
3281 "Call B<fopencookie>() to open a new stream and associate the cookie and "
3282 "hook functions with that stream."
3286 #: build/C/man3/fopencookie.3:78
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."
3294 #: build/C/man3/fopencookie.3:85
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 "
3303 #: build/C/man3/fopencookie.3:101
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."
3311 #: build/C/man3/fopencookie.3:107
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"
3319 #: build/C/man3/fopencookie.3:116
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"
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"
3337 #: build/C/man3/fopencookie.3:120
3338 msgid "The four fields are as follows:"
3342 #: build/C/man3/fopencookie.3:120
3344 msgid "I<cookie_read_function_t *read>"
3345 msgstr "I<cookie_read_function_t *read>"
3348 #: build/C/man3/fopencookie.3:124
3350 "This function implements read operations for the stream. When called, it "
3351 "receives three arguments:"
3355 #: build/C/man3/fopencookie.3:126
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"
3361 #: build/C/man3/fopencookie.3:141
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."
3371 #: build/C/man3/fopencookie.3:146
3373 "If I<*read> is a null pointer, then reads from the custom stream always "
3374 "return end of file."
3378 #: build/C/man3/fopencookie.3:146
3380 msgid "I<cookie_write_function_t *write>"
3381 msgstr "I<cookie_write_function_t *write>"
3384 #: build/C/man3/fopencookie.3:150
3386 "This function implements write operations for the stream. When called, it "
3387 "receives three arguments:"
3391 #: build/C/man3/fopencookie.3:152
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"
3397 #: build/C/man3/fopencookie.3:168
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."
3407 #: build/C/man3/fopencookie.3:173
3408 msgid "If I<*write> is a null pointer, then output to the stream is discarded."
3412 #: build/C/man3/fopencookie.3:173
3414 msgid "I<cookie_seek_function_t *seek>"
3415 msgstr "I<cookie_seek_function_t *seek>"
3418 #: build/C/man3/fopencookie.3:177
3420 "This function implements seek operations on the stream. When called, it "
3421 "receives three arguments:"
3425 #: build/C/man3/fopencookie.3:179
3427 msgid " int seek(void *cookie, off64_t *offset, int whence);\n"
3428 msgstr " int seek(void *cookie, off64_t *offset, int whence);\n"
3431 #: build/C/man3/fopencookie.3:185
3433 "The I<*offset> argument specifies the new file offset depending on which of "
3434 "the following three values is supplied in I<whence>:"
3438 #: build/C/man3/fopencookie.3:186 build/C/man2/lseek.2:67
3441 msgstr "B<SEEK_SET>"
3444 #: build/C/man3/fopencookie.3:191
3446 "The stream offset should be set I<*offset> bytes from the start of the "
3451 #: build/C/man3/fopencookie.3:191 build/C/man2/lseek.2:72
3454 msgstr "B<SEEK_CUR>"
3457 #: build/C/man3/fopencookie.3:195
3458 msgid "I<*offset> should be added to the current stream offset."
3462 #: build/C/man3/fopencookie.3:195 build/C/man2/lseek.2:77
3465 msgstr "B<SEEK_END>"
3468 #: build/C/man3/fopencookie.3:199
3470 "The stream offset should be set to the size of the stream plus I<*offset>."
3474 #: build/C/man3/fopencookie.3:206
3476 "Before returning, the I<seek> function should update I<*offset> to indicate "
3477 "the new stream offset."
3481 #: build/C/man3/fopencookie.3:210
3483 "As its function result, the I<seek> function should return 0 on success, and "
3488 #: build/C/man3/fopencookie.3:215
3490 "If I<*seek> is a null pointer, then it is not possible to perform seek "
3491 "operations on the stream."
3495 #: build/C/man3/fopencookie.3:215
3497 msgid "I<cookie_close_function_t *close>"
3498 msgstr "I<cookie_close_function_t *close>"
3501 #: build/C/man3/fopencookie.3:221
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 "
3509 #: build/C/man3/fopencookie.3:223
3511 msgid " int close(void *cookie);\n"
3512 msgstr " int close(void *cookie);\n"
3515 #: build/C/man3/fopencookie.3:228
3517 "The I<cookie> argument is the cookie that the programmer supplied when "
3518 "calling B<fopencookie>()."
3522 #: build/C/man3/fopencookie.3:234
3524 "As its function result, the I<close> function should return 0 on success, "
3525 "and B<EOF> on error."
3529 #: build/C/man3/fopencookie.3:238
3531 "If I<*close> is NULL, then no special action is performed when the stream is "
3536 #. It's not clear if errno ever gets set...
3538 #: build/C/man3/fopencookie.3:245
3540 "On success B<fopencookie>() returns a pointer to the new stream. On error, "
3545 #: build/C/man3/fopencookie.3:247
3546 msgid "This function is a nonstandard GNU extension."
3550 #: build/C/man3/fopencookie.3:256
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:"
3561 #: build/C/man3/fopencookie.3:264
3564 "$B< ./a.out \\(aqhello world\\(aq>\n"
3568 "Reached end of file\n"
3570 "$B< ./a.out \\(aqhello world\\(aq>\n"
3574 "Reached end of file\n"
3577 #: build/C/man3/fopencookie.3:271
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 "
3586 #: build/C/man3/fopencookie.3:280
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"
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"
3604 #: build/C/man3/fopencookie.3:282
3606 msgid "#define INIT_BUF_SIZE 4\n"
3607 msgstr "#define INIT_BUF_SIZE 4\n"
3610 #: build/C/man3/fopencookie.3:289
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"
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"
3628 #: build/C/man3/fopencookie.3:295
3632 "memfile_write(void *c, const char *buf, size_t size)\n"
3634 " char *new_buff;\n"
3635 " struct memfile_cookie *cookie = c;\n"
3638 "memfile_write(void *c, const char *buf, size_t size)\n"
3640 " char *new_buff;\n"
3641 " struct memfile_cookie *cookie = c;\n"
3644 #: build/C/man3/fopencookie.3:297
3646 msgid " /* Buffer too small? Keep doubling size until big enough */\n"
3647 msgstr " /* Buffer too small? Keep doubling size until big enough */\n"
3650 #: build/C/man3/fopencookie.3:307
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"
3658 " cookie-E<gt>allocated *= 2;\n"
3659 " cookie-E<gt>buf = new_buff;\n"
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"
3668 " cookie-E<gt>allocated *= 2;\n"
3669 " cookie-E<gt>buf = new_buff;\n"
3674 #: build/C/man3/fopencookie.3:309
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"
3680 #: build/C/man3/fopencookie.3:313
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"
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"
3692 #: build/C/man3/fopencookie.3:316
3702 #: build/C/man3/fopencookie.3:322
3706 "memfile_read(void *c, char *buf, size_t size)\n"
3708 " ssize_t xbytes;\n"
3709 " struct memfile_cookie *cookie = c;\n"
3712 "memfile_read(void *c, char *buf, size_t size)\n"
3714 " ssize_t xbytes;\n"
3715 " struct memfile_cookie *cookie = c;\n"
3718 #: build/C/man3/fopencookie.3:324
3720 msgid " /* Fetch minimum of bytes requested and bytes available */\n"
3721 msgstr " /* Fetch minimum of bytes requested and bytes available */\n"
3724 #: build/C/man3/fopencookie.3:330
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"
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"
3740 #: build/C/man3/fopencookie.3:332
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"
3746 #: build/C/man3/fopencookie.3:336
3749 " cookie-E<gt>offset += xbytes;\n"
3753 " cookie-E<gt>offset += xbytes;\n"
3758 #: build/C/man3/fopencookie.3:342
3762 "memfile_seek(void *c, off64_t *offset, int whence)\n"
3764 " off64_t new_offset;\n"
3765 " struct memfile_cookie *cookie = c;\n"
3768 "memfile_seek(void *c, off64_t *offset, int whence)\n"
3770 " off64_t new_offset;\n"
3771 " struct memfile_cookie *cookie = c;\n"
3774 #: build/C/man3/fopencookie.3:351
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"
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"
3796 #: build/C/man3/fopencookie.3:354
3799 " if (new_offset E<lt> 0)\n"
3802 " if (new_offset E<lt> 0)\n"
3806 #: build/C/man3/fopencookie.3:359
3809 " cookie-E<gt>offset = new_offset;\n"
3810 " *offset = new_offset;\n"
3814 " cookie-E<gt>offset = new_offset;\n"
3815 " *offset = new_offset;\n"
3820 #: build/C/man3/fopencookie.3:364
3824 "memfile_close(void *c)\n"
3826 " struct memfile_cookie *cookie = c;\n"
3829 "memfile_close(void *c)\n"
3831 " struct memfile_cookie *cookie = c;\n"
3834 #: build/C/man3/fopencookie.3:368
3837 " free(cookie-E<gt>buf);\n"
3838 " cookie-E<gt>allocated = 0;\n"
3839 " cookie-E<gt>buf = NULL;\n"
3841 " free(cookie-E<gt>buf);\n"
3842 " cookie-E<gt>allocated = 0;\n"
3843 " cookie-E<gt>buf = NULL;\n"
3846 #: build/C/man3/fopencookie.3:371
3856 #: build/C/man3/fopencookie.3:387
3860 "main(int argc, char *argv[])\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"
3869 " struct memfile_cookie mycookie;\n"
3873 " char buf[1000];\n"
3876 "main(int argc, char *argv[])\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"
3885 " struct memfile_cookie mycookie;\n"
3889 " char buf[1000];\n"
3892 #: build/C/man3/fopencookie.3:389
3894 msgid " /* Set up the cookie before calling fopencookie() */\n"
3895 msgstr " /* Set up the cookie before calling fopencookie() */\n"
3898 #: build/C/man3/fopencookie.3:395
3901 " mycookie.buf = malloc(INIT_BUF_SIZE);\n"
3902 " if (mycookie.buf == NULL) {\n"
3903 " perror(\"malloc\");\n"
3904 " exit(EXIT_FAILURE);\n"
3907 " mycookie.buf = malloc(INIT_BUF_SIZE);\n"
3908 " if (mycookie.buf == NULL) {\n"
3909 " perror(\"malloc\");\n"
3910 " exit(EXIT_FAILURE);\n"
3914 #: build/C/man3/fopencookie.3:399
3917 " mycookie.allocated = INIT_BUF_SIZE;\n"
3918 " mycookie.offset = 0;\n"
3919 " mycookie.endpos = 0;\n"
3921 " mycookie.allocated = INIT_BUF_SIZE;\n"
3922 " mycookie.offset = 0;\n"
3923 " mycookie.endpos = 0;\n"
3926 #: build/C/man3/fopencookie.3:405
3929 " fp = fopencookie(&mycookie,\"w+\", memfile_func);\n"
3930 " if (fp == NULL) {\n"
3931 " perror(\"fopencookie\");\n"
3932 " exit(EXIT_FAILURE);\n"
3935 " fp = fopencookie(&mycookie,\"w+\", memfile_func);\n"
3936 " if (fp == NULL) {\n"
3937 " perror(\"fopencookie\");\n"
3938 " exit(EXIT_FAILURE);\n"
3942 #: build/C/man3/fopencookie.3:407
3944 msgid " /* Write command-line arguments to our file */\n"
3945 msgstr " /* Write command-line arguments to our file */\n"
3948 #: build/C/man3/fopencookie.3:413
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"
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"
3964 #: build/C/man3/fopencookie.3:415
3966 msgid " /* Read two bytes out of every five, until EOF */\n"
3967 msgstr " /* Read two bytes out of every five, until EOF */\n"
3970 #: build/C/man3/fopencookie.3:430
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"
3978 " nread = fread(buf, 1, 2, fp);\n"
3979 " if (nread == -1) {\n"
3980 " perror(\"fread\");\n"
3981 " exit(EXIT_FAILURE);\n"
3983 " if (nread == 0) {\n"
3984 " printf(\"Reached end of file\\en\");\n"
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"
3993 " nread = fread(buf, 1, 2, fp);\n"
3994 " if (nread == -1) {\n"
3995 " perror(\"fread\");\n"
3996 " exit(EXIT_FAILURE);\n"
3998 " if (nread == 0) {\n"
3999 " printf(\"Reached end of file\\en\");\n"
4004 #: build/C/man3/fopencookie.3:433
4007 " printf(\"/%.*s/\\en\", nread, buf);\n"
4010 " printf(\"/%.*s/\\en\", nread, buf);\n"
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
4018 " exit(EXIT_SUCCESS);\n"
4021 " exit(EXIT_SUCCESS);\n"
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)"
4030 #: build/C/man3/fpurge.3:25
4036 #: build/C/man3/fpurge.3:25
4042 #: build/C/man3/fpurge.3:28
4043 msgid "fpurge, __fpurge - purge a stream"
4044 msgstr "fpurge, __fpurge - ストリームを一掃 (purge) する"
4047 #: build/C/man3/fpurge.3:32
4050 "/* unsupported */\n"
4051 "B<#include E<lt>stdio.hE<gt>>\n"
4053 "/* unsupported */\n"
4054 "B<#include E<lt>stdio.hE<gt>>\n"
4057 #: build/C/man3/fpurge.3:34
4059 msgid "B<int fpurge(FILE *>I<stream>B<);>\n"
4060 msgstr "B<int fpurge(FILE *>I<stream>B<);>\n"
4063 #: build/C/man3/fpurge.3:37
4067 "B<#include E<lt>stdio.hE<gt>>\n"
4070 "B<#include E<lt>stdio.hE<gt>>\n"
4073 #: build/C/man3/fpurge.3:39
4075 msgid "B<#include E<lt>stdio_ext.hE<gt>>\n"
4076 msgstr "B<#include E<lt>stdio_ext.hE<gt>>\n"
4079 #: build/C/man3/fpurge.3:41
4081 msgid "B<void __fpurge(FILE *>I<stream>B<);>\n"
4082 msgstr "B<void __fpurge(FILE *>I<stream>B<);>\n"
4085 #: build/C/man3/fpurge.3:54
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 "
4093 "B<fpurge>() 関数は、与えられたストリームのバッファをクリアする。 出力スト"
4094 "リームでこれを行うと、書き出されていない出力は捨てられる。 入力ストリームでこ"
4095 "れを行うと、 下層にあるオブジェクトから読み込まれ B<getc>(3) による取得を"
4096 "待っている入力が、すべて捨てられる。 これには B<ungetc>(3) によって戻された"
4097 "テキストも含まれる。 B<fflush>(3) も参照のこと。"
4100 #: build/C/man3/fpurge.3:58
4102 "The function B<__fpurge>() does precisely the same, but without returning a "
4104 msgstr "B<__fpurge>() 関数も全く同じことを行うが、ただし返り値を返さない。"
4107 #: build/C/man3/fpurge.3:65
4109 "Upon successful completion B<fpurge>() returns 0. On error, it returns -1 "
4110 "and sets I<errno> appropriately."
4112 "成功すると B<fpurge>() は 0 を返す。 エラーが起こると -1 を返し、 I<errno> "
4116 #: build/C/man3/fpurge.3:70
4117 msgid "I<stream> is not an open stream."
4118 msgstr "I<stream> がオープンされていない。"
4121 #: build/C/man3/fpurge.3:78
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 "
4128 "これらの関数は標準ではなく、よって移植性もない。 B<fpurge>() 関数は 4.4BSD "
4129 "で導入されたが、Linux では利用できない。 B<__fpurge>() 関数は Solaris で導入"
4130 "され、glibc 2.1.95 以降には存在している。"
4133 #: build/C/man3/fpurge.3:80
4134 msgid "Usually it is a mistake to want to discard input buffers."
4135 msgstr "通常は入力バッファを捨てようとするのは間違っている。"
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)"
4144 #: build/C/man3/fputwc.3:16
4150 #: build/C/man3/fputwc.3:19
4151 msgid "fputwc, putwc - write a wide character to a FILE stream"
4152 msgstr "fputwc, putwc - ワイド文字を FILE ストリームに書き込む"
4155 #: build/C/man3/fputwc.3:27
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"
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"
4165 #: build/C/man3/fputwc.3:43
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>."
4173 "B<fputwc>() 関数は、 B<fputc>(3) に対応するワイド文字関数である。この 関数"
4174 "は、ワイド文字 I<wc> を I<stream> に書き込む。 I<ferror(stream)> が真になる"
4175 "と、この関数は B<WEOF> を返す。 ワイド文字変換でエラーが発生した場合は、 "
4176 "I<errno> に B<EILSEQ> をセットし、 B<WEOF> を返す。 それ以外の場合では、この"
4180 #: build/C/man3/fputwc.3:51
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."
4186 "B<putwc>() 関数あるいはマクロは、 B<fputwc>() と全く同じ動作をする。 この関"
4187 "数はマクロとして実装されるかもしれないので、引き数が複数回評価さ れるかもしれ"
4188 "ない。この関数を使う理由はもはや存在しない。"
4191 #: build/C/man3/fputwc.3:63
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 "
4197 "B<fputwc>() 関数は、エラーが起きなければ I<wc> を返す。エラーの場合には "
4198 "B<WEOF> が返り、 I<errno> にエラーの原因を示す値が設定される。"
4201 #: build/C/man3/fputwc.3:68
4202 msgid "Conversion of I<wc> to the stream's encoding fails."
4203 msgstr "I<wc> からストリームの符号への変換に失敗した。"
4206 #: build/C/man3/fputwc.3:77
4208 "The behavior of B<fputwc>() depends on the B<LC_CTYPE> category of the "
4210 msgstr "B<fputwc>() の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存する。"
4213 #: build/C/man3/fputwc.3:85
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>."
4219 "B<fopen>(3) システムコールに渡す追加情報がない場合には、 B<fputwc>() は 実"
4220 "際にはワイド文字 I<wc> に対応するマルチバイトシーケンスを書き込むと 期待して"
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)"
4229 #: build/C/man3/fread.3:45
4235 #: build/C/man3/fread.3:45
4241 #: build/C/man3/fread.3:48
4242 msgid "fread, fwrite - binary stream input/output"
4243 msgstr "fread, fwrite - バイナリストリームの入出力"
4246 #: build/C/man3/fread.3:54
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"
4252 #: build/C/man3/fread.3:57
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"
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"
4262 #: build/C/man3/fread.3:69
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 "
4268 "B<fread>() 関数は I<stream> ポインタで指定されたストリームから I<nmemb> 個の"
4269 "データを読み込み、 I<ptr> で与えられた場所に格納する。 個々のデータは "
4270 "I<size> バイトの長さを持つ。"
4273 #: build/C/man3/fread.3:80
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>."
4279 "B<fwrite>() 関数は I<ptr> で指定された場所から得た I<nmemb> 個のデータを、 "
4280 "I<stream> ポインタで指定されたストリームに書き込む。 個々のデータは I<size> "
4284 #: build/C/man3/fread.3:96
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)."
4291 "成功すると、 B<fread>() と B<fwrite>() は読み書きを行った要素の個数を返す。\n"
4292 "I<size> が 1 の場合は、この数字は転送されたバイト数と等しい。\n"
4293 "エラーが生じた場合や、ファイルの末尾 (end-of-file) に達した場合、\n"
4294 "返り値は指定した個数よりも小さい値 (または 0) となる。"
4297 #: build/C/man3/fread.3:103
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."
4302 "B<fread>() は end-of-file とエラーを区別しないので、 どちらが生じたかを判断"
4303 "するためには、 呼び出し側で B<feof>(3) と B<ferror>(3) とを使用しなければな"
4307 #: build/C/man3/fread.3:105
4308 msgid "C89, POSIX.1-2001."
4309 msgstr "C89, POSIX.1-2001."
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)"
4315 "B<read>(2), B<write>(2), B<feof>(3), B<ferror>(3), B<unlocked_stdio>(3)"
4318 #: build/C/man3/fseek.3:42
4324 #: build/C/man3/fseek.3:42 build/C/man3/perror.3:31
4330 #: build/C/man3/fseek.3:45
4331 msgid "fgetpos, fseek, fsetpos, ftell, rewind - reposition a stream"
4332 msgstr "fgetpos, fseek, fsetpos, ftell, rewind - ストリームの位置を変更する"
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<);>"
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<);>"
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<);>"
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<);>"
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<);>"
4360 #: build/C/man3/fseek.3:81
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."
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) 関数で戻したデータはな"
4381 #: build/C/man3/fseek.3:87
4383 "The B<ftell>() function obtains the current value of the file position "
4384 "indicator for the stream pointed to by I<stream>."
4386 "B<ftell>() 関数は I<stream> によって指定されたストリームにおける、ファイル位"
4390 #: build/C/man3/fseek.3:94
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:"
4395 "B<rewind>() 関数は I<stream> によって指定されたストリームにおいて、ファイル"
4396 "位置表示子 をファイルの先頭にセットする。この関数は以下と等価である。"
4399 #: build/C/man3/fseek.3:97
4400 msgid "(void) fseek(stream, 0L, SEEK_SET)"
4401 msgstr "(void) fseek(stream, 0L, SEEK_SET)"
4404 #: build/C/man3/fseek.3:101
4406 "except that the error indicator for the stream is also cleared (see "
4409 "ただし B<rewind>() ではストリームに対するエラー表示子 (error indicator) も同"
4410 "時に クリアされる ( B<clearerr>(3) を見よ)。"
4413 #: build/C/man3/fseek.3:121
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."
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 "ル位置を変更する方法のうち、移植性のある唯一のもの になっている場合もある。"
4431 #: build/C/man3/fseek.3:136
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."
4438 "B<rewind>() は返り値を持たない。 B<fgetpos>(), B<fseek>(), B<fsetpos>() は"
4439 "成功すると 0 を返す。 B<ftell>() は現在のオフセットを返す。失敗した場合は返"
4440 "り値は -1 となり、 I<errno> にエラーを示す値がセットされる。"
4443 #: build/C/man3/fseek.3:142
4444 msgid "The I<stream> specified is not a seekable stream."
4445 msgstr "指定した I<stream> がシークできない。"
4448 #: build/C/man3/fseek.3:154
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."
4453 "B<fseek>() 関数に対して与えた I<whence> 引数が B<SEEK_SET>, B<SEEK_END>, "
4454 "B<SEEK_CUR> 以外の値であった。 または、更新後のファイルオフセットが負になって"
4458 #: build/C/man3/fseek.3:169
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)."
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> が設定され"
4470 #: build/C/man3/fseek.3:174
4471 msgid "B<lseek>(2), B<fseeko>(3)"
4472 msgstr "B<lseek>(2), B<fseeko>(3)"
4475 #: build/C/man3/fseeko.3:25
4481 #: build/C/man3/fseeko.3:25
4487 #: build/C/man3/fseeko.3:28
4488 msgid "fseeko, ftello - seek to or report file position"
4489 msgstr "fseeko, ftello - ファイル位置を探す/報告する"
4492 #: build/C/man3/fseeko.3:33
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"
4498 #: build/C/man3/fseeko.3:36
4501 "B<off_t ftello(FILE *>I<stream>B<);>\n"
4504 "B<off_t ftello(FILE *>I<stream>B<);>\n"
4508 #: build/C/man3/fseeko.3:45
4509 msgid "B<fseeko>(), B<ftello>():"
4510 msgstr "B<fseeko>(), B<ftello>():"
4513 #: build/C/man3/fseeko.3:50
4515 "_FILE_OFFSET_BITS\\ ==\\ 64 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || "
4516 "_XOPEN_SOURCE\\ E<gt>=\\ 600"
4518 "_FILE_OFFSET_BITS\\ ==\\ 64 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || "
4519 "_XOPEN_SOURCE\\ E<gt>=\\ 600"
4522 #: build/C/man3/fseeko.3:52
4523 msgid "(defining the obsolete _LARGEFILE_SOURCE macro also works)"
4524 msgstr "(廃止予定のマクロ _LARGEFILE_SOURCE を指定しても動作する)"
4527 #: build/C/man3/fseeko.3:75
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>."
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> になっている。"
4540 #: build/C/man3/fseeko.3:88
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."
4546 "いくつかのアーキテクチャーでは、 I<off_t> と I<long> の両方が 32 ビット型だ"
4547 "が、 (「どの」ヘッダーファイルをインクルードするよりも前に) "
4548 "B<_FILE_OFFSET_BITS> を値 64 で定義すると、 I<off_t> が 64 ビット型になる。"
4551 #: build/C/man3/fseeko.3:97
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."
4557 "成功した場合、 B<fseeko>() は 0 を、 B<ftello>() は現在のオフセットを返"
4558 "す。 失敗した場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
4561 #: build/C/man3/fseeko.3:100
4562 msgid "See the ERRORS in B<fseek>(3)."
4563 msgstr "B<fseek>(3) の「エラー」の節を参照。"
4566 #: build/C/man3/fseeko.3:102
4567 msgid "These functions are available under glibc since version 2.1."
4568 msgstr "これらの関数はバージョン 2.1 以降の glibc で利用可能である。"
4571 #: build/C/man3/fseeko.3:104
4572 msgid "SUSv2, POSIX.1-2001."
4573 msgstr "SUSv2, POSIX.1-2001."
4576 #: build/C/man3/fseeko.3:106
4577 msgid "These functions are found on System V-like systems."
4578 msgstr "これらの関数は System-V 風のシステムに存在する。"
4581 #: build/C/man3/fseeko.3:108
4583 msgstr "B<fseek>(3)"
4586 #: build/C/man3/getline.3:26
4592 #: build/C/man3/getline.3:29
4593 msgid "getline, getdelim - delimited string input"
4594 msgstr "getline, getdelim - 区切り文字までの文字列入力を読み込む"
4597 #: build/C/man3/getline.3:34
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"
4603 #: build/C/man3/getline.3:37
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"
4609 #: build/C/man3/getline.3:47
4610 msgid "B<getline>(), B<getdelim>():"
4611 msgstr "B<getline>(), B<getdelim>():"
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"
4619 #: build/C/man3/getline.3:65
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."
4625 "B<getline>() は I<stream> から 1 行全てを読み込み、テキストが含まれている"
4626 "バッファのアドレスを I<*lineptr> に格納する。 バッファはヌル文字 (\\e0) で終"
4627 "端される。 改行文字が見つかった場合は、改行文字もバッファに格納される。"
4630 #: build/C/man3/getline.3:77
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."
4636 "I<*lineptr> が NULL にセットされ、 I<*n> が呼び出し前に 0 にセットされた場"
4637 "合、 B<getline>() は行の内容を格納するためのバッファを確保する。 このバッ"
4638 "ファは、 B<getline>() が失敗した場合であっても、ユーザーのプログラムで解放す"
4642 #: build/C/man3/getline.3:95
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."
4649 "別の方法として、 B<getline>() を呼び出す際に、 I<*lineptr> に B<malloc>(3) "
4650 "で確保した大きさ I<*n> バイトのバッファへのポインタを入れて渡すこともでき"
4651 "る。 読み込んだ行を保持するのに十分なバッファがない場合、 B<getline>() は "
4652 "B<realloc>(3) を使ってバッファのサイズを変更し、必要に応じて I<*lineptr> と "
4656 #: build/C/man3/getline.3:101
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."
4661 "どちらの場合でも、呼び出しに成功したときには、 I<*lineptr> と I<*n> がバッ"
4662 "ファのアドレスと割り当てたサイズを反映した値に更新される。"
4665 #: build/C/man3/getline.3:112
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."
4672 "B<getdelim>() は B<getline>() と同じように動作するが、改行文字以外の区切り"
4673 "文字を引き数 I<delim> に指定することができる。 B<getline>() と同様に、ファイ"
4674 "ル終端に達するまでに入力行に区切り文字が見付からない場合は、 区切り文字をバッ"
4678 #: build/C/man3/getline.3:121
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."
4685 "成功した場合、 B<getline>() と B<getdelim>() は読み込んだ文字数を返す。 文"
4686 "字数には区切り文字は含まれるが、終端に使うヌルバイト (\\(aq\\e0\\(aq) は含ま"
4687 "れない。 この値によって、読み込んだ行に含まれるヌルバイトを操作することができ"
4691 #: build/C/man3/getline.3:127
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."
4696 "どちらの関数も、行の読み込みに失敗した場合には -1 を返す (ファイルの終端に達"
4697 "した場合にも -1 を返す)。 エラーが発生した場合には、 I<errno> にエラーの原因"
4701 #: build/C/man3/getline.3:137
4702 msgid "Bad arguments (I<n> or I<lineptr> is NULL, or I<stream> is not valid)."
4704 "引き数が不正である (I<n> または I<lineptr> が NULL である。 もしくは "
4705 "I<stream> が有効でない)。"
4708 #: build/C/man3/getline.3:144
4710 "Both B<getline>() and B<getdelim>() were originally GNU extensions. They "
4711 "were standardized in POSIX.1-2008."
4713 "B<getline>() と B<getdelim>() は、どちらも元は GNU による拡張であったが、 "
4714 "POSIX.1-2008 で標準化された。"
4717 #: build/C/man3/getline.3:149
4720 "#define _GNU_SOURCE\n"
4721 "#include E<lt>stdio.hE<gt>\n"
4722 "#include E<lt>stdlib.hE<gt>\n"
4724 "#define _GNU_SOURCE\n"
4725 "#include E<lt>stdio.hE<gt>\n"
4726 "#include E<lt>stdlib.hE<gt>\n"
4729 #: build/C/man3/getline.3:157
4736 " char *line = NULL;\n"
4737 " size_t len = 0;\n"
4744 " char *line = NULL;\n"
4745 " size_t len = 0;\n"
4749 #: build/C/man3/getline.3:161
4752 " fp = fopen(\"/etc/motd\", \"r\");\n"
4753 " if (fp == NULL)\n"
4754 " exit(EXIT_FAILURE);\n"
4756 " fp = fopen(\"/etc/motd\", \"r\");\n"
4757 " if (fp == NULL)\n"
4758 " exit(EXIT_FAILURE);\n"
4761 #: build/C/man3/getline.3:166
4764 " while ((read = getline(&line, &len, fp)) != -1) {\n"
4765 " printf(\"Retrieved line of length %zu :\\en\", read);\n"
4766 " printf(\"%s\", line);\n"
4769 " while ((read = getline(&line, &len, fp)) != -1) {\n"
4770 " printf(\"Retrieved line of length %zu :\\en\", read);\n"
4771 " printf(\"%s\", line);\n"
4775 #: build/C/man3/getline.3:171
4780 " exit(EXIT_SUCCESS);\n"
4785 " exit(EXIT_SUCCESS);\n"
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)"
4794 #: build/C/man3/gets.3:29
4800 #: build/C/man3/gets.3:29
4806 #: build/C/man3/gets.3:32
4807 msgid "gets - get a string from standard input (DEPRECATED)"
4808 msgstr "gets - 標準入力からの文字列を取得する (非推奨)"
4811 #: build/C/man3/gets.3:37
4813 msgid "B<char *gets(char *>I<s>B<);>\n"
4814 msgstr "B<char *gets(char *>I<s>B<);>\n"
4817 #: build/C/man3/gets.3:40
4818 msgid "I<Never use this function>."
4819 msgstr "I<この関数は使用しないこと>。"
4822 #: build/C/man3/gets.3:50
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 "
4829 "B<gets>() は、改行文字か B<EOF> までの 1行を I<stdin> から読み込み I<s> が指"
4830 "すバッファに格納する (末尾の改行文字や B<EOF> はヌルバイト (\\(aq\\e0\\(aq) "
4831 "に置き換えられる)。 バッファオーバーランのチェックは行われない (下記の「バ"
4835 #: build/C/man3/gets.3:58
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 "
4842 "B<gets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込んでいないのに"
4843 "ファイルの終わりになった 場合に NULL を返す。 しかし、バッファの行き過ぎの"
4844 "チェックが行われないため、この関数が返るという保証はない。"
4847 #: build/C/man3/gets.3:72
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."
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> が定義され"
4859 "場合、glibc ヘッダファイルでは B<gets>)() の宣言が公開されない。"
4862 #: build/C/man3/gets.3:86
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."
4870 "B<gets>() は絶対に使用してはならない。 前もってデータを知ることなしに "
4871 "B<gets>() が何文字読むかを知ることはできず、 B<gets>() がバッファの終わりを"
4872 "越えて書き込み続けるため、 B<gets>() を使うのは極めて危険である。 これを利用"
4873 "してコンピュータのセキュリティが破られてきた。 代わりに B<fgets>() を使うこ"
4877 #: build/C/man3/gets.3:90
4879 "For more information, see CWE-242 (aka \"Use of Inherently Dangerous Function"
4880 "\") at http://cwe.mitre.org/data/definitions/242.html"
4882 "詳しい情報については、CWE-242 (別名 \"Use of Inherently Dangerous Function"
4883 "\" (「本質的に危険な関数を使う」)) を参照。 http://cwe.mitre.org/data/"
4884 "definitions/242.html で参照できる。"
4887 #: build/C/man3/gets.3:108
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)"
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)"
4900 #: build/C/man3/getw.3:25
4906 #: build/C/man3/getw.3:25
4912 #: build/C/man3/getw.3:28
4913 msgid "getw, putw - input and output of words (ints)"
4914 msgstr "getw, putw - ワード(int)の入出力"
4917 #: build/C/man3/getw.3:33
4919 msgid "B<int getw(FILE *>I<stream>B<);>\n"
4920 msgstr "B<int getw(FILE *>I<stream>B<);>\n"
4923 #: build/C/man3/getw.3:35
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"
4929 #: build/C/man3/getw.3:44
4930 msgid "B<getw>(), B<putw>():"
4931 msgstr "B<getw>(), B<putw>():"
4934 #: build/C/man3/getw.3:47
4936 msgid "Since glibc 2.3.3:"
4937 msgstr "glibc 2.3.3 以降:"
4940 #: build/C/man3/getw.3:50
4941 msgid "_SVID_SOURCE || _BSD_SOURCE ||"
4942 msgstr "_SVID_SOURCE || _BSD_SOURCE ||"
4945 #: build/C/man3/getw.3:53
4948 "(_XOPEN_SOURCE &&\n"
4949 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600))\n"
4951 "(_XOPEN_SOURCE &&\n"
4952 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600))\n"
4955 #: build/C/man3/getw.3:53
4957 msgid "Before glibc 2.3.3:"
4958 msgstr "glibc 2.3.3 より前:"
4961 #: build/C/man3/getw.3:56
4962 msgid "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE"
4963 msgstr "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE"
4966 #: build/C/man3/getw.3:66
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."
4971 "B<getw>() は I<stream> からワード (I<int>型) を読み込む。 この関数は、SVr4 "
4972 "との互換性のために提供されている。 この関数の代わりに B<fread>(3) を使用する"
4976 #: build/C/man3/getw.3:73
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) "
4982 "B<putw>() は I<stream> にワード I<w> (I<int>型) を書き込む。 この関数は "
4983 "SVr4 との互換性のために提供されているが、この関数の代わりに B<fwrite>(3) を"
4987 #: build/C/man3/getw.3:80
4989 "Normally, B<getw>() returns the word read, and B<putw>() returns 0. On "
4990 "error, they return B<EOF>."
4992 "通常、 B<getw>() は読み込んだワードを返し、 B<putw>() は 0 を返す。 エラー"
4993 "が発生した場合、これらの関数は B<EOF> を返す。"
4996 #: build/C/man3/getw.3:83
4997 msgid "SVr4, SUSv2. Not present in POSIX.1-2001."
4998 msgstr "SVr4, SUSv2. POSIX.1-2001 には存在しない。"
5001 #: build/C/man3/getw.3:87
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."
5006 "エラーの時に返される値は、正しいデータとして返されることもある。 "
5007 "B<ferror>(3) を用いると、この二つの場合を区別することが出来る。"
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)"
5015 #: build/C/man2/link.2:32
5021 #: build/C/man2/link.2:35
5022 msgid "link, linkat - make a new name for a file"
5023 msgstr "link, linkat - ファイルの新しい名前を作成する"
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
5030 msgid "B<#include E<lt>unistd.hE<gt>>\n"
5031 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
5034 #: build/C/man2/link.2:40
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"
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
5044 "B<#include E<lt>fcntl.hE<gt> >/* Definition of AT_* constants */\n"
5045 "B<#include E<lt>unistd.hE<gt>>\n"
5047 "B<#include E<lt>fcntl.hE<gt> >/* AT_* 定数の定義 */\n"
5048 "B<#include E<lt>unistd.hE<gt>>\n"
5051 #: build/C/man2/link.2:46
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"
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"
5061 #: build/C/man2/link.2:54
5062 msgid "B<linkat>():"
5063 msgstr "B<linkat>():"
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"
5072 #: build/C/man2/link.2:69
5074 "B<link>() creates a new link (also known as a hard link) to an existing "
5077 "B<link>() は存在するファイルへの新しいリンク (link) (ハードリンク (hard "
5078 "link) ともいう) を作成する。"
5081 #: build/C/man2/link.2:75
5082 msgid "If I<newpath> exists, it will I<not> be overwritten."
5083 msgstr "I<newpath> が存在する場合には、上書きはI<されない>。"
5086 #: build/C/man2/link.2:80
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\"."
5092 "この新しい名前は全ての操作において古い名前と完全に同じように使用される; 両方"
5093 "の名前は同じファイルを参照しており (それで同じ許可 (permission) や所有者 "
5094 "(ownership) となるので)、 どちらの名前が本来のものであるか判別できない。"
5097 #: build/C/man2/link.2:80
5103 #: build/C/man2/link.2:86
5105 "The B<linkat>() system call operates in exactly the same way as B<link>(), "
5106 "except for the differences described here."
5108 "B<linkat>() システムコールは B<link>() と全く同様に動作するが、以下で説明する"
5112 #: build/C/man2/link.2:96
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)."
5119 "I<oldpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスクリ"
5120 "プター I<olddirfd> が参照するディレクトリに対する相対パスと解釈される "
5121 "(B<link>(2) に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
5122 "ワーキングディレクトリに対する相対パスではない)。"
5125 #: build/C/man2/link.2:108
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>())."
5131 "I<oldpath> で指定されたパス名が相対パスで、 I<olddirfd> が特別な値 "
5132 "B<AT_FDCWD> の場合、 (B<link>(2) と同様に) I<oldpath> は呼び出したプロセスの"
5133 "カレントワーキングディレクトリに対する相対パスと解釈される。"
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."
5139 "I<oldpath> で指定されたパス名が絶対パスの場合、 I<olddirfd> は無視される。"
5142 #: build/C/man2/link.2:122 build/C/man2/rename.2:166
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>."
5148 "I<newpath> の解釈は I<oldpath> と同じである。 相対パスのパス名がファイルディ"
5149 "スクリプター I<newdirfd> が参照するディレクトリと解釈される点だけが異なる。"
5152 #: build/C/man2/link.2:125
5153 msgid "The following values can be bitwise ORed in I<flags>:"
5154 msgstr "以下の値のビット単位の論理和を I<flags> に指定できる。"
5157 #: build/C/man2/link.2:125
5159 msgid "B<AT_EMPTY_PATH> (since Linux 2.6.39)"
5160 msgstr "B<AT_EMPTY_PATH> (Linux 2.6.39 以降)"
5162 #. commit 11a7b371b64ef39fc5fb1b6f2218eef7c4d035e3
5163 #. Before glibc 2.16, defining _ATFILE_SOURCE sufficed
5165 #: build/C/man2/link.2:152
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."
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> を定義すること。"
5186 #: build/C/man2/link.2:152
5188 msgid "B<AT_SYMLINK_FOLLOW> (since Linux 2.6.18)"
5189 msgstr "B<AT_SYMLINK_FOLLOW> (Linux 2.6.18 以降)"
5192 #: build/C/man2/link.2:171
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:"
5200 "B<linkat>() は (B<link>() 同様) デフォルトでは I<oldpath> がシンボリックリン"
5201 "クの場合リンクの展開を行わない。 フラグ B<AT_SYMLINK_FOLLOW> を I<flags> に指"
5202 "定することができ、指定した場合 I<oldpath> がシンボリックリンクの場合リンクの"
5203 "展開が行われる。 procfs がマウントされている場合、これは B<AT_EMPTY_PATH> の"
5204 "代替として以下のように使うことができる。"
5207 #: build/C/man2/link.2:176
5210 "linkat(AT_FDCWD, \"/proc/self/fd/E<lt>fdE<gt>\", newdirfd,\n"
5211 " newname, AT_SYMLINK_FOLLOW);\n"
5213 "linkat(AT_FDCWD, \"/proc/self/fd/E<lt>fdE<gt>\", newdirfd,\n"
5214 " newname, AT_SYMLINK_FOLLOW);\n"
5217 #: build/C/man2/link.2:182
5219 "Before kernel 2.6.18, the I<flags> argument was unused, and had to be "
5222 "カーネル 2.6.18 より前では、 I<flags> 引き数は未使用で、 0 を指定しなければな"
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) を参照。"
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
5235 "On success, zero is returned. On error, -1 is returned, and I<errno> is set "
5238 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
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
5251 #: build/C/man2/link.2:204
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).)"
5257 "I<newpath> を含んでいるディレクトリへの書き込みが許されていないか、 "
5258 "I<oldpath> または I<newpath> へのディレクトリのどれかに検索許可がない "
5259 "(B<path_resolution>(7) を参照)。"
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
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."
5272 "ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。"
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
5282 #: build/C/man2/link.2:211
5283 msgid "I<newpath> already exists."
5284 msgstr "I<newpath> が既に存在する。"
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
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."
5301 "I<oldpath> や I<newpath> がアクセス可能なアドレス空間の外を指している。"
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
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 エラーが発生した。"
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
5327 #: build/C/man2/link.2:221 build/C/man2/rename.2:265
5329 "Too many symbolic links were encountered in resolving I<oldpath> or "
5332 "I<oldpath> または I<newpath> を解決する際に遭遇したシンボリックリンクが多過ぎ"
5336 #: build/C/man2/link.2:221 build/C/man2/rename.2:265
5342 #: build/C/man2/link.2:226
5344 "The file referred to by I<oldpath> already has the maximum number of links "
5347 "I<oldpath> によって参照されるファイルは 既に最大数までのリンクを持っている。"
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
5354 msgid "B<ENAMETOOLONG>"
5355 msgstr "B<ENAMETOOLONG>"
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> が長過ぎる。"
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
5374 #: build/C/man2/link.2:234
5376 "A directory component in I<oldpath> or I<newpath> does not exist or is a "
5377 "dangling symbolic link."
5379 "I<oldpath> または I<newpath> のディレクトリ部分が存在しないか、 壊れた"
5380 "(dangling)シンボリックリンクである。"
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
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 "十分なカーネルメモリーがない。"
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
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."
5411 "そのファイルを含んでいるデバイスに新しいディレクトリエントリを 作成するための"
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
5426 #: build/C/man2/link.2:246
5428 "A component used as a directory in I<oldpath> or I<newpath> is not, in fact, "
5431 "I<oldpath> または I<newpath> のディレクトリ部分が、実際には、ディレクトリでな"
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
5444 #: build/C/man2/link.2:250
5445 msgid "I<oldpath> is a directory."
5446 msgstr "I<oldpath> がディレクトリである。"
5449 #: build/C/man2/link.2:255
5451 "The filesystem containing I<oldpath> and I<newpath> does not support the "
5452 "creation of hard links."
5454 "I<oldpath> と I<newpath> を含んでいるファイルシステムがハードリンクをサポート"
5458 #: build/C/man2/link.2:255
5460 msgid "B<EPERM> (since Linux 3.6)"
5461 msgstr "B<EPERM> (Linux 3.6 以降)"
5464 #: build/C/man2/link.2:262
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))."
5469 "呼び出し元にこのファイルへのハードリンクを作成する許可がなかった (B<proc>(5) "
5470 "の I</proc/sys/fs/protected_hardlinks> の説明を参照)。"
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
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 "ファイルが読み込み専用のファイルシステムに存在する。"
5486 #: build/C/man2/link.2:265 build/C/man2/rename.2:336
5492 #: build/C/man2/link.2:273
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 "
5499 "I<oldpath> と I<newpath> が同じマウントされたファイルシステムに存在しない。 "
5500 "(Linux は 1 つのファイルシステムを複数のマウント位置に マウントすることを許可"
5501 "している。 しかし B<link>() は、たとえ同じファイルシステムであっても、 別々"
5502 "のマウント位置を跨いでは動作しない。)"
5505 #: build/C/man2/link.2:276
5506 msgid "The following additional errors can occur for B<linkat>():"
5507 msgstr "B<linkat>() では以下のエラーも発生する。"
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> が有効なファイルディスクリプタでない。"
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> に指定された。"
5520 #: build/C/man2/link.2:294
5522 "B<AT_EMPTY_PATH> was specified in I<flags>, but the caller did not have the "
5523 "B<CAP_DAC_READ_SEARCH> capability."
5525 "B<AT_EMPTY_PATH> が I<flags> に指定されたが、呼び出し元が "
5526 "B<CAP_DAC_READ_SEARCH> ケーパビリティを持っていなかった。"
5529 #: build/C/man2/link.2:299
5531 "An attempt was made to link to the I</proc/self/fd/NN> file corresponding to "
5532 "a file descriptor created with"
5534 "以下の呼び出しで作成されたファイルディスクリプターに対応する I</proc/self/fd/"
5535 "NN> ファイルに対してリンクを行おおうとした。"
5538 #: build/C/man2/link.2:301
5540 msgid " open(path, O_TMPFILE | O_EXCL, mode);\n"
5541 msgstr " open(path, O_TMPFILE | O_EXCL, mode);\n"
5544 #: build/C/man2/link.2:304
5545 msgid "See B<open>(2)."
5546 msgstr "B<open>(2) 参照。"
5549 #: build/C/man2/link.2:315
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."
5555 "I<oldpath> が相対パス名で、 I<olddirfd> が削除されたディレクトリを参照してい"
5556 "る。 または、 I<newpath> が相対パス名で、 I<newdirfd> が削除されたディレクト"
5560 #: build/C/man2/link.2:325 build/C/man2/rename.2:365
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>"
5565 "I<oldpath> が相対パスで、 I<olddirfd> がディレクトリ以外のファイルを参照して"
5566 "いる。または I<newpath> と I<newdirfd> に関して同じ状況である。"
5569 #: build/C/man2/link.2:334
5571 "B<AT_EMPTY_PATH> was specified in I<flags>, I<oldpath> is an empty string, "
5572 "and I<olddirfd> refers to a directory."
5574 "I<flags> に B<AT_EMPTY_PATH> が指定され、 I<oldpath> が空文字列で、 "
5575 "I<olddirfd> がディレクトリを参照している。"
5578 #: build/C/man2/link.2:338
5580 "B<linkat>() was added to Linux in kernel 2.6.16; library support was added "
5581 "to glibc in version 2.4."
5583 "B<linkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポー"
5584 "トはバージョン 2.4 で glibc に追加された。"
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.
5590 #: build/C/man2/link.2:344
5591 msgid "B<link>(): SVr4, 4.3BSD, POSIX.1-2001 (but see NOTES), POSIX.1-2008."
5593 "B<link>(): SVr4, 4.3BSD, POSIX.1-2001 (但し「注意」を参照), POSIX.1-2008."
5596 #: build/C/man2/link.2:347
5597 msgid "B<linkat>(): POSIX.1-2008."
5598 msgstr "B<linkat>(): POSIX.1-2008."
5601 #: build/C/man2/link.2:354
5603 "Hard links, as created by B<link>(), cannot span filesystems. Use "
5604 "B<symlink>(2) if this is required."
5606 "B<link>() でファイルシステムを超えてハードリンクを作成することはできない。 "
5607 "このような場合は B<symlink>(2) を使用すること。"
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
5615 #: build/C/man2/link.2:385
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)."
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) を使用すること。"
5639 #: build/C/man2/link.2:405
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."
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> のシンボリックリンクに基づいて"
5654 #: build/C/man2/link.2:411
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."
5660 "NFS ファイルシステムでは、NFS サーバーがリンクを作成した後に、 それを伝える前"
5661 "に死んだ場合には返り値が不正な場合がある。 リンクが作成できたかどうか見つける"
5662 "ためには B<stat>(2) を使用すること。"
5665 #: build/C/man2/link.2:420
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)"
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)"
5674 #: build/C/man2/llseek.2:28
5680 #: build/C/man2/llseek.2:28
5686 #: build/C/man2/llseek.2:31
5687 msgid "_llseek - reposition read/write file offset"
5688 msgstr "_llseek - ファイルの読み書きオフセットの位置を変える"
5691 #: build/C/man2/llseek.2:35
5694 "B<#include E<lt>sys/types.hE<gt>>\n"
5695 "B<#include E<lt>unistd.hE<gt>>\n"
5697 "B<#include E<lt>sys/types.hE<gt>>\n"
5698 "B<#include E<lt>unistd.hE<gt>>\n"
5701 #: build/C/man2/llseek.2:39
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"
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"
5713 #: build/C/man2/llseek.2:43
5714 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
5716 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
5720 #: build/C/man2/llseek.2:62
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>."
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> 引き数に返す。"
5737 #: build/C/man2/llseek.2:69
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."
5742 "成功した場合は、 B<_llseek>() は 0 を返す。 そうでなれば -1 という値が返り、"
5743 "エラーを示す I<errno> が設定される。"
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> がオープンされたファイルディスクリプタでない。"
5751 #: build/C/man2/llseek.2:77
5752 msgid "Problem with copying results to user space."
5753 msgstr "結果をユーザ空間にコピーするときに問題があった。"
5756 #: build/C/man2/llseek.2:81
5757 msgid "I<whence> is invalid."
5758 msgstr "I<whence> が不正である。"
5761 #: build/C/man2/llseek.2:84
5763 "This function is Linux-specific, and should not be used in programs intended "
5766 "この関数は Linux 特有であり、移植性の必要なプログラムでは使用してはいけない。"
5769 #: build/C/man2/llseek.2:87
5771 "Glibc does not provide a wrapper for this system call; call it using "
5774 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
5775 "B<syscall>(2) を使って呼び出すこと。"
5778 #: build/C/man2/llseek.2:90
5779 msgid "B<lseek>(2), B<lseek64>(3)"
5780 msgstr "B<lseek>(2), B<lseek64>(3)"
5783 #: build/C/man2/lseek.2:47
5789 #: build/C/man2/lseek.2:47 build/C/man2/open_by_handle_at.2:25
5795 #: build/C/man2/lseek.2:50
5796 msgid "lseek - reposition read/write file offset"
5797 msgstr "lseek - ファイルの読み書きオフセットの位置を変える"
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>>"
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>>"
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<);>"
5816 #: build/C/man2/lseek.2:67
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:"
5822 "B<lseek>() 関数は、ファイルディスクリプタ (descriptor) I<fd> に対応するオー"
5823 "プンされたファイルのオフセットを、 I<whence> に基づき I<offset> 引き数の位置"
5827 #: build/C/man2/lseek.2:72
5828 msgid "The offset is set to I<offset> bytes."
5829 msgstr "オフセットは I<offset> バイトに設定される。"
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> バイトを足した位置になる。"
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> バイトを足した位置になる。"
5842 #: build/C/man2/lseek.2:90
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 "
5850 "B<lseek>() 関数は、オフセットをファイルの末尾を越えた位置に設定できる (但"
5851 "し、これによりファイルのサイズが変わらない)。 もしデータがこのオフセット位置"
5852 "以降に書き込まれた場合、 間の空隙の部分 (\"穴 (hole)\") の読み出しがあると、 "
5853 "実際にそこにデータを書き込まれるまではヌルバイト (\\(aq\\e0\\(aq) の列が返さ"
5857 #: build/C/man2/lseek.2:90
5859 msgid "Seeking file data and holes"
5860 msgstr "ファイルのデータとホールの探索"
5863 #: build/C/man2/lseek.2:93
5865 "Since version 3.1, Linux supports the following additional values for "
5868 "Linux バージョン 3.1 以降では、 I<whence> に以下の値も指定することができる。"
5871 #: build/C/man2/lseek.2:93
5873 msgid "B<SEEK_DATA>"
5874 msgstr "B<SEEK_DATA>"
5877 #: build/C/man2/lseek.2:104
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>."
5883 "ファイルオフセットを I<offset> 以上で次にデータがある位置に設定する。 "
5884 "I<offset> がデータを指している場合には、 ファイルオフセットは I<offset> に設"
5888 #: build/C/man2/lseek.2:104
5890 msgid "B<SEEK_HOLE>"
5891 msgstr "B<SEEK_HOLE>"
5894 #: build/C/man2/lseek.2:118
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)."
5902 "ファイルオフセットを、 位置が I<offset> 以上の次のホール (hole) に設定する。 "
5903 "I<offset> がホールの内部にある場合は、ファイルシステムは I<offset> に設定され"
5904 "る。 I<offset> 以降にホールがない場合は、 ファイルオフセットはファイル末尾に"
5905 "設定される (つまり、 どのファイルの末尾にも暗黙のホールが存在するということ"
5909 #: build/C/man2/lseek.2:124
5911 "In both of the above cases, B<lseek>() fails if I<offset> points past the "
5914 "上記のどちらの場合も、 I<offset> がファイル末尾よりも先を指している場合には "
5918 #: build/C/man2/lseek.2:130
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."
5925 "これらの操作を使うことで、 アプリケーションが、 まばら (sparse ) にページが割"
5926 "り当てられたファイルでホールをマップすることができる。 この機能はファイルバッ"
5927 "クアップツールなどのアプリケーションで有用である。 ホールを見つける仕組みがあ"
5928 "れば、 ファイルバックアップツールで、 バックアップを作成する際に保存領域を節"
5929 "約し、ホールを保持することができる。"
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
5935 #: build/C/man2/lseek.2:153
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)."
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 の列のデータで構成されているとみなす"
5962 #: build/C/man2/lseek.2:162
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>>."
5967 "I<E<lt>unistd.hE<gt>> から B<SEEK_DATA> と B<SEEK_HOLE> の定義を得るには、 機"
5968 "能検査マクロ B<_GNU_SOURCE> を定義しなければならない。"
5971 #: build/C/man2/lseek.2:168
5973 "The B<SEEK_HOLE> and B<SEEK_DATA> operations are supported for the following "
5976 "B<SEEK_HOLE>, B<SEEK_DATA> 操作に対応しているのは以下のファイルシステムであ"
5980 #: build/C/man2/lseek.2:170
5981 msgid "Btrfs (since Linux 3.1)"
5982 msgstr "Btrfs (Linux 3.1 以降)"
5984 #. commit 93862d5e1ab875664c6cc95254fc365028a48bb1
5986 #: build/C/man2/lseek.2:173
5987 msgid "OCFS (since Linux 3.2)"
5988 msgstr "OCFS (Linux 3.2 以降)"
5991 #: build/C/man2/lseek.2:175
5992 msgid "XFS (since Linux 3.5)"
5993 msgstr "XFS (Linux 3.5 以降)"
5996 #: build/C/man2/lseek.2:177
5997 msgid "ext4 (since Linux 3.8)"
5998 msgstr "ext4 (Linux 3.8 以降)"
6001 #: build/C/man2/lseek.2:179
6002 msgid "tmpfs (since Linux 3.8)"
6003 msgstr "tmpfs (Linux 3.8 以降)"
6006 #: build/C/man2/lseek.2:187
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."
6012 "成功した場合、 B<lseek>() は結果のファイル位置をファイルの先頭からのバイト数"
6013 "で返す。 エラーの場合、値 I<(off_t)\\ -1> が返され、 I<errno> にエラーが指示"
6016 #. Some systems may allow negative offsets for character devices
6017 #. and/or for remote filesystems.
6019 #: build/C/man2/lseek.2:200
6021 "I<whence> is not valid. Or: the resulting file offset would be negative, or "
6022 "beyond the end of a seekable device."
6024 "I<whence> が有効な値ではない。または、seek の結果、ファイルオフセットが負に\n"
6025 "なってしまうか、 seek 可能なデバイスの末尾を越えてしまう。"
6028 #: build/C/man2/lseek.2:200 build/C/man2/open.2:950
6029 #: build/C/man2/open_by_handle_at.2:304
6031 msgid "B<EOVERFLOW>"
6032 msgstr "B<EOVERFLOW>"
6034 #. HP-UX 11 says EINVAL for this case (but POSIX.1 says EOVERFLOW)
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> 型で表現することができない。"
6041 #: build/C/man2/lseek.2:205
6047 #: build/C/man2/lseek.2:209
6048 msgid "I<fd> is associated with a pipe, socket, or FIFO."
6049 msgstr "I<fd> がパイプ、ソケット、FIFO を参照している。"
6052 #: build/C/man2/lseek.2:209 build/C/man2/open.2:938
6058 #: build/C/man2/lseek.2:217
6060 "I<whence> is B<SEEK_DATA> or B<SEEK_HOLE>, and the current file offset is "
6061 "beyond the end of the file."
6063 "I<whence> が B<SEEK_DATA> か B<SEEK_HOLE> で、\n"
6064 "現在のファイルオフセットがファイルの末尾を超えた位置である。"
6066 #. SVr4 documents additional error
6067 #. conditions EDEADLK, ENOLCK, ENOLNK, ENOSR, ENXIO, or ERANGE.
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."
6074 #. FIXME . Review http://austingroupbugs.net/view.php?id=415 in the future
6076 #: build/C/man2/lseek.2:227
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)."
6082 "B<SEEK_DATA> と B<SEEK_HOLE> は非標準の拡張で、 Solaris, FreeBSD, DragonFly "
6083 "BSD にも存在する。 これらは POSIX の次の版 (Issue 8) に入れるよう提案されてい"
6087 #: build/C/man2/lseek.2:232
6089 "See B<open>(2) for a discussion of the relationship between file "
6090 "descriptors, open file descriptions, and files."
6092 "ファイルディスクリプタ、オープンファイル記述、ファイルの関係の説明については "
6096 #: build/C/man2/lseek.2:236
6098 "Some devices are incapable of seeking and POSIX does not specify which "
6099 "devices must support B<lseek>()."
6101 "いくつかのデバイスでは seek ができない。 POSIX はどのデバイスが B<lseek>() "
6104 #. Other systems return the number of written characters,
6105 #. using SEEK_SET to set the counter. (Of written characters.)
6107 #: build/C/man2/lseek.2:243
6108 msgid "On Linux, using B<lseek>() on a terminal device returns B<ESPIPE>."
6110 "Linux では、端末 (terminal) デバイスに B<lseek>() を使用すると B<ESPIPE> が返"
6114 #: build/C/man2/lseek.2:246
6116 "When converting old code, substitute values for I<whence> with the following "
6118 msgstr "古いコードを変換する時は I<whence> の値を以下のマクロに置き換えること:"
6121 #: build/C/man2/lseek.2:249
6124 msgstr "old \tnew\n"
6127 #: build/C/man2/lseek.2:250
6129 msgid "0\tSEEK_SET\n"
6130 msgstr "0\tSEEK_SET\n"
6133 #: build/C/man2/lseek.2:251
6135 msgid "1\tSEEK_CUR\n"
6136 msgstr "1\tSEEK_CUR\n"
6139 #: build/C/man2/lseek.2:252
6141 msgid "2\tSEEK_END\n"
6142 msgstr "2\tSEEK_END\n"
6145 #: build/C/man2/lseek.2:253
6147 msgid "L_SET\tSEEK_SET\n"
6148 msgstr "L_SET\tSEEK_SET\n"
6151 #: build/C/man2/lseek.2:254
6153 msgid "L_INCR\tSEEK_CUR\n"
6154 msgstr "L_INCR\tSEEK_CUR\n"
6157 #: build/C/man2/lseek.2:255
6159 msgid "L_XTND\tSEEK_END\n"
6160 msgstr "L_XTND\tSEEK_END\n"
6163 #: build/C/man2/lseek.2:267
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 "
6169 "B<dup>(2) や B<fork>(2) で作成されたファイルディスクリプタは、現在のファイ"
6170 "ル位置ポインタ (current file position pointer) を共有しているので、 このよう"
6171 "なファイルで移動を行うと競合状態を引き起こす可能性がある。"
6174 #: build/C/man2/lseek.2:274
6176 "B<dup>(2), B<fork>(2), B<open>(2), B<fseek>(3), B<lseek64>(3), "
6177 "B<posix_fallocate>(3)"
6179 "B<dup>(2), B<fork>(2), B<open>(2), B<fseek>(3), B<lseek64>(3), "
6180 "B<posix_fallocate>(3)"
6183 #: build/C/man3/lseek64.3:25
6189 #: build/C/man3/lseek64.3:28
6190 msgid "lseek64 - reposition 64-bit read/write file offset"
6191 msgstr "lseek64 - ファイルの 64 ビットの読み書きオフセットの位置を変える"
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) 参照 */"
6199 #: build/C/man3/lseek64.3:36
6201 "B<off64_t lseek64(int >I<fd>B<, off64_t >I<offset>B<, int >I<whence>B<);>"
6203 "B<off64_t lseek64(int >I<fd>B<, off64_t >I<offset>B<, int >I<whence>B<);>"
6206 #: build/C/man3/lseek64.3:53
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."
6213 "B<lseek>(2) 関数ファミリーは、ファイルディスクリプタ I<fd> に関連するオープ"
6214 "ンされたファイルのオフセットを、 ファイルの開始位置・現在位置・終端から "
6215 "I<offset> の位置へ変更する。 これは I<whence> がそれぞれ B<SEEK_SET>, "
6216 "B<SEEK_CUR>, B<SEEK_END> の場合に対応する。"
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) を参照すること。"
6224 #: build/C/man3/lseek64.3:63
6226 "Four interfaces are available: B<lseek>(2), B<lseek64>(), B<llseek>(2), and "
6227 "the raw system call B<_llseek>(2)."
6229 "4 つのインタフェースが使用可能である: B<lseek>(2), B<lseek64>(), "
6230 "B<llseek>(2) と元となるシステムコール B<_llseek>(2) である。"
6233 #: build/C/man3/lseek64.3:63
6239 #: build/C/man3/lseek64.3:65 build/C/man3/lseek64.3:87
6240 #: build/C/man3/lseek64.3:116
6245 #: build/C/man3/lseek64.3:69
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"
6251 #: build/C/man3/lseek64.3:77
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"
6256 "B<lseek>(2) は型 I<off_t> を使う。 これは 32 ビットアーキテクチャ上では 32 "
6260 #: build/C/man3/lseek64.3:81
6262 msgid "#define _FILE_OFFSET_BITS 64\n"
6263 msgstr "#define _FILE_OFFSET_BITS 64\n"
6266 #: build/C/man3/lseek64.3:85
6267 msgid "in which case it is a 64-bit signed type."
6268 msgstr "を定義してコンパイルした場合は 64 ビット符号付き型である。"
6271 #: build/C/man3/lseek64.3:85
6277 #: build/C/man3/lseek64.3:91
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"
6283 #: build/C/man3/lseek64.3:102
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"
6289 "ライブラリルーチン B<lseek64>() は I<off_t> が 32 ビット型であっても 64 ビッ"
6290 "ト型を使う。 このプロトタイプ (と型 I<off64_t>) は、以下の定義をしてコンパイ"
6294 #: build/C/man3/lseek64.3:106
6296 msgid "#define _LARGEFILE64_SOURCE\n"
6297 msgstr "#define _LARGEFILE64_SOURCE\n"
6299 #. in glibc 2.0.94, not in 2.0.6
6301 #: build/C/man3/lseek64.3:114
6303 "The function B<lseek64>() is available since glibc 2.1, and is defined to "
6304 "be an alias for B<llseek>()."
6306 "関数 B<lseek64>() は glibc 2.1 以降で使用可能であり、 B<llseek>() のエイリ"
6310 #: build/C/man3/lseek64.3:114
6316 #: build/C/man3/lseek64.3:120
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"
6321 #. in libc 5.0.9, not in 4.7.6
6323 #: build/C/man3/lseek64.3:136
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"
6332 "型 I<loff_t> は 64 ビット符号付き型である。 ライブラリルーチン B<llseek>() "
6333 "は glibc で利用可能であり、 特別な定義なしに動作する。 しかしながら、 glibc "
6334 "のヘッダーはプロトタイプを供していない。 ユーザは上記のプロトタイプまたはそれ"
6335 "と同等のものを、 自身のソースに追加しなければならない。 このデータがないこと"
6336 "によって B<e2fsck>(8) のコンパイルが失敗するという苦情がユーザから出たの"
6337 "で、 glibc 2.1.3 では以下のようなリンク時の警告が追加された。"
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."
6345 #: build/C/man3/lseek64.3:143
6347 "This makes this function unusable if one desires a warning-free compilation."
6349 "これにより、警告なしでコンパイルしたい場合には、この関数を使用不可にできる。"
6352 #: build/C/man3/lseek64.3:143
6358 #: build/C/man3/lseek64.3:146
6360 "All the above functions are implemented in terms of this system call. The "
6363 "上記の全ての関数は、このシステムコールに基づいて実装される。 プロトタイプは以"
6367 #: build/C/man3/lseek64.3:151
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"
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"
6377 #: build/C/man3/lseek64.3:156
6378 msgid "For more details, see B<llseek>(2)."
6379 msgstr "更に詳しい情報は、 B<llseek>(2) を参照すること。"
6382 #: build/C/man3/lseek64.3:161
6383 msgid "The B<lseek64>() function is thread-safe."
6384 msgstr "関数 B<lseek64>() はスレッドセーフである。"
6387 #: build/C/man3/lseek64.3:164
6388 msgid "B<llseek>(2), B<lseek>(2)"
6389 msgstr "B<llseek>(2), B<lseek>(2)"
6392 #: build/C/man2/open.2:51
6398 #: build/C/man2/open.2:51
6404 #: build/C/man2/open.2:54
6405 msgid "open, openat, creat - open and possibly create a file"
6406 msgstr "open, openat, creat - ファイルのオープン、作成を行う"
6409 #: build/C/man2/open.2:59
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"
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"
6421 #: build/C/man2/open.2:62
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"
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"
6431 #: build/C/man2/open.2:64
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"
6437 #: build/C/man2/open.2:68
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"
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"
6447 #: build/C/man2/open.2:76
6448 msgid "B<openat>():"
6449 msgstr "B<openat>():"
6452 #: build/C/man2/open.2:98
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."
6460 "ファイルの I<pathname> を与えると、 B<open>() はファイルディスクリプタを返"
6461 "す。 ファイルディスクリプタは、この後に続くシステムコール (B<read>(2), "
6462 "B<write>(2), B<lseek>(2), B<fcntl>(2) など) で使用される小さな非負の整数であ"
6463 "る。 このシステムコールが成功した場合に返されるファイルディスクリプタは その"
6464 "プロセスがその時点でオープンしていないファイルディスクリプタの うち最小の数字"
6468 #: build/C/man2/open.2:110
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))."
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) 参照)。"
6483 #: build/C/man2/open.2:123
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."
6492 "B<open>() を呼び出すと、「オープンファイル記述」 I<(open file description)> "
6493 "が作成される。ファイル記述とは、システム全体のオープン中のファイルのテーブル"
6494 "のエントリである。 このオープンファイル記述は、ファイルオフセットとファイル状"
6495 "態フラグ (下記参照) が保持する。 ファイルディスクリプタはオープンファイルっ記"
6496 "述への参照である。 この後で I<pathname> が削除されたり、他のファイルを参照す"
6497 "るように変更されたりしても、 この参照は影響を受けない。 オープンファイル記述"
6501 #: build/C/man2/open.2:131
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."
6507 "引き数 I<flags> には、アクセスモード B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> のど"
6508 "れかひとつが入っていなければならない。 これらはそれぞれ読み込み専用、書き込み"
6509 "専用、読み書き用に ファイルをオープンすることを要求するものである。"
6511 #. SUSv4 divides the flags into:
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.
6523 #: build/C/man2/open.2:170
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."
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 "その内容を取得したり (場合によっては) 変更したりできる点にある。詳細は "
6543 #: build/C/man2/open.2:172
6545 "The full list of file creation flags and file status flags is as follows:"
6546 msgstr "すべてのファイル作成フラグとファイル状態フラグを以下のリストに示す。"
6549 #: build/C/man2/open.2:172
6552 msgstr "B<O_APPEND>"
6554 #. For more background, see
6555 #. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453946
6556 #. http://nfs.sourceforge.net/
6558 #: build/C/man2/open.2:189
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."
6567 "ファイルを追加 (append) モードでオープンする。 毎回の B<write>(2) の前に "
6568 "B<lseek>(2) を行ったかのように、ファイルポインタをファイルの最後に移動す"
6569 "る。 NFS ファイルシステムで、 B<O_APPEND> を使用すると、複数のプロセスがひと"
6570 "つのファイルに同時にデータを追加した場合、 ファイルが壊れてしまうことがあ"
6571 "る。 これは NFS が追加モードをサポートしていないため、 クライアントのカーネ"
6572 "ル (kernel) がそれをシミュレートしなければならないのだが、 競合状態を避けるこ"
6576 #: build/C/man2/open.2:189
6582 #: build/C/man2/open.2:203
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."
6590 "シグナル駆動 I/O (signal-driven I/O) を有効にする: このファイルディスクリプタ"
6591 "への 入力または出力が可能になった場合に、シグナルを生成する (デフォルトは "
6592 "B<SIGIO> であるが、 B<fcntl>(2) によって変更可能である)。 この機能が使用可能"
6593 "なのは端末、疑似端末、ソケットのみであり、 (Linux 2.6 以降では) パイプと "
6594 "FIFO に対しても使用できる。 さらに詳しい説明は B<fcntl>(2) を参照すること。 "
6598 #: build/C/man2/open.2:203
6600 msgid "B<O_CLOEXEC> (since Linux 2.6.23)"
6601 msgstr "B<O_CLOEXEC> (Linux 2.6.23 以降)"
6603 #. NOTE! several other man pages refer to this text
6605 #: build/C/man2/open.2:213
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."
6611 "新しいファイルディスクリプタに対して close-on-exec フラグを有効にする。 この"
6612 "フラグを指定することで、 プログラムは B<FD_CLOEXEC> フラグをセットするために "
6613 "B<fcntl>(2) B<F_SETFD> 操作を別途呼び出す必要がなくなる。"
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.
6619 #: build/C/man2/open.2:242
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.)"
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> と同等の機"
6647 #: build/C/man2/open.2:242
6652 #. As at 2.6.25, bsdgroups is supported by ext2, ext3, ext4, and
6653 #. XFS (since 2.6.14).
6655 #: build/C/man2/open.2:258
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))."
6664 "ファイルが存在しなかった場合は作成 (create) する。 ファイルの所有者 (ユー"
6665 "ザー ID) は、プロセスの実効ユーザー ID に設定される。 グループ所有権 (グルー"
6666 "プ ID) は、プロセスの実効グループ ID または親ディレクトリのグループ ID に設定"
6667 "される (これは、ファイルシステムタイプ、マウントオプション、 親ディレクトリの"
6668 "モードに依存する。 B<mount>(8) で説明されているマウントオプション "
6669 "I<bsdgroups> と I<sysvgroups> を参照)。"
6672 #: build/C/man2/open.2:285
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."
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>() コールであっても、 読み書き可能なファイルディスクリプタを返すこと"
6694 #: build/C/man2/open.2:288
6695 msgid "The following symbolic constants are provided for I<mode>:"
6696 msgstr "I<mode> のために以下のシンボル定数が提供されている :"
6699 #: build/C/man2/open.2:288
6705 #: build/C/man2/open.2:291
6706 msgid "00700 user (file owner) has read, write and execute permission"
6708 "00700 ユーザー (ファイルの所有者) に読み込み、書き込み、 実行の許可がある。"
6711 #: build/C/man2/open.2:291
6717 #: build/C/man2/open.2:294
6718 msgid "00400 user has read permission"
6719 msgstr "00400 ユーザーに読み込みの許可がある。"
6722 #: build/C/man2/open.2:294
6728 #: build/C/man2/open.2:297
6729 msgid "00200 user has write permission"
6730 msgstr "00200 ユーザーに書き込みの許可がある。"
6733 #: build/C/man2/open.2:297
6739 #: build/C/man2/open.2:300
6740 msgid "00100 user has execute permission"
6741 msgstr "00100 ユーザーに実行の許可がある。"
6744 #: build/C/man2/open.2:300
6750 #: build/C/man2/open.2:303
6751 msgid "00070 group has read, write and execute permission"
6752 msgstr "00070 グループに読み込み、書き込み、実行の許可がある。"
6755 #: build/C/man2/open.2:303
6761 #: build/C/man2/open.2:306
6762 msgid "00040 group has read permission"
6763 msgstr "00040 グループに読み込みの許可がある。"
6766 #: build/C/man2/open.2:306
6772 #: build/C/man2/open.2:309
6773 msgid "00020 group has write permission"
6774 msgstr "00020 グループに書き込みの許可がある。"
6777 #: build/C/man2/open.2:309
6783 #: build/C/man2/open.2:312
6784 msgid "00010 group has execute permission"
6785 msgstr "00010 グループに実行の許可がある。"
6788 #: build/C/man2/open.2:312
6794 #: build/C/man2/open.2:315
6795 msgid "00007 others have read, write and execute permission"
6796 msgstr "00007 他人 (others) に読み込み、書き込み、実行の許可がある。"
6799 #: build/C/man2/open.2:315
6805 #: build/C/man2/open.2:318
6806 msgid "00004 others have read permission"
6807 msgstr "00004 他人に読み込みの許可がある。"
6810 #: build/C/man2/open.2:318
6816 #: build/C/man2/open.2:321
6817 msgid "00002 others have write permission"
6818 msgstr "00002 他人に書き込みの許可がある。"
6821 #: build/C/man2/open.2:321
6827 #: build/C/man2/open.2:324
6828 msgid "00001 others have execute permission"
6829 msgstr "00001 他人に実行の許可がある。"
6832 #: build/C/man2/open.2:325
6834 msgid "B<O_DIRECT> (since Linux 2.4.10)"
6835 msgstr "B<O_DIRECT> (Linux 2.4.10 以降)"
6838 #: build/C/man2/open.2:342
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."
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 "使用しなければならない。下記の「注意」の節の議論も参照。"
6858 #: build/C/man2/open.2:346
6860 "A semantically similar (but deprecated) interface for block devices is "
6861 "described in B<raw>(8)."
6863 "ブロックデバイスに対する似通った意味のインターフェースが B<raw>(8) で説明さ"
6864 "れている (但し、このインタフェースは非推奨である)。"
6867 #: build/C/man2/open.2:346
6869 msgid "B<O_DIRECTORY>"
6870 msgstr "B<O_DIRECTORY>"
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.
6877 #: build/C/man2/open.2:358
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."
6883 "I<pathname> がディレクトリでなければオープンは失敗する。 このフラグは、 "
6884 "B<opendir>(3) が FIFO やテープデバイスに対してコールされた場合の サービス不"
6885 "能 (denial-of-service) 攻撃を避けるために カーネル 2.1.126 で追加された。"
6888 #: build/C/man2/open.2:358
6894 #: build/C/man2/open.2:364
6896 "Write operations on the file will complete according to the requirements of "
6897 "synchronized I/O I<data> integrity completion."
6899 "ファイルに対する書き込み操作は、同期 I/O のI<データ>完全性完了の要件に基づい"
6903 #: build/C/man2/open.2:376
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>."
6910 "B<write>(2) (や同様のコール) が返るまでに、 書き込まれたデータおよびデータを"
6911 "取得するのに必要なファイルメタデータが裏で利用されているハードウェアに転送さ"
6912 "れる (つまり、B<write>(2) の後に B<fdatasync>(2) を呼び出したのと同じようにな"
6913 "る)。 I<下記の「注意」も参照のこと>。"
6916 #: build/C/man2/open.2:376
6922 #: build/C/man2/open.2:386
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>() "
6928 "この呼び出しでファイルが作成されることを保証する。このフラグが B<O_CREAT> "
6930 "一緒に指定され、 I<pathname> のファイルが既に存在した場合、 B<open>() は失"
6934 #. POSIX.1-2001 explicitly requires this behavior.
6936 #: build/C/man2/open.2:394
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."
6942 "これら二つのフラグが指定された際、シンボリックリンクは辿られない。 "
6943 "I<pathname> がシンボリックリンクの場合、 シンボリックリンクがどこを指している"
6944 "かに関わらず B<open>() は失敗する。"
6947 #: build/C/man2/open.2:410
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>."
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> で失敗する。"
6964 #: build/C/man2/open.2:432
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."
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 "じくロックに成功しているということである。"
6990 #: build/C/man2/open.2:432
6992 msgid "B<O_LARGEFILE>"
6993 msgstr "B<O_LARGEFILE>"
6996 #: build/C/man2/open.2:454
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))."
7005 "(LFS) I<off_t> ではサイズを表せない (だだし I<off64_t> ではサイズを表せる)"
7007 "イルをオープン可能にする。この定義を有効にするためには、(I<どの>ヘッダファ"
7009 "ルをインクルードするよりも前に) B<_LARGEFILE64_SOURCE> マクロを定義しなけれ"
7012 "32 ビットシステムにおいて大きなファイルにアクセスしたい場合、\n"
7013 "(B<O_LARGEFILE> を使うよりも) B<_FILE_OFFSET_BITS> 機能検査マクロを 64 に\n"
7014 "セットする方が望ましい方法である (B<feature_test_macros>(7) を参照)。"
7017 #: build/C/man2/open.2:454
7019 msgid "B<O_NOATIME> (since Linux 2.6.8)"
7020 msgstr "B<O_NOATIME> (Linux 2.6.8 以降)"
7022 #. The O_NOATIME flag also affects the treatment of st_atime
7023 #. by mmap() and readdir(2), MTK, Dec 04.
7025 #: build/C/man2/open.2:467
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."
7033 "ファイルに対して B<read>(2) が実行されたときに、最終アクセス時刻 (inode の "
7034 "I<st_atime>) を更新しない。 このフラグはインデックス作成やバックアッププログ"
7035 "ラムで使うことを意図している。 これを使うとディスクに対する操作を大幅に減らす"
7036 "ことができる。 このフラグは全てのファイルシステムに対して有効であるわけではな"
7037 "い。 その一例が NFS であり、サーバがアクセス時刻を管理している。"
7040 #: build/C/man2/open.2:467
7043 msgstr "B<O_NOCTTY>"
7046 #: build/C/man2/open.2:475
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 "
7052 "I<pathname> が端末 (terminal) デバイス \\(em B<tty>(4) 参照 \\(em を指してい"
7054 "場合に、たとえそのプロセスが制御端末を持っていなくても、オープンしたファイ"
7059 #: build/C/man2/open.2:475
7061 msgid "B<O_NOFOLLOW>"
7062 msgstr "B<O_NOFOLLOW>"
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
7068 #: build/C/man2/open.2:487
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 "
7075 "I<pathname> がシンボリックリンクだった場合、オープンは失敗する。 これは "
7076 "FreeBSD の拡張で、Linux には バージョン 2.1.126 で追加された。 このフラグが指"
7077 "定された場合でも I<pathname> の前の方の要素 (最後のディレクトリセパレータより"
7078 "前の部分) にあるシンボリックリンクについてはリンクが辿られる。 下記の "
7082 #: build/C/man2/open.2:487
7084 msgid "B<O_NONBLOCK> or B<O_NDELAY>"
7085 msgstr "B<O_NONBLOCK> または B<O_NDELAY>"
7088 #: build/C/man2/open.2:500
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, "
7097 "可能ならば、ファイルは非停止 (nonblocking) モードでオープンされる。\n"
7098 "B<open>() も、返したファイルディスクリプタに対する以後のすべての操作も呼び"
7100 "したプロセスを待たせることはない。 FIFO (名前付きパイプ) を扱う場合には\n"
7101 "B<fifo>(7) も参照すること。 強制ファイルロック (mandatory file lock) やファ"
7103 "ルリース (file lease) と組み合わせた場合の、 B<O_NONBLOCK> の効果についての\n"
7104 "議論は、 B<fcntl>(2) を参照すること。"
7107 #: build/C/man2/open.2:500
7109 msgid "B<O_PATH> (since Linux 2.6.39)"
7110 msgstr "B<O_PATH> (Linux 2.6.39 以降)"
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
7120 #: build/C/man2/open.2:522
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>."
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> で失敗する。"
7135 #: build/C/man2/open.2:526
7137 "The following operations I<can> be performed on the resulting file "
7140 "取得したファイルディスクリプタに対して以下の操作を行うことが「できる」。"
7142 #. commit 332a2e1244bd08b9e3ecd378028513396a004a24
7143 #. fstat(): commit 55815f70147dcfa3ead5738fd56d3574e2e3c1c2
7145 #: build/C/man2/open.2:535
7147 "B<close>(2); B<fchdir>(2) (since Linux 3.5); B<fstat>(2) (since Linux 3.6)."
7149 "B<close>(2); B<fchdir>(2) (Linux 3.5 以降); B<fstat>(2) (Linux 3.6 以降)"
7152 #: build/C/man2/open.2:541
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> など)"
7158 #: build/C/man2/open.2:547
7160 "Getting and setting file descriptor flags (B<fcntl>(2) B<F_GETFD> and "
7163 "ファイルディスクリプタフラグの取得と設定 (B<fcntl>(2) の B<F_GETFD> と "
7167 #: build/C/man2/open.2:553
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>."
7172 "B<fcntl>(2) の B<F_GETFL> 操作を使ったオープンされたファイルの状態フラグの取"
7173 "得。 返されるフラグには B<O_PATH> ビットが含まれる。"
7176 #: build/C/man2/open.2:566
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."
7183 "B<openat>(2) や他の \"*at()\" 系のシステムコールの I<dirfd> 引数としてその"
7184 "ファイルディスクリプタを渡す。 これには、 ファイルがディレクトリでない場合に "
7185 "B<linkat>(2) に B<AT_EMPTY_PATH> が指定された場合 (や procfs 経由で "
7186 "B<AT_SYMLINK_FOLLOW> が使用された場合) を含む。"
7189 #: build/C/man2/open.2:572
7191 "Passing the file descriptor to another process via a UNIX domain socket (see "
7192 "B<SCM_RIGHTS> in B<unix>(7))."
7194 "そのファイルディスクリプタを別のプロセスに UNIX ドメインソケット経由で渡す。 "
7195 "(B<unix>(7) の B<SCM_RIGHTS> を参照)"
7198 #: build/C/man2/open.2:584
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."
7203 "I<flags> に B<O_PATH> が指定された場合、 B<O_CLOEXEC>, B<O_DIRECTORY>, "
7204 "B<O_NOFOLLOW> 以外のフラグビットは無視される。"
7207 #: build/C/man2/open.2:600
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."
7215 "I<pathname> がシンボリックリンクで B<O_NOFOLLOW> フラグも合わせて指定された場"
7216 "合、 この呼び出しではシンボリックリンクを参照するファイルディスクリプタを返"
7217 "す。 このファイルディスクリプタは、 空のパス名を指定した B<fchownat>(2), "
7218 "B<fstatat>(2), B<linkat>(2), B<readlinkat>(2) の呼び出しで I<dirfd> 引数とし"
7219 "て使うことで、 そのシンボリックリンクに対して操作を行うことができる。"
7222 #: build/C/man2/open.2:600
7228 #: build/C/man2/open.2:612
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>.)"
7234 "ファイルに対する書き込み操作は、同期 I/O のI<ファイル>完全性完了の要件に基づ"
7235 "いて行われる (これに対し B<O_DSYNC> では同期 I/O のI<データ>完全性完了が提供"
7239 #: build/C/man2/open.2:623
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>."
7246 "B<write>(2) (や同様のコール) が返るまでに、 書き込まれたデータと関連するファ"
7247 "イルメタデータが裏で利用されているハードウェアに転送される (つまり、"
7248 "B<write>(2) の後に B<fsync>(2) を呼び出したのと同じようになる)。 I<下記の「注"
7252 #: build/C/man2/open.2:623
7254 msgid "B<O_TMPFILE> (since Linux 3.11)"
7255 msgstr "B<O_TMPFILE> (Linux 3.11 以降)"
7257 #. commit 60545d0d4610b02e55f65d141c95b18ccf855b6e
7258 #. commit f4e0c30c191f87851c4a53454abb55ee276f4a7e
7259 #. commit bb458c644a59dbba3a1fe59b27106c5e68e1c4bd
7261 #: build/C/man2/open.2:635
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."
7268 "名前なしの一時ファイルを作成する。 I<pathname> 引き数はディレクトリを指定す"
7269 "る。 名前なしの inode がそのディレクトリが存在するファイルシステムに作成され"
7270 "る。 そのファイルに名前を付与しない限り、 作成されたファイルに書き込まれた内"
7271 "容は、 最後のファイルディスクリプタがクローズされる際に失われる。"
7274 #: build/C/man2/open.2:649
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:"
7281 "B<O_TMPFILE> は必ず B<O_RDWR> か B<O_WRONLY> のいずれかと一緒に使わなければな"
7282 "らない。 B<O_EXCL> も指定することができる。 B<O_EXCL> が指定されなかった場"
7283 "合、 B<linkat>(2) を使って、そのファイルシステムにこの一時ファイルへのリンク"
7284 "を作成し、ファイルを永続化することができる。 以下のコードのようにすればよい。"
7287 #: build/C/man2/open.2:655
7290 "char path[PATH_MAX];\n"
7291 "fd = open(\"/path/to/dir\", O_TMPFILE | O_RDWR,\n"
7292 " S_IRUSR | S_IWUSR);\n"
7294 "char path[PATH_MAX];\n"
7295 "fd = open(\"/path/to/dir\", O_TMPFILE | O_RDWR,\n"
7296 " S_IRUSR | S_IWUSR);\n"
7299 #: build/C/man2/open.2:657
7301 msgid "/* File I/O on 'fd'... */\n"
7302 msgstr "/* 'fd' に対するファイル I/O ... */\n"
7305 #: build/C/man2/open.2:661
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"
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"
7317 #: build/C/man2/open.2:670
7319 "In this case, the B<open>() I<mode> argument determines the file permission "
7320 "mode, as with B<O_CREAT>."
7322 "この場合、 B<open>() の I<mode> 引き数は B<O_CREAT> と同様にファイルのアクセ"
7326 #: build/C/man2/open.2:682
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.)"
7333 "B<O_TMPFILE> とともに B<O_EXCL> を指定すると、 一時ファイルに対して上記の方法"
7334 "でファイルシステムへのリンクを行うことができなくなる (この場合の B<O_EXCL> の"
7335 "意味は他の場合の B<O_EXCL> の意味とは異なる点に注意)。"
7337 #. Inspired by http://lwn.net/Articles/559147/
7339 #: build/C/man2/open.2:687
7340 msgid "There are two main use cases for B<O_TMPFILE>:"
7341 msgstr "B<O_TMPFILE> には主に二つの用途がある。"
7344 #: build/C/man2/open.2:696
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."
7351 "改善された B<tmpfile>(3) の機能: (1) クローズ時に自動的に削除される、 (2) パ"
7352 "ス名では決して参照できない、 (3) シンボリックリンク攻撃ができない、 (4) 呼び"
7353 "出し元が一意な名前を考える必要がない、 という特長を持つ競合のない一時ファイル"
7357 #: build/C/man2/open.2:707
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)."
7364 "最初は見えないファイルを作成し、 それからデータを書き込んだり、適切なファイル"
7365 "システム属性を持つように調整したり (B<chown>(2), B<chmod>(2), "
7366 "B<fsetxattr>(2) など) した後、 準備が全て整った状態で (上述の B<linkat>(2) を"
7367 "使って) ファイルシステム内にアトミックにリンクを行う。"
7369 #. commit 99b6436bc29e4f10e4388c27a3e4810191cc4788
7370 #. commit ab29743117f9f4c22ac44c13c1647fb24fb2bafe
7372 #: build/C/man2/open.2:718
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."
7379 "B<O_TMPFILE> は、 裏で利用されるファイルシステムによるサポートが必要である。 "
7380 "一部の Linux ファイルシステムだけがこの機能をサポートしている。 最初の実装で"
7381 "は、 ext2, ext3, ext4, UDF, Minix, shmem ファイルシステムがサポートしてい"
7382 "た。 XFS でのサポートが Linux 3.15 で追加された。"
7385 #: build/C/man2/open.2:718
7391 #: build/C/man2/open.2:732
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."
7398 "ファイルが既に存在し、通常ファイルであり、 アクセスモードで書き込みが許可され"
7399 "ている (つまり、 B<O_RDWR> または B<O_WRONLY> の) 場合、長さ 0 に切り詰め "
7400 "(truncate) られる。 ファイルが FIFO または端末デバイスファイルの場合、 "
7401 "B<O_TRUNC> フラグは無視される。 それ以外の場合、 B<O_TRUNC> の効果は未定義で"
7405 #: build/C/man2/open.2:732
7411 #: build/C/man2/open.2:740
7413 "B<creat>() is equivalent to B<open>() with I<flags> equal to B<O_CREAT|"
7414 "O_WRONLY|O_TRUNC>."
7416 "B<creat>() は I<flags> に B<O_CREAT|O_WRONLY|O_TRUNC> を指定して B<open>() "
7420 #: build/C/man2/open.2:740
7426 #: build/C/man2/open.2:746
7428 "The B<openat>() system call operates in exactly the same way as B<open>(), "
7429 "except for the differences described here."
7431 "B<openat>() システムコールは B<open>() と全く同様に動作するが、以下で説明する"
7435 #: build/C/man2/open.2:756
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)."
7442 "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
7443 "リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
7444 "(B<open>() に相対パス名を渡した場合のように、呼び出したプロセスのカレントワー"
7445 "キングディレクトリに対する相対パスではない)。"
7448 #: build/C/man2/open.2:768
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>())."
7454 "I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
7455 "の場合、 (B<open>() と同様に) I<pathname> は呼び出したプロセスのカレントワー"
7456 "キングディレクトリに対する相対パスと解釈される。"
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."
7462 "I<pathname> で指定されたパス名が絶対パスの場合、 I<dirfd> は無視される。"
7465 #: build/C/man2/open.2:783
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)."
7470 "B<open>(), B<openat>(), B<creat>() は新しいファイルディスクリプタを返す。 エ"
7471 "ラーが発生した場合は -1 を返す (その場合は I<errno> が適切に設定される)。"
7474 #: build/C/man2/open.2:789
7476 "B<open>(), B<openat>(), and B<creat>() can fail with the following errors:"
7477 msgstr "B<open>(), B<openat>(), B<creat>() は以下のエラーで失敗する。"
7480 #: build/C/man2/open.2:798
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).)"
7487 "ファイルに対する要求されたアクセスが許されていないか、 I<pathname> のディレク"
7488 "トリ部分の何れかのディレクトリに検索許可がなかった。 またはファイルが存在せ"
7489 "ず、親ディレクトリへの書き込み許可がなかった。 (B<path_resolution>(7) も参照"
7493 #: build/C/man2/open.2:804
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."
7498 "B<O_CREAT> が指定された場合で、そのファイルが存在せず、ディスクブロックか "
7499 "inode がそのファイルシステムのユーザクォータに達していた。"
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> が使用された。"
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> がアクセス可能なアドレス空間の外を指している。"
7512 #: build/C/man2/open.2:814 build/C/man2/write.2:145
7518 #: build/C/man2/open.2:818
7519 msgid "See B<EOVERFLOW>."
7520 msgstr "B<EOVERFLOW> 参照。"
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
7530 #: build/C/man2/open.2:825
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 "
7536 "遅いデバイス (例えば FIFO、 B<fifo>(7) 参照) のオープンが完了するのを待って"
7537 "停止している間に システムコールがシグナルハンドラにより割り込まれた。 "
7541 #: build/C/man2/open.2:833
7543 "The filesystem does not support the B<O_DIRECT> flag. See B<NOTES> for more "
7546 "ファイルシステムが B<O_DIRECT> フラグをサポートしていない。 詳細はB<注意>を参"
7549 #. In particular, __O_TMPFILE instead of O_TMPFILE
7551 #: build/C/man2/open.2:838
7552 msgid "Invalid value in I<flags>."
7553 msgstr "I<flags> に無効な値が入っている。"
7556 #: build/C/man2/open.2:848
7558 "B<O_TMPFILE> was specified in I<flags>, but neither B<O_WRONLY> nor "
7559 "B<O_RDWR> was specified."
7561 "I<flags> に B<O_TMPFILE> が指定されたが、 B<O_WRONLY> も B<O_RDWR> も指定され"
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
7573 #: build/C/man2/open.2:857
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)."
7578 "I<pathname> はディレクトリを参照しており、書き込み要求が含まれていた (つまり "
7579 "B<O_WRONLY> または B<O_RDWR> が設定されている)。"
7582 #: build/C/man2/open.2:871
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."
7588 "I<pathname> が存在するディレクトリを参照していて、 B<O_TMPFILE> および "
7589 "B<O_WRONLY> と B<O_RDWR> の一方が I<flags> に指定されていたが、 このカーネル"
7590 "バージョンでは B<O_TMPFILE> 機能が提供されていない。"
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> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
7598 #: build/C/man2/open.2:884
7600 "I<pathname> was a symbolic link, and I<flags> specified B<O_NOFOLLOW> but "
7603 "I<pathname> がシンボリックリンクで、 I<flags> に B<O_NOFOLLOW> が指定された"
7604 "が、 B<O_PATH> が指定されていなかった。"
7607 #: build/C/man2/open.2:884 build/C/man2/pipe.2:148 build/C/man3/tmpfile.3:66
7613 #: build/C/man2/open.2:887
7614 msgid "The process already has the maximum number of files open."
7615 msgstr "プロセスがオープンしているファイル数がすでに最大数に達している。"
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> が長過ぎる。"
7623 #: build/C/man2/open.2:891 build/C/man2/pipe.2:151 build/C/man3/tmpfile.3:69
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 "オープンされているファイルの総数がシステムの制限に達している。"
7634 #: build/C/man2/open.2:894
7640 #: build/C/man2/open.2:901
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 "
7646 "I<pathname> がデバイススペシャルファイルを参照しており、対応するデバイスが存"
7647 "在しない。 (これは Linux カーネルのバグであり、この場合には B<ENXIO> が返され"
7651 #: build/C/man2/open.2:908
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."
7656 "B<O_CREAT> が設定されておらず、かつ指定されたファイルが存在しない。 または、 "
7657 "I<pathname> のディレクトリ部分が存在しないか壊れた (dangling) シンボリックリ"
7661 #: build/C/man2/open.2:922
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."
7667 "I<pathname> が存在しないディレクトリを参照していて、 B<O_TMPFILE> および "
7668 "B<O_WRONLY> と B<O_RDWR> の一方が I<flags> に指定されていたが、 このカーネル"
7669 "バージョンでは B<O_TMPFILE> 機能が提供されていない。"
7672 #: build/C/man2/open.2:931
7674 "I<pathname> was to be created but the device containing I<pathname> has no "
7675 "room for the new file."
7677 "I<pathname> を作成する必要があるが、 I<pathname> を含んでいるデバイスに新しい"
7681 #: build/C/man2/open.2:938
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."
7686 "I<pathname> に含まれるディレクトリ部分のどれかが実際にはディレクトリでない。 "
7687 "または B<O_DIRECTORY> が指定されており、 I<pathname> がディレクトリでない。"
7690 #: build/C/man2/open.2:944
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."
7696 "B<O_NONBLOCK> | B<O_WRONLY> が設定されており、指定したファイルが FIFO で その"
7697 "ファイルを読み込み用でオープンしている FIFO が存在しない。 または、ファイルが"
7698 "デバイススペシャルファイルで 対応するデバイスが存在しない。"
7701 #: build/C/man2/open.2:944 build/C/man2/open_by_handle_at.2:301
7703 msgid "B<EOPNOTSUPP>"
7704 msgstr "B<EOPNOTSUPP>"
7707 #: build/C/man2/open.2:950
7708 msgid "The filesystem containing I<pathname> does not support B<O_TMPFILE>."
7710 "I<pathname> を含んでいるファイルシステムが B<O_TMPFILE> をサポートしていな"
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
7717 #: build/C/man2/open.2:970
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."
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> を返して"
7734 #. Strictly speaking, it's the filesystem UID... (MTK)
7736 #: build/C/man2/open.2:978
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 "
7742 "B<O_NOATIME> フラグが指定されたが、呼び出し元の実効ユーザー ID が ファイルの"
7743 "所有者と一致せず、かつ呼び出し元に特権 (B<CAP_FOWNER>) がない。"
7746 #: build/C/man2/open.2:983
7748 "I<pathname> refers to a file on a read-only filesystem and write access was "
7751 "I<pathname> が読み込み専用のファイルシステム上のファイルを参照しており、 書き"
7755 #: build/C/man2/open.2:983
7761 #: build/C/man2/open.2:988
7763 "I<pathname> refers to an executable image which is currently being executed "
7764 "and write access was requested."
7766 "I<pathname> が現在実行中の実行イメージを参照しており、書き込みが要求された。"
7769 #: build/C/man2/open.2:988
7771 msgid "B<EWOULDBLOCK>"
7772 msgstr "B<EWOULDBLOCK>"
7775 #: build/C/man2/open.2:995
7777 "The B<O_NONBLOCK> flag was specified, and an incompatible lease was held on "
7778 "the file (see B<fcntl>(2))."
7780 "B<O_NONBLOCK> フラグが指定されたが、そのファイルには矛盾するリースが設定され"
7781 "ていた (B<fcntl>(2) 参照)。"
7784 #: build/C/man2/open.2:998
7785 msgid "The following additional errors can occur for B<openat>():"
7786 msgstr "B<openat>() では以下のエラーも発生する。"
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> が有効なファイルディスクリプタではない。"
7795 #: build/C/man2/open.2:1008
7797 "I<pathname> is a relative pathname and I<dirfd> is a file descriptor "
7798 "referring to a file other than a directory."
7800 "I<pathname> が相対パス名で、 I<dirfd> がディレクトリ以外のファイルを参照して"
7804 #: build/C/man2/open.2:1012
7806 "B<openat>() was added to Linux in kernel 2.6.16; library support was added "
7807 "to glibc in version 2.4."
7809 "B<openat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポー"
7810 "トはバージョン 2.4 で glibc に追加された。"
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."
7818 #: build/C/man2/open.2:1019
7819 msgid "B<openat>(): POSIX.1-2008."
7820 msgstr "B<openat>(): POSIX.1-2008."
7823 #: build/C/man2/open.2:1030
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."
7828 "フラグ B<O_DIRECT>, B<O_NOATIME>, B<O_PATH>, B<O_TMPFILE> は Linux 特有のもの"
7829 "である。 これらのフラグの定義を得るためには B<_GNU_SOURCE> を定義しなければな"
7833 #: build/C/man2/open.2:1045
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>."
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> を定義する。"
7849 #: build/C/man2/open.2:1056
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."
7855 "B<feature_test_macros>(7) に注意書きがあるように、 B<_POSIX_C_SOURCE>, "
7856 "B<_XOPEN_SOURCE>, B<_GNU_SOURCE> などの機能検査マクロはI<どの>ヘッダーファイ"
7857 "ルをインクルードするより前に定義しなければならない。"
7860 #: build/C/man2/open.2:1064
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 "
7867 "Linux では、 B<O_NONBLOCK> フラグは、 open を実行したいが read または write "
7868 "を実行する意図は 必ずしもないことを意味する。 これは B<ioctl>(2) のための"
7869 "ファイルディスクリプタを取得するために、 デバイスをオープンするときによく用い"
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
7879 #: build/C/man2/open.2:1076
7881 "The (undefined) effect of B<O_RDONLY | O_TRUNC> varies among "
7882 "implementations. On many systems the file is actually truncated."
7884 "B<O_RDONLY | O_TRUNC> の影響は未定義であり、その動作は実装によって異なる。 多"
7885 "くのシステムではファイルは実際に切り詰められる。"
7888 #: build/C/man2/open.2:1084
7890 "Note that B<open>() can open device special files, but B<creat>() cannot "
7891 "create them; use B<mknod>(2) instead."
7893 "B<open>() はスペシャルファイルをオープンすることができるが、 B<creat>() で"
7894 "スペシャルファイルを作成できない点に注意すること。 代わりに B<mknod>(2) を使"
7898 #: build/C/man2/open.2:1105
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."
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> フィールドが現在時刻に設定される。"
7915 #: build/C/man2/open.2:1105
7917 msgid "Open file descriptions"
7921 #: build/C/man2/open.2:1113
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 "
7929 "オープンファイル記述という用語は POSIX で使用されている用語で、オープンされて"
7930 "いるファイルのシステム共通のテーブルのエントリーを参照するものである。 別の文"
7931 "脈では、このオブジェクトはいろいろな呼び方があり、 「オープンファイルオブジェ"
7932 "クト」、「ファイルハンドル」、「オープンファイルテーブルエントリー」、 カーネ"
7933 "ル開発者の用語では I<struct file> などと呼ばれる。"
7936 #: build/C/man2/open.2:1126
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 "
7946 "ファイルディスクリプタが (B<dup>(2) や同様のシステムコールを使って) 複製され"
7947 "る際に、 複製されたファイルディスクリプタは元のファイルディスクリプタと同じ"
7948 "オープンファイル記述を参照する。 結果として 2 つのファイルディスクリプタは"
7949 "ファイルオフセットとファイル状態フラグを共有する。 このような共有はプロセス間"
7950 "でも起こり得る。 B<fork>(2) で作成された子プロセスは親プロセスのファイルディ"
7951 "スクリプタの複製を継承し、これらの複製は同じオープンファイル記述を参照する。"
7954 #: build/C/man2/open.2:1134
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."
7959 "1 つのファイルに対して B<open>(2) を行う毎に、新しいオープンファイル記述が作"
7960 "成される。 したがって、 1 つのファイル inode に対して複数のオープンファイル記"
7964 #: build/C/man2/open.2:1134
7966 msgid "Synchronized I/O"
7970 #: build/C/man2/open.2:1149
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."
7978 "POSIX.1-2008 の「同期 I/O」の選択肢として複数種類が規定されており、 動作を制"
7979 "御するために B<open>() フラグとして B<O_SYNC>, B<O_DSYNC>, B<O_RSYNC> が規定"
7980 "されている。 この選択肢を実装がサポートしているかに関わらず、 各実装では少な"
7981 "くとも通常のファイルに対して B<O_SYNC> が利用できなければならない。"
7984 #: build/C/man2/open.2:1160
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>.)"
7989 "Linux は B<O_SYNC> と B<O_DSYNC> を実装しているが、 B<O_RSYNC> は実装していな"
7990 "い (少し間違っているのだが、 glibc では B<O_RSYNC> が B<O_SYNC> と同じ値で定"
7994 #: build/C/man2/open.2:1178
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."
8005 "B<O_SYNC> は、 同期 I/O でのI<ファイル>完全性完了を提供する。 つまり、 書き込"
8006 "み操作はデータとすべての関連メタデータを裏で利用されているハードウェアにフ"
8007 "ラッシュすることを意味する。 B<O_DSYNC> は、 同期 I/O でのI<データ>完全性完了"
8008 "を提供する。 つまり、 書き込み操作はデータを裏で利用されているハードウェアに"
8009 "フラッシュするが、 それ以降の読み出し操作が正常に完了するのに必要なメタデータ"
8010 "の更新のみをフラッシュする。 データ完全性完了は、 ファイル完全性完了を必要と"
8011 "しないアプリケーションで、 ディスク操作の数を減らすことができる。"
8014 #: build/C/man2/open.2:1195
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)."
8026 "2 種類の完了の違いを理解するために、 ファイルメタデータの 2 つの要素、 ファイ"
8027 "ルの最終修正時刻 (I<st_mtime>) とファイル長、を考える。 すべての書き込み操作"
8028 "は最終修正時刻を更新するが、 ファイルの末尾にデータを追加する書き込み操作のみ"
8029 "がファイル長を変更する。 最終修正時刻は、 読み出しが正常に完了するのに必要で"
8030 "はないが、 ファイル長は必要である。 したがって、 B<O_DSYNC> はファイル長のメ"
8031 "タデータの更新がフラッシュされることだけを保証する (これに対して B<O_SYNC> で"
8032 "は最終修正時刻のメタデータも常にフラッシュされる)。"
8035 #: build/C/man2/open.2:1207
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>)."
8042 "Linux 2.6.33 より前では、 Linux は B<open>() では B<O_SYNC> フラグのみを実装"
8043 "していた。 しかしながら、 このフラグが指定された場合、 ほとんどのファイルシス"
8044 "テムで提供されていたのは実際には同期 I/O でのI<データ>完全性完了と等価なもの"
8045 "であった (つまり、 B<O_SYNC> は実際には B<O_DSYNC> と等価なものとして実装され"
8049 #: build/C/man2/open.2:1226
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."
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> の動作は同じになることが保証される。"
8066 #: build/C/man2/open.2:1226
8072 #: build/C/man2/open.2:1230
8074 "There are many infelicities in the protocol underlying NFS, affecting "
8075 "amongst others B<O_SYNC> and B<O_NDELAY>."
8077 "NFS を実現しているプロトコルには多くの不備があり、特に B<O_SYNC> と "
8078 "B<O_NDELAY> に影響する。"
8081 #: build/C/man2/open.2:1245
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 "
8089 "UID マッピングを使用している NFS ファイルシステムでは、 B<open>() がファイル"
8090 "ディスクリプタを返した場合でも B<read>(2) が B<EACCES> で拒否される場合があ"
8091 "る。 これはクライアントがアクセス許可のチェックを行って B<open>() を実行する"
8092 "が、読み込みや書き込みの際には サーバーで UID マッピングが行われるためであ"
8096 #: build/C/man2/open.2:1245
8098 msgid "File access mode"
8099 msgstr "ファイルアクセスモード"
8102 #: build/C/man2/open.2:1260
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>."
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> と同じ意味ではない。"
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
8123 #: build/C/man2/open.2:1277
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."
8131 "Linux では、特別な、非標準なアクセスモードとして 3 (バイナリでは 11) が 予約"
8132 "されており I<flags> に指定できる。 このアクセスモードを指定すると、ファイルの"
8133 "読み出し/書き込み許可をチェックし、 読み出しにも書き込みにも使用できないディ"
8134 "スクリプタを返す。 この非標準のアクセスモードはいくつかの Linux ドライバで、"
8135 "デバイス固有の B<ioctl>(2) 操作にのみ使用されるディスクリプタを返すために使わ"
8139 #: build/C/man2/open.2:1277
8141 msgid "Rationale for openat() and other directory file descriptor APIs"
8142 msgstr "openat() や他のディレクトリファイルディスクリプタ API の基本原理"
8145 #: build/C/man2/open.2:1305
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."
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> コールに関して説明するが、この基本原理は他のイン"
8166 #: build/C/man2/open.2:1336
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 "
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 "リプタを指定することで、 避けることができる。"
8194 #: build/C/man2/open.2:1347
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.)"
8201 "二つ目として、 B<openat>() を使うと、アプリケーションが管理するファイルディス"
8202 "クリプタにより、 スレッド単位の「カレントワーキングディレクトリ」を実装するこ"
8203 "とができる (この機能は、 I</proc/self/fd/dirfd> を使った方法でも実現すること"
8207 #: build/C/man2/open.2:1347
8213 #: build/C/man2/open.2:1364
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)."
8223 "B<O_DIRECT> フラグを使用する場合、ユーザ空間バッファの長さやアドレス、 I/O の"
8224 "ファイルオフセットに関してアラインメントの制限が課されることがある。 Linux で"
8225 "は、アラインメントの制限はファイルシステムやカーネルのバージョンに よって異な"
8226 "り、全く制限が存在しない場合もある。 しかしながら、現在のところ、指定された"
8227 "ファイルやファイルシステムに対して こうした制限があるかを見つけるための、アプ"
8228 "リケーション向けのインタフェースで ファイルシステム非依存のものは存在しな"
8229 "い。 いくつかのファイルシステムでは、制限を確認するための独自のインタフェース"
8230 "が 提供されている。例えば、 B<xfsctl>(3) の B<XFS_IOC_DIOINFO> 命令である。"
8233 #: build/C/man2/open.2:1374
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:"
8242 "Linux 2.4 では、転送サイズ、 ユーザーバッファのアライメント、ファイルオフセッ"
8243 "トは、 ファイルシステムの論理ブロックサイズの倍数でなければならない。 Linux "
8244 "2.6.0 以降では、 内部で使われるストレージの論理ブロックサイズのアライメント "
8245 "(通常は 512 バイト) で十分である。 論理ブロックサイズは B<ioctl>(2) "
8246 "B<BLKSSZGET> 操作や以下のシェルコマンドから知ることができる。"
8249 #: build/C/man2/open.2:1376
8251 msgid " blockdev --getss\n"
8252 msgstr " blockdev --getss\n"
8255 #: build/C/man2/open.2:1410
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)."
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"
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"
8287 #: build/C/man2/open.2:1420
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."
8294 "B<O_DIRECT> フラグは SGI IRIX で導入された。SGI IRIX にも Linux 2.4 と同様の "
8295 "(ユーザーバッファの) アラインメントの制限がある。 また、IRIX には適切な配置と"
8296 "サイズを取得するための B<fcntl>(2) コールがある。 FreeBSD 4.x も同じ名前のフ"
8297 "ラグを導入したが、アラインメントの制限はない。"
8300 #: build/C/man2/open.2:1429
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."
8306 "B<O_DIRECT> が Linux でサポートされたのは、カーネルバージョン 2.4.10 であ"
8307 "る。 古い Linux カーネルは、このフラグを単に無視する。 B<O_DIRECT> フラグをサ"
8308 "ポートしていないファイルシステムもあり、その場合は、 B<O_DIRECT> を使用する"
8309 "と B<open>() は B<EINVAL> で失敗する。"
8312 #: build/C/man2/open.2:1440
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."
8321 "アプリケーションは、同じファイル、 特に同じファイルの重複するバイト領域に対し"
8322 "て、 B<O_DIRECT> と通常の I/O を混ぜて使うのは避けるべきである。 ファイルシス"
8323 "テムがこのような状況において一貫性の問題を正しく 扱うことができる場合であって"
8324 "も、全体の I/O スループットは どちらか一方を使用するときと比べて低速になるで"
8325 "あろう。 同様に、アプリケーションは、同じファイルに対して B<mmap>(2) と直接 "
8326 "I/O (B<O_DIRECT>) を混ぜて使うのも避けるべきである。"
8329 #: build/C/man2/open.2:1462
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 "
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 でのアラインメントの制限はない。"
8358 #: build/C/man2/open.2:1469
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."
8364 "まとめると、 B<O_DIRECT> は、注意して使うべきであるが、強力なツールとなる可能"
8365 "性を持っている。 アプリケーションは B<O_DIRECT> をデフォルトでは無効になって"
8366 "いる性能向上のためのオプションと 考えておくのがよいであろう。"
8369 #: build/C/man2/open.2:1474
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"
8375 "「O_DIRECT でいつも困るのは、インタフェース全部が本当にお馬鹿な点だ。 たぶん"
8376 "危ないマインドコントロール剤で 頭がおかしくなったサルが設計したんじゃないか"
8379 #. FIXME . Check bugzilla report on open(O_ASYNC)
8380 #. See http://bugzilla.kernel.org/show_bug.cgi?id=5993
8382 #: build/C/man2/open.2:1486
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."
8387 "現在のところ、 B<open>() の呼び出し時に B<O_ASYNC> を指定してシグナル駆動 I/"
8388 "O を有効にすることはできない。 このフラグを有効にするには B<fcntl>(2) を使用"
8392 #: build/C/man2/open.2:1494
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."
8397 "カーネルが B<O_TMPFILE> 機能をサポートしているかを判定する際に、 B<EISDIR> "
8398 "と B<ENOENT> の 2 つのエラーコードをチェックしなければならない。"
8401 #: build/C/man2/open.2:1516
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)"
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)"
8414 #: build/C/man2/open_by_handle_at.2:25
8416 msgid "OPEN_BY_HANDLE_AT"
8417 msgstr "OPEN_BY_HANDLE_AT"
8420 #: build/C/man2/open_by_handle_at.2:29
8422 "name_to_handle_at, open_by_handle_at - obtain handle for a pathname and open "
8427 #: build/C/man2/open_by_handle_at.2:35
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"
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"
8441 #: build/C/man2/open_by_handle_at.2:39
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"
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"
8453 #: build/C/man2/open_by_handle_at.2:42
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"
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"
8463 #: build/C/man2/open_by_handle_at.2:59
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 "
8474 #: build/C/man2/open_by_handle_at.2:59
8476 msgid "name_to_handle_at()"
8480 #: build/C/man2/open_by_handle_at.2:71
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:"
8489 #: build/C/man2/open_by_handle_at.2:80
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"
8501 #: build/C/man2/open_by_handle_at.2:99
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>."
8513 #: build/C/man2/open_by_handle_at.2:112
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)."
8523 #: build/C/man2/open_by_handle_at.2:123
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>()."
8532 #: build/C/man2/open_by_handle_at.2:131
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."
8539 #: build/C/man2/open_by_handle_at.2:138
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:"
8546 #: build/C/man2/open_by_handle_at.2:146
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."
8554 #: build/C/man2/open_by_handle_at.2:157
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."
8561 "I<pathname> が相対パスが入った空でない文字列で、 I<dirfd> が特別な値 "
8562 "B<AT_FDCWD> の場合、 I<pathname> は呼び出し元のカレントワーキングディレクトリ"
8563 "に対する相対パスと解釈され、 そのファイルを参照するハンドルが返される。"
8566 #: build/C/man2/open_by_handle_at.2:170
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.)"
8574 "I<pathname> が相対パスが入った空でない文字列で、 I<dirfd> がディレクトリを参"
8575 "照するファイルディスクリプタの場合、 I<pathname> は I<dirfd> が参照するディレ"
8576 "クトリに対する相対パスと解釈され、 そのファイルを参照するハンドルが返される。"
8577 "(なぜ「ディレクトリファイルディスクリプタ」が役に立つのかについては "
8578 "B<openat>(2) を参照。)"
8581 #: build/C/man2/open_by_handle_at.2:184
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."
8590 #: build/C/man2/open_by_handle_at.2:196
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>()."
8600 #: build/C/man2/open_by_handle_at.2:209
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)."
8610 #: build/C/man2/open_by_handle_at.2:209
8612 msgid "open_by_handle_at()"
8616 #: build/C/man2/open_by_handle_at.2:216
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>()."
8624 #: build/C/man2/open_by_handle_at.2:226
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."
8633 #: build/C/man2/open_by_handle_at.2:239
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."
8641 #: build/C/man2/open_by_handle_at.2:245
8643 "The caller must have the B<CAP_DAC_READ_SEARCH> capability to invoke "
8644 "B<open_by_handle_at>()."
8648 #: build/C/man2/open_by_handle_at.2:252
8650 "On success, B<name_to_handle_at>() returns 0, and B<open_by_handle_at>() "
8651 "returns a nonnegative file descriptor."
8655 #: build/C/man2/open_by_handle_at.2:256
8657 "In the event of an error, both system calls return -1 and set I<errno> to "
8658 "indicate the cause of the error."
8662 #: build/C/man2/open_by_handle_at.2:263
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 "
8670 #: build/C/man2/open_by_handle_at.2:266
8671 msgid "B<name_to_handle_at>() can fail with the following errors:"
8675 #: build/C/man2/open_by_handle_at.2:273
8677 "I<pathname>, I<mount_id>, or I<handle> points outside your accessible "
8680 "I<pathname>, I<mount_id>, I<handle> のどれかがアクセス可能なアドレス空間の外"
8684 #: build/C/man2/open_by_handle_at.2:277
8685 msgid "I<flags> includes an invalid bit value."
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>."
8694 #: build/C/man2/open_by_handle_at.2:289
8696 "I<pathname> is an empty string, but B<AT_EMPTY_PATH> was not specified in "
8699 "I<pathname> が空文字列だが、 I<flags> に B<AT_EMPTY_PATH> がされていなかっ"
8703 #: build/C/man2/open_by_handle_at.2:301
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."
8711 #: build/C/man2/open_by_handle_at.2:304
8713 "The filesystem does not support decoding of a pathname to a file handle."
8717 #: build/C/man2/open_by_handle_at.2:314
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."
8725 #: build/C/man2/open_by_handle_at.2:317
8726 msgid "B<open_by_handle_at>() can fail with the following errors:"
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> がオープンされたファイルディスクリプタでない。"
8735 #: build/C/man2/open_by_handle_at.2:325
8736 msgid "I<handle> points outside your accessible address space."
8737 msgstr "I<handle> がアクセス可能なアドレス空間の外を指している。"
8740 #: build/C/man2/open_by_handle_at.2:331
8742 "I<handle-E<gt>handle_bytes> is greater than B<MAX_HANDLE_SZ> or is equal to "
8747 #: build/C/man2/open_by_handle_at.2:338
8749 "I<handle> refers to a symbolic link, but B<O_PATH> was not specified in "
8752 "I<handle> がシンボリックリンクを参照しているが、 I<flags> に B<O_PATH> がされ"
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> ケーパビリティを持っていない。"
8761 #: build/C/man2/open_by_handle_at.2:343
8767 #: build/C/man2/open_by_handle_at.2:349
8769 "The specified I<handle> is not valid. This error will occur if, for "
8770 "example, the file has been deleted."
8774 #: build/C/man2/open_by_handle_at.2:352
8776 "These system calls first appeared in Linux 2.6.39. Library support is "
8777 "provided in glibc since version 2.14."
8779 "これらのシステムコールは Linux 2.6.39 で初めて登場した。ライブラリによるサ"
8780 "ポートはバージョン 2.14 以降の glibc で提供されている。"
8783 #: build/C/man2/open_by_handle_at.2:354
8784 msgid "These system calls are nonstandard Linux extensions."
8788 #: build/C/man2/open_by_handle_at.2:359
8790 "FreeBSD has a broadly similar pair of system calls in the form of "
8791 "B<getfh>() and B<openfh>()."
8795 #: build/C/man2/open_by_handle_at.2:364
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>()."
8802 #: build/C/man2/open_by_handle_at.2:370
8804 "Some filesystem don't support the translation of pathnames to file handles, "
8805 "for example, I</proc>, I</sys>, and various network filesystems."
8809 #: build/C/man2/open_by_handle_at.2:377
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>()."
8816 #. https://lwn.net/Articles/375888/
8817 #. "Open by handle" - Jonathan Corbet, 2010-02-23
8819 #: build/C/man2/open_by_handle_at.2:387
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 "
8829 #. commit bcda76524cd1fa32af748536f27f674a13e56700
8831 #: build/C/man2/open_by_handle_at.2:409
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)."
8843 #: build/C/man2/open_by_handle_at.2:409
8845 msgid "Obtaining a persistent filesystem ID"
8849 #: build/C/man2/open_by_handle_at.2:423
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."
8859 #. e.g., http://stackoverflow.com/questions/6748429/using-libblkid-to-find-uuid-of-a-partition
8861 #: build/C/man2/open_by_handle_at.2:439
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>()."
8873 #: build/C/man2/open_by_handle_at.2:451
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."
8883 #: build/C/man2/open_by_handle_at.2:471
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.)"
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 つのプログラムの使用例である。"
8902 #: build/C/man2/open_by_handle_at.2:483
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"
8911 "$ B<rm cecilia.txt>\n"
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"
8919 "$ B<rm cecilia.txt>\n"
8921 #. Christoph Hellwig: That's why the file handles contain a generation
8922 #. counter that gets incremented in this case.
8924 #: build/C/man2/open_by_handle_at.2:494
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."
8933 #: build/C/man2/open_by_handle_at.2:505
8936 "$ B<stat --printf=\"%i\\en\" cecilia.txt> # Display inode number\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"
8942 "$ B<sudo ./t_open_by_handle_at E<lt> fh>\n"
8943 "open_by_handle_at: Stale NFS file handle\n"
8945 "$ B<stat --printf=\"%i\\en\" cecilia.txt> # Display inode number\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"
8951 "$ B<sudo ./t_open_by_handle_at E<lt> fh>\n"
8952 "open_by_handle_at: Stale NFS file handle\n"
8955 #: build/C/man2/open_by_handle_at.2:507
8957 msgid "Program source: t_name_to_handle_at.c"
8961 #: build/C/man2/open_by_handle_at.2:519
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"
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"
8985 #: build/C/man2/open_by_handle_at.2:522 build/C/man2/open_by_handle_at.2:595
8988 "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
8991 "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
8995 #: build/C/man2/open_by_handle_at.2:529
8999 "main(int argc, char *argv[])\n"
9001 " struct file_handle *fhp;\n"
9002 " int mount_id, fhsize, flags, dirfd, j;\n"
9003 " char *pathname;\n"
9006 "main(int argc, char *argv[])\n"
9008 " struct file_handle *fhp;\n"
9009 " int mount_id, fhsize, flags, dirfd, j;\n"
9010 " char *pathname;\n"
9013 #: build/C/man2/open_by_handle_at.2:534
9016 " if (argc != 2) {\n"
9017 " fprintf(stderr, \"Usage: %s pathname\\en\", argv[0]);\n"
9018 " exit(EXIT_FAILURE);\n"
9021 " if (argc != 2) {\n"
9022 " fprintf(stderr, \"Usage: %s pathname\\en\", argv[0]);\n"
9023 " exit(EXIT_FAILURE);\n"
9027 #: build/C/man2/open_by_handle_at.2:536
9029 msgid " pathname = argv[1];\n"
9030 msgstr " pathname = argv[1];\n"
9033 #: build/C/man2/open_by_handle_at.2:538
9035 msgid " /* Allocate file_handle structure */\n"
9036 msgstr " /* Allocate file_handle structure */\n"
9039 #: build/C/man2/open_by_handle_at.2:543
9042 " fhsize = sizeof(*fhp);\n"
9043 " fhp = malloc(fhsize);\n"
9044 " if (fhp == NULL)\n"
9045 " errExit(\"malloc\");\n"
9047 " fhsize = sizeof(*fhp);\n"
9048 " fhp = malloc(fhsize);\n"
9049 " if (fhp == NULL)\n"
9050 " errExit(\"malloc\");\n"
9053 #: build/C/man2/open_by_handle_at.2:546
9056 " /* Make an initial call to name_to_handle_at() to discover\n"
9057 " the size required for file handle */\n"
9059 " /* Make an initial call to name_to_handle_at() to discover\n"
9060 " the size required for file handle */\n"
9063 #: build/C/man2/open_by_handle_at.2:555
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"
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"
9085 #: build/C/man2/open_by_handle_at.2:557
9087 msgid " /* Reallocate file_handle structure with correct size */\n"
9088 msgstr " /* Reallocate file_handle structure with correct size */\n"
9091 #: build/C/man2/open_by_handle_at.2:562
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"
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"
9105 #: build/C/man2/open_by_handle_at.2:564
9107 msgid " /* Get file handle from pathname supplied on command line */\n"
9108 msgstr " /* Get file handle from pathname supplied on command line */\n"
9111 #: build/C/man2/open_by_handle_at.2:567
9114 " if (name_to_handle_at(dirfd, pathname, fhp, &mount_id, flags) == -1)\n"
9115 " errExit(\"name_to_handle_at\");\n"
9117 " if (name_to_handle_at(dirfd, pathname, fhp, &mount_id, flags) == -1)\n"
9118 " errExit(\"name_to_handle_at\");\n"
9121 #: build/C/man2/open_by_handle_at.2:570
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"
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"
9131 #: build/C/man2/open_by_handle_at.2:576
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"
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"
9147 #: build/C/man2/open_by_handle_at.2:580
9149 msgid "Program source: t_open_by_handle_at.c"
9153 #: build/C/man2/open_by_handle_at.2:592
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"
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"
9177 #: build/C/man2/open_by_handle_at.2:601
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"
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"
9193 #: build/C/man2/open_by_handle_at.2:611
9197 "open_mount_path_by_id(int mount_id)\n"
9201 " char mount_path[PATH_MAX];\n"
9202 " int mi_mount_id, found;\n"
9207 "open_mount_path_by_id(int mount_id)\n"
9211 " char mount_path[PATH_MAX];\n"
9212 " int mi_mount_id, found;\n"
9217 #: build/C/man2/open_by_handle_at.2:615
9220 " fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
9221 " if (fp == NULL)\n"
9222 " errExit(\"fopen\");\n"
9224 " fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
9225 " if (fp == NULL)\n"
9226 " errExit(\"fopen\");\n"
9229 #: build/C/man2/open_by_handle_at.2:622
9234 " while (!found) {\n"
9235 " nread = getline(&linep, &lsize, fp);\n"
9236 " if (nread == -1)\n"
9241 " while (!found) {\n"
9242 " nread = getline(&linep, &lsize, fp);\n"
9243 " if (nread == -1)\n"
9247 #: build/C/man2/open_by_handle_at.2:629
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"
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"
9265 #: build/C/man2/open_by_handle_at.2:634
9268 " if (mi_mount_id == mount_id)\n"
9273 " if (mi_mount_id == mount_id)\n"
9279 #: build/C/man2/open_by_handle_at.2:636
9281 msgid " fclose(fp);\n"
9282 msgstr " fclose(fp);\n"
9285 #: build/C/man2/open_by_handle_at.2:641
9289 " fprintf(stderr, \"Could not find mount point\\en\");\n"
9290 " exit(EXIT_FAILURE);\n"
9294 " fprintf(stderr, \"Could not find mount point\\en\");\n"
9295 " exit(EXIT_FAILURE);\n"
9299 #: build/C/man2/open_by_handle_at.2:644
9302 " return open(mount_path, O_RDONLY);\n"
9305 " return open(mount_path, O_RDONLY);\n"
9309 #: build/C/man2/open_by_handle_at.2:655
9313 "main(int argc, char *argv[])\n"
9315 " struct file_handle *fhp;\n"
9316 " int mount_id, fd, mount_fd, handle_bytes, j;\n"
9318 " char buf[1000];\n"
9319 "#define LINE_SIZE 100\n"
9320 " char line1[LINE_SIZE], line2[LINE_SIZE];\n"
9324 "main(int argc, char *argv[])\n"
9326 " struct file_handle *fhp;\n"
9327 " int mount_id, fd, mount_fd, handle_bytes, j;\n"
9329 " char buf[1000];\n"
9330 "#define LINE_SIZE 100\n"
9331 " char line1[LINE_SIZE], line2[LINE_SIZE];\n"
9335 #: build/C/man2/open_by_handle_at.2:660
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"
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"
9349 #: build/C/man2/open_by_handle_at.2:662
9351 msgid " /* Standard input contains mount ID and file handle information:\n"
9352 msgstr " /* Standard input contains mount ID and file handle information:\n"
9355 #: build/C/man2/open_by_handle_at.2:666
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"
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"
9367 #: build/C/man2/open_by_handle_at.2:672
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"
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"
9383 #: build/C/man2/open_by_handle_at.2:674
9385 msgid " mount_id = atoi(line1);\n"
9386 msgstr " mount_id = atoi(line1);\n"
9389 #: build/C/man2/open_by_handle_at.2:676
9391 msgid " handle_bytes = strtoul(line2, &nextp, 0);\n"
9392 msgstr " handle_bytes = strtoul(line2, &nextp, 0);\n"
9395 #: build/C/man2/open_by_handle_at.2:678
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"
9401 #: build/C/man2/open_by_handle_at.2:682
9404 " fhp = malloc(sizeof(struct file_handle) + handle_bytes);\n"
9405 " if (fhp == NULL)\n"
9406 " errExit(\"malloc\");\n"
9408 " fhp = malloc(sizeof(struct file_handle) + handle_bytes);\n"
9409 " if (fhp == NULL)\n"
9410 " errExit(\"malloc\");\n"
9413 #: build/C/man2/open_by_handle_at.2:684
9415 msgid " fhp-E<gt>handle_bytes = handle_bytes;\n"
9416 msgstr " fhp-E<gt>handle_bytes = handle_bytes;\n"
9419 #: build/C/man2/open_by_handle_at.2:686
9421 msgid " fhp-E<gt>handle_type = strtoul(nextp, &nextp, 0);\n"
9422 msgstr " fhp-E<gt>handle_type = strtoul(nextp, &nextp, 0);\n"
9425 #: build/C/man2/open_by_handle_at.2:689
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"
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"
9435 #: build/C/man2/open_by_handle_at.2:694
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"
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"
9449 #: build/C/man2/open_by_handle_at.2:699
9452 " if (argc E<gt> 1)\n"
9453 " mount_fd = open(argv[1], O_RDONLY);\n"
9455 " mount_fd = open_mount_path_by_id(mount_id);\n"
9457 " if (argc E<gt> 1)\n"
9458 " mount_fd = open(argv[1], O_RDONLY);\n"
9460 " mount_fd = open_mount_path_by_id(mount_id);\n"
9463 #: build/C/man2/open_by_handle_at.2:702
9466 " if (mount_fd == -1)\n"
9467 " errExit(\"opening mount fd\");\n"
9469 " if (mount_fd == -1)\n"
9470 " errExit(\"opening mount fd\");\n"
9473 #: build/C/man2/open_by_handle_at.2:704
9475 msgid " /* Open file using handle and mount point */\n"
9476 msgstr " /* Open file using handle and mount point */\n"
9479 #: build/C/man2/open_by_handle_at.2:708
9482 " fd = open_by_handle_at(mount_fd, fhp, O_RDONLY);\n"
9484 " errExit(\"open_by_handle_at\");\n"
9486 " fd = open_by_handle_at(mount_fd, fhp, O_RDONLY);\n"
9488 " errExit(\"open_by_handle_at\");\n"
9491 #: build/C/man2/open_by_handle_at.2:710
9493 msgid " /* Try reading a few bytes from the file */\n"
9494 msgstr " /* Try reading a few bytes from the file */\n"
9497 #: build/C/man2/open_by_handle_at.2:714
9500 " nread = read(fd, buf, sizeof(buf));\n"
9501 " if (nread == -1)\n"
9502 " errExit(\"read\");\n"
9504 " nread = read(fd, buf, sizeof(buf));\n"
9505 " if (nread == -1)\n"
9506 " errExit(\"read\");\n"
9509 #: build/C/man2/open_by_handle_at.2:716
9511 msgid " printf(\"Read %zd bytes\\en\", nread);\n"
9512 msgstr " printf(\"Read %zd bytes\\en\", nread);\n"
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)"
9520 #: build/C/man2/open_by_handle_at.2:736
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>"
9527 #: build/C/man3/perror.3:31
9533 #: build/C/man3/perror.3:34
9534 msgid "perror - print a system error message"
9535 msgstr "perror - システムエラーメッセージを出力する"
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<);>"
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>>"
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<[];>"
9553 #: build/C/man3/perror.3:44
9554 msgid "B<int >I<sys_nerr>B<;>"
9555 msgstr "B<int >I<sys_nerr>B<;>"
9558 #: build/C/man3/perror.3:46
9559 msgid "B<int >I<errno>B<; /* Not really declared this way; see errno(3). */>"
9561 "B<int >I<errno>B<; /* 実際にこのように宣言されているわけではない。 errno(3) "
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"
9570 #: build/C/man3/perror.3:68
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."
9578 "関数 B<perror>() は、システムコールやライブラリ関数の呼び出しにおいて、最後"
9579 "に発生した エラーに関する説明メッセージを生成し、標準エラー出力に出力する。 "
9580 "(I<s> が NULL でなく、 I<*s> がヌルバイト (\\(aq\\e0\\(aq) でない場合には) 引"
9581 "き数の文字列 I<s> がまず出力され、続いてコロン、空白が出力され、 それからメッ"
9585 #: build/C/man3/perror.3:76
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."
9592 "このメッセージを最大限活用するためには、引き数文字列にエラーが発生した 関数名"
9593 "を入れておくとよい。 エラー番号は外部変数 I<errno> から取得される。 I<errno> "
9594 "はエラーが発生した時に設定され、 成功した呼び出しではクリアされない。"
9597 #: build/C/man3/perror.3:90
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."
9605 "大域変数のエラーリスト I<sys_errlist>[] は I<errno> を添字とする配列で、こ"
9607 "配列から改行無しのエラーメッセージが取得される。 テーブルでの最大のメッセー"
9609 "番号は I<sys_nerr> -1 となる。 このテーブルを直接参照する際には注意するこ"
9611 "なぜなら、新しいエラー番号が I<sys_errlist>[] に追加済とは限らないからであ"
9613 "現在では、I<sys_errlist>[] の使用は非推奨となっている。"
9616 #: build/C/man3/perror.3:111
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."
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> の値を 保存しておかなければならな"
9639 #: build/C/man3/perror.3:124
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."
9645 "関数 B<perror>() と外部変数 I<errno> (B<errno>(3) 参照) は C89, 4.3BSD, "
9646 "POSIX.1-2001 に準拠している。 外部変数 I<sys_nerr> と I<sys_errlist> は BSD "
9649 #. and only when _BSD_SOURCE is defined.
9652 #. is defined, the symbols
9658 #: build/C/man3/perror.3:139
9660 "The externals I<sys_nerr> and I<sys_errlist> are defined by glibc, but in "
9661 "I<E<lt>stdio.hE<gt>>."
9663 "外部変数 I<sys_nerr> と I<sys_errlist> は glibc で定義されているが、 "
9664 "I<E<lt>stdio.hE<gt>> に含まれている。"
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)"
9672 #: build/C/man2/pipe.2:36
9678 #: build/C/man2/pipe.2:36 build/C/man3/printf.3:34
9684 #: build/C/man2/pipe.2:39
9685 msgid "pipe, pipe2 - create pipe"
9686 msgstr "pipe, pipe2 - パイプを生成する"
9689 #: build/C/man2/pipe.2:44
9691 msgid "B<int pipe(int >I<pipefd>B<[2]);>\n"
9692 msgstr "B<int pipe(int >I<pipefd>B<[2]);>\n"
9695 #: build/C/man2/pipe.2:48
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"
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"
9707 #: build/C/man2/pipe.2:50
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"
9713 #: build/C/man2/pipe.2:66
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 "
9723 "B<pipe>() はパイプを生成する。 パイプは、プロセス間通信に使用できる単方向の"
9724 "データチャネルである。 配列 I<pipefd> は、パイプの両端を参照する二つのファイ"
9725 "ルディスクリプタを 返すのに使用される。 I<pipefd[0]> がパイプの読み出し側、 "
9726 "I<pipefd[1]> がパイプの書き込み側である。 パイプの書き込み側に書き込まれた"
9727 "データは、 パイプの読み出し側から読み出されるまでカーネルでバッファリングされ"
9728 "る。 さらなる詳細は B<pipe>(7) を参照のこと。"
9731 #: build/C/man2/pipe.2:76
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:"
9736 "B<pipe2>() は I<flags> が 0 の場合には B<pipe>() と同じである。 I<flags> に"
9737 "以下の値をビット毎の論理和 (OR) で指定することで、 異なる動作をさせることがで"
9741 #: build/C/man2/pipe.2:76
9743 msgid "B<O_CLOEXEC>"
9744 msgstr "B<O_CLOEXEC>"
9747 #: build/C/man2/pipe.2:84
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."
9753 "新しく生成される二つのファイルディスクリプタの close-on-exec "
9754 "(B<FD_CLOEXEC>) フラグをセットする。 このフラグが役に立つ理由については、 "
9755 "B<open>(2) の B<O_CLOEXEC> フラグの説明を参照のこと。"
9758 #: build/C/man2/pipe.2:84
9760 msgid "B<O_DIRECT> (since Linux 3.4)"
9761 msgstr "B<O_DIRECT> (Linux 3.4 以降)"
9763 #. commit 9883035ae7edef3ec62ad215611cb8e17d6a1a5d
9765 #: build/C/man2/pipe.2:94
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:"
9771 "「パケット」モードで入出力を行うパイプを作成する。 このパイプへの "
9772 "B<write>(2) それぞれが別のパケットとして扱われ、 このパイプからの B<read>(2) "
9773 "では一度に一つパケットが読み出される。 以下の点に注意すること。"
9776 #: build/C/man2/pipe.2:105
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."
9782 "B<PIPE_BUF> バイト (B<pipe>(7) 参照) より大きいデータを書き込んだ場合、複数の"
9784 "定数 B<PIPE_BUF> は I<E<lt>limits.hE<gt>> で定義されている。"
9787 #: build/C/man2/pipe.2:115
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)."
9794 "B<read>(2) で次のパケットよりも小さなバッファサイズを指定した場合、要求された"
9795 "バイト数のデータが読み出され、そのパケットの超過分のバイトは破棄される。 可能"
9796 "性のある最大サイズのパケットを読み出すには、B<PIPE_BUF> のバッファサイズを指"
9797 "定すれば十分である (上の項目を参照)。"
9800 #: build/C/man2/pipe.2:120
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.)"
9805 "長さ 0 のパケットはサポートされていない。 (バッファサイズ 0 を指定した "
9806 "B<read>(2) は何も行わず 0 を返す)。"
9809 #: build/C/man2/pipe.2:125
9811 "Older kernels that do not support this flag will indicate this via an "
9814 "このフラグをサポートしていない古いカーネルでは、エラー B<EINVAL> が返る。これ"
9815 "によりカーネルがサポートしていないことが分かる。"
9818 #: build/C/man2/pipe.2:125
9820 msgid "B<O_NONBLOCK>"
9821 msgstr "B<O_NONBLOCK>"
9824 #: build/C/man2/pipe.2:133
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 "
9830 "新しく生成される二つのオープンファイル記述 (open file description) の "
9831 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
9832 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2) を追加で呼び出す必要がなく"
9836 #: build/C/man2/pipe.2:143
9837 msgid "I<pipefd> is not valid."
9838 msgstr "I<pipefd> が無効な値である。"
9841 #: build/C/man2/pipe.2:148
9842 msgid "(B<pipe2>()) Invalid value in I<flags>."
9843 msgstr "(B<pipe2>()) I<flags> に無効な値が入っている。"
9846 #: build/C/man2/pipe.2:151
9847 msgid "Too many file descriptors are in use by the process."
9848 msgstr "このプロセスで使われているファイルディスクリプタが多すぎる。"
9851 #: build/C/man2/pipe.2:159
9853 "B<pipe2>() was added to Linux in version 2.6.27; glibc support is available "
9854 "starting with version 2.9."
9856 "B<pipe2>() はバージョン 2.6.27 で Linux に追加された。 glibc によるサポート"
9857 "はバージョン 2.9 以降で利用できる。"
9860 #: build/C/man2/pipe.2:162
9861 msgid "B<pipe>(): POSIX.1-2001."
9862 msgstr "B<pipe>(): POSIX.1-2001."
9865 #: build/C/man2/pipe.2:165
9866 msgid "B<pipe2>() is Linux-specific."
9867 msgstr "B<pipe2>() は Linux 固有である。"
9869 #. fork.2 refers to this example program.
9871 #: build/C/man2/pipe.2:181
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 "
9881 "以下のプログラムではパイプを生成し、その後 B<fork>(2) で子プロセスを生成す"
9882 "る。 子プロセスは同じパイプを参照するファイルディスクリプタ集合のコピーを 継"
9883 "承する。 B<fork>(2) の後、各プロセスはパイプ (B<pipe>(7) を参照) に必要がな"
9884 "くなったディスクリプタをクローズする。 親プロセスはプログラムのコマンドライン"
9885 "引き数に含まれる 文字列をパイプへ書き込み、 子プロセスはこの文字列をパイプか"
9886 "ら 1 バイトずつ読み込んで標準出力にエコーする。"
9889 #: build/C/man2/pipe.2:189
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"
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"
9907 #: build/C/man2/pipe.2:196
9911 "main(int argc, char *argv[])\n"
9918 "main(int argc, char *argv[])\n"
9925 #: build/C/man2/pipe.2:201
9928 " if (argc != 2) {\n"
9929 " fprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
9930 " exit(EXIT_FAILURE);\n"
9933 " if (argc != 2) {\n"
9934 " fprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
9935 " exit(EXIT_FAILURE);\n"
9939 #: build/C/man2/pipe.2:206
9942 " if (pipe(pipefd) == -1) {\n"
9943 " perror(\"pipe\");\n"
9944 " exit(EXIT_FAILURE);\n"
9947 " if (pipe(pipefd) == -1) {\n"
9948 " perror(\"pipe\");\n"
9949 " exit(EXIT_FAILURE);\n"
9953 #: build/C/man2/pipe.2:212
9957 " if (cpid == -1) {\n"
9958 " perror(\"fork\");\n"
9959 " exit(EXIT_FAILURE);\n"
9963 " if (cpid == -1) {\n"
9964 " perror(\"fork\");\n"
9965 " exit(EXIT_FAILURE);\n"
9969 #: build/C/man2/pipe.2:215
9972 " if (cpid == 0) { /* Child reads from pipe */\n"
9973 " close(pipefd[1]); /* Close unused write end */\n"
9975 " if (cpid == 0) { /* 子プロセスがパイプから読み込む */\n"
9976 " close(pipefd[1]); /* 使用しない write 側はクローズする */\n"
9979 #: build/C/man2/pipe.2:218
9982 " while (read(pipefd[0], &buf, 1) E<gt> 0)\n"
9983 " write(STDOUT_FILENO, &buf, 1);\n"
9985 " while (read(pipefd[0], &buf, 1) E<gt> 0)\n"
9986 " write(STDOUT_FILENO, &buf, 1);\n"
9989 #: build/C/man2/pipe.2:222
9992 " write(STDOUT_FILENO, \"\\en\", 1);\n"
9993 " close(pipefd[0]);\n"
9994 " _exit(EXIT_SUCCESS);\n"
9996 " write(STDOUT_FILENO, \"\\en\", 1);\n"
9997 " close(pipefd[0]);\n"
9998 " _exit(EXIT_SUCCESS);\n"
10000 #. type: Plain text
10001 #: build/C/man2/pipe.2:231
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"
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"
10022 #. type: Plain text
10023 #: build/C/man2/pipe.2:239
10025 "B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), "
10028 "B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), "
10032 #: build/C/man3/popen.3:40
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 - プロセスとの入力/出力用のパイプストリーム"
10042 #. type: Plain text
10043 #: build/C/man3/popen.3:48
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"
10048 #. type: Plain text
10049 #: build/C/man3/popen.3:50
10051 msgid "B<int pclose(FILE *>I<stream>B<);>\n"
10052 msgstr "B<int pclose(FILE *>I<stream>B<);>\n"
10054 #. type: Plain text
10055 #: build/C/man3/popen.3:60
10056 msgid "B<popen>(), B<pclose>():"
10057 msgstr "B<popen>(), B<pclose>():"
10059 #. type: Plain text
10060 #: build/C/man3/popen.3:62
10062 "_POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE"
10064 "_POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE"
10066 #. type: Plain text
10067 #: build/C/man3/popen.3:73
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."
10074 "B<popen>() 関数は、プロセスをオープンする。具体的には、 パイプを生成し、"
10075 "フォークを行い、シェルを起動する。 定義から分かるように、パイプは一方向なの"
10076 "で、 I<type> 引き数には読み込みか書き込みのどちらか一方だけを指定できる (両方"
10077 "は指定できない)。 生成されるストリームは、この指定に対応して、読み取り専用ま"
10078 "たは 書き込み専用のいずれかとなる。"
10080 #. type: Plain text
10081 #: build/C/man3/popen.3:97
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."
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> フラグの説明を参照のこと。"
10103 #. type: Plain text
10104 #: build/C/man3/popen.3:113
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 "
10115 "B<popen>() からの返り値は、通常の標準 I/O ストリームと同じであるが、 "
10116 "B<fclose>(3) ではなく B<pclose>() で閉じなくてはならないことだけが異なる。 "
10117 "このストリームへ書き込んだ結果はコマンドの標準入力に書き込まれる。 そして、コ"
10118 "マンドの標準出力は、 コマンドそのものが置き換わってしまわない限り、 "
10119 "B<popen>() を呼んだプロセスの標準出力と同じことになる。 逆に、 ストリームか"
10120 "らの読み込みは、 そのコマンドの標準出力を読み込むことになる。 そして、そのコ"
10121 "マンドの標準入力は B<popen>() を呼んだプロセスの標準入力と同一である。"
10123 #. type: Plain text
10124 #: build/C/man3/popen.3:117
10125 msgid "Note that output B<popen>() streams are fully buffered by default."
10127 "デフォルトでは、 B<popen>() の出力ストリームは完全にバッファリングされること"
10130 #. type: Plain text
10131 #: build/C/man3/popen.3:123
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)."
10136 "B<pclose>() 関数は、(パイプに) 関連づけられたプロセスが終了するのを待ち、 "
10137 "B<wait4>(2) によって返されたコマンドの終了状態を返す。"
10139 #. type: Plain text
10140 #: build/C/man3/popen.3:131
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."
10145 "B<popen>() 関数は、 B<fork>(2) または B<pipe>(2) 呼び出しが失敗した場合"
10146 "や、 メモリ割り当てができなかった場合、 NULL を返す。"
10148 #. These conditions actually give undefined results, so I commented
10151 #. is not associated with a "popen()ed" command, if
10153 #. already "pclose()d", or if
10154 #. type: Plain text
10155 #: build/C/man3/popen.3:146
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."
10161 "B<pclose>() 関数は、 B<wait4>(2) がエラーを返したり、何か他のエラーが見つ"
10162 "かった場合、 -1 を返す。 その場合、 I<errno> にエラーの原因を示す値が設定され"
10165 #. type: Plain text
10166 #: build/C/man3/popen.3:165
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>."
10173 "B<popen>() 関数は、メモリアロケーションに失敗しても I<errno> をセットしな"
10174 "い。 B<popen>() が中で呼び出す B<fork>(2) や B<pipe>(2) が失敗した場合に"
10175 "は、 I<errno> が適切にセットされる。 引き数 I<type> が無効であり、この状態が"
10176 "検知された場合には、 I<errno> が B<EINVAL> にセットされる。"
10178 #. type: Plain text
10179 #: build/C/man3/popen.3:172
10181 "If B<pclose>() cannot obtain the child status, I<errno> is set to B<ECHILD>."
10183 "B<pclose>() が、子プロセスの状態を取得できなかった場合、 I<errno> が "
10184 "B<ECHILD> にセットされる。"
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 での拡張である。"
10191 #. type: Plain text
10192 #: build/C/man3/popen.3:191
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>()."
10201 "読み込みのために開かれたコマンドの標準入力は B<popen>(), を呼んだプロセスと一"
10202 "緒に、その読み取り位置を共有する。 そのため、もとのプロセスがバッファリングさ"
10203 "れた読み取りを終了したら、 そのコマンドの入力位置は予想されたものには なって"
10204 "いないかもしれない。 同様に、書き込みのために開かれたコマンドからの出力は、 "
10205 "もとのプロセスの出力と混ざり合うことになるかもしれない。 後者は B<popen>() "
10206 "の前に B<fflush>(3) を呼び出すことによって回避可能である。"
10213 #. function appeared in Version 7 AT&T UNIX.
10214 #. type: Plain text
10215 #: build/C/man3/popen.3:201
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."
10221 "シェルの実行の失敗は、 シェルがコマンドの実行に失敗したことや、 コマンドがす"
10222 "ぐに終了してしまったことと、区別がつかない。 唯一のヒントは終了状態が 127 に"
10225 #. type: Plain text
10226 #: build/C/man3/popen.3:211
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)"
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)"
10235 #: build/C/man3/printf.3:34
10240 #. type: Plain text
10241 #: build/C/man3/printf.3:38
10243 "printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - "
10244 "formatted output conversion"
10246 "printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - "
10247 "指定された書式に変換して出力を行う"
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<, ...);>"
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<, ...);>"
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<, ...);>"
10264 #. type: Plain text
10265 #: build/C/man3/printf.3:48
10267 "B<int snprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10268 "*>I<format>B<, ...);>"
10270 "B<int snprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10271 "*>I<format>B<, ...);>"
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>>"
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<);>"
10283 #. type: Plain text
10284 #: build/C/man3/printf.3:54
10286 "B<int vfprintf(FILE *>I<stream>B<, const char *>I<format>B<, va_list "
10289 "B<int vfprintf(FILE *>I<stream>B<, const char *>I<format>B<, va_list "
10292 #. type: Plain text
10293 #: build/C/man3/printf.3:56
10295 "B<int vsprintf(char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
10297 "B<int vsprintf(char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
10299 #. type: Plain text
10300 #: build/C/man3/printf.3:59
10302 "B<int vsnprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10303 "*>I<format>B<, va_list >I<ap>B<);>"
10305 "B<int vsnprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10306 "*>I<format>B<, va_list >I<ap>B<);>"
10308 #. type: Plain text
10309 #: build/C/man3/printf.3:68
10310 msgid "B<snprintf>(), B<vsnprintf>():"
10311 msgstr "B<snprintf>(), B<vsnprintf>():"
10313 #. type: Plain text
10314 #: build/C/man3/printf.3:71
10316 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE || "
10317 "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
10319 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE || "
10320 "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
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>"
10327 #. type: Plain text
10328 #: build/C/man3/printf.3:101
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 "
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> に書き込む。"
10343 #. type: Plain text
10344 #: build/C/man3/printf.3:110
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>."
10349 "B<snprintf>() と B<vsnprintf>() は最大で I<size> バイトを I<str> に書き込"
10350 "む (I<size> には文字列を終端するヌルバイト (\\(aq\\e0\\(aq) もを含まれる)。"
10352 #. type: Plain text
10353 #: build/C/man3/printf.3:134
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)."
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) を参照のこと。"
10369 #. type: Plain text
10370 #: build/C/man3/printf.3:141
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 "
10377 "これらの 8 つの関数は I<format> 文字列の制御に従って出力を書き出す。 "
10378 "I<format> 文字列は、これに続く引き数 (または B<stdarg>(3) の可変長引き数機構"
10379 "を使ってアクセスできる引き数) をどのように変換して出力するかを指定する。"
10381 #. type: Plain text
10382 #: build/C/man3/printf.3:152
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."
10390 "C99 と POSIX.1-2001 では、 B<sprintf>(), B<snprintf>(), B<vsprintf>(), "
10391 "B<vsnprintf>() の呼び出しで、範囲が重複するオブジェクト間でコピーが発生する"
10392 "場合の 結果は不定であると規定されている (例えば、出力先の文字列と入力された "
10393 "引き数の一つが同じバッファを参照している場合などである)。 「注意」の節を参"
10397 #: build/C/man3/printf.3:152
10399 msgid "Return value"
10400 msgstr "Return Values"
10402 #. type: Plain text
10403 #: build/C/man3/printf.3:155
10405 "Upon successful return, these functions return the number of characters "
10406 "printed (excluding the null byte used to end output to strings)."
10408 "成功時には、上記の関数は書き込まれた文字数を返す (文字列の最後を示すために使"
10409 "用するヌルバイトは数に含まれない)。"
10411 #. type: Plain text
10412 #: build/C/man3/printf.3:171
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.)"
10422 "B<snprintf>() と B<vsnprintf>() は、 I<size> バイトを越える文字数を書き込ま"
10423 "ない (I<size> には文字列を終端するヌルバイト (\\(aq\\e0\\(aq) も含まれる)。 "
10424 "この制限によって出力が切り詰められた場合には、 もし十分なスペースがあれば書き"
10425 "込まれたであろう文字の個数 (文字列を終端するヌルバイトを除く) を返す。 従っ"
10426 "て、返り値が I<size> 以上だった場合、出力が切り詰められたことを意味する (後述"
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 "エラーが発生した場合は、負の数を返す。"
10435 #: build/C/man3/printf.3:173
10437 msgid "Format of the format string"
10438 msgstr "フォーマット文字列のフォーマット"
10440 #. type: Plain text
10441 #: build/C/man3/printf.3:195
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>."
10453 "フォーマット文字列は文字の列で、 (もしあるなら) 初期シフト状態で始まり、初期"
10454 "シフト状態で終わる。 フォーマット用の文字列は 0 個以上の命令 (directives) に"
10455 "よって構成される。 命令には、通常文字と変換指定 (conversion specifications) "
10456 "がある。 通常文字は B<%> 以外の文字で、出力ストリームにそのままコピーされ"
10457 "る。 変換指定は、それぞれが 0 個以上の引き数を取る。 各変換指定は文字 B<%> で"
10458 "始まり、 I<変換指定子 (conversion specifier)> で終わる。 B<%> と変換指定子の"
10459 "間には、0 個以上の I<フラグ 、> 最小 I<フィールド幅 、> I<精度 、> I<長さ修飾"
10460 "子> を (この順序で) 置くことができる。"
10462 #. type: Plain text
10463 #: build/C/man3/printf.3:208
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,"
10475 "引き数は (型の格上げの後は) 変換指定子が表す型と正確に対応しなければならな"
10476 "い。 デフォルトでは、\\(aq*\\(aq や変換指定子が出てくる毎に次の引き数を要求さ"
10477 "れ、 引き数は指定された順序で使用されていく (指定された引き数の個数が不十分な"
10478 "らエラーとなる)。 また、引き数が必要な箇所で \\(aq%\\(aq の代わりに \"%m$"
10479 "\"、 \\(aq*\\(aqの代わりに \"*m$\" と書くことで、 明示的にどの引き数を使用す"
10480 "るかを指定することもできる。 ここで 10進の整数 m は希望の引き数の引き数リスト"
10481 "での位置を示す (最初の引き数の番号が 1 である)。 従って、"
10483 #. type: Plain text
10484 #: build/C/man3/printf.3:212
10486 msgid "printf(\"%*d\", width, num);\n"
10487 msgstr "printf(\"%*d\", width, num);\n"
10489 #. type: Plain text
10490 #: build/C/man3/printf.3:216
10494 #. type: Plain text
10495 #: build/C/man3/printf.3:220
10497 msgid "printf(\"%2$*1$d\", width, num);\n"
10498 msgstr "printf(\"%2$*1$d\", width, num);\n"
10500 #. type: Plain text
10501 #: build/C/man3/printf.3:236
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 "
10513 "は等価である。 二番目の書き方では同じ引き数を繰り返し参照することができる。 "
10514 "C99 標準には、 Single UNIX Specification 由来の \\(aq$\\(aq を使った書き方は"
10515 "含まれていない。 \\(aq$\\(aq を使ったスタイルを使うと、引き数を取る変換及び幅"
10516 "と精度の引き数を 全てこのスタイルで指定しなければならないが、 引き数を消費し"
10517 "ない \"%%\" フォーマットと混ざっているかもしれない。 \\(aq$\\(aq で指定される"
10518 "引き数の番号に空きがあってはならない。 例えば、もし引き数 1 と 3 が指定される"
10519 "と、引き数 2 もフォーマット文字列のどこかで 指定されなければならない。"
10521 #. type: Plain text
10522 #: build/C/man3/printf.3:246
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,"
10529 "数値変換には小数点や 1000 単位の区切り文字を使うものもある。 実際にどの文字を"
10530 "使うかはロケールの B<LC_NUMERIC> による。 POSIX ロケールでは小数点に \\(aq."
10531 "\\(aq を用い、 区切り文字は使わない。 従って、"
10533 #. type: Plain text
10534 #: build/C/man3/printf.3:250
10536 msgid " printf(\"%\\(aq.2f\", 1234567.89);\n"
10537 msgstr "printf(\"%\\(aq.2f\", 1234567.89);\n"
10539 #. type: Plain text
10540 #: build/C/man3/printf.3:255
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."
10545 "は、 POSIX ロケールでは \"1234567.89\" 、 nl_NL ロケールでは "
10546 "\"1234567,89\"、 da_DK ロケールでは \"1.234.567,89\" となる。"
10549 #: build/C/man3/printf.3:255
10551 msgid "The flag characters"
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 個以上のフラグ文字が続く。"
10560 #: build/C/man3/printf.3:257
10565 #. type: Plain text
10566 #: build/C/man3/printf.3:291
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."
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 "換の場合、他の変換とは異なり、末尾のゼロが変換結果から削除されない。 その他の"
10589 #: build/C/man3/printf.3:291
10594 #. type: Plain text
10595 #: build/C/man3/printf.3:331
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 "
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> フラグは無視される。 その他の変換では、動作は未定義"
10613 #: build/C/man3/printf.3:331
10618 #. type: Plain text
10619 #: build/C/man3/printf.3:342
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."
10626 "変換値をフィールド境界で左揃えにする (デフォルトは右揃えである)。 変換された"
10627 "値は 左側ではなく右側を空白文字やゼロで埋められる。 B<-> と B<\\&0> の両方が"
10628 "指定された場合には、 B<-> が優先される。"
10631 #: build/C/man3/printf.3:342
10633 msgid "B<\\(aq \\(aq>"
10636 #. type: Plain text
10637 #: build/C/man3/printf.3:346
10639 "(a space) A blank should be left before a positive number (or empty string) "
10640 "produced by a signed conversion."
10642 "(1個の半角スペース) 符号付き変換で生成された正の数字の前に空白 (または空文字"
10646 #: build/C/man3/printf.3:346
10651 #. type: Plain text
10652 #: build/C/man3/printf.3:354
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."
10658 "符号付き変換によって出力される数字の前に、常に符号 (+ か -) が置かれる。 デ"
10659 "フォルトでは、符号は負の数字の場合のみ付与される。 B<+> と半角スペースの 両方"
10660 "が使われている場合には、 B<+> が優先される。"
10662 #. type: Plain text
10663 #: build/C/man3/printf.3:357
10665 "The five flag characters above are defined in the C99 standard. The Single "
10666 "UNIX Specification specifies one further flag character."
10668 "上記の 5 つのフラグは C99 標準で定義されている。 Single UNIX Specified では、"
10669 "さらにもう一つフラグ文字が規定されている。"
10672 #: build/C/man3/printf.3:357
10677 #. type: Plain text
10678 #: build/C/man3/printf.3:374
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.)"
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 で追加された。"
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 では、さらに一つフラグ文字が追加されている。"
10697 #: build/C/man3/printf.3:376
10702 #. outdigits keyword in locale file
10703 #. type: Plain text
10704 #: build/C/man3/printf.3:386
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."
10710 "10進整数変換 (B<i>, B<d>, B<u>) において、ロケールの代替出力数字があれば、そ"
10711 "れを用いて出力する。 例えば、 glibc 2.2.3 以降では、ペルシア (\"fa_IR\") ロ"
10712 "ケールで アラビア数字 (Arabic-Indic digits) を出力できる。"
10715 #: build/C/man3/printf.3:386
10717 msgid "The field width"
10720 #. type: Plain text
10721 #: build/C/man3/printf.3:402
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."
10735 "最小のフィールド幅を指定する 10進数の数値文字列 (文字列の最初の文字は ゼロ以"
10736 "外)。本項目はオプションである。 変換された値の文字数がフィールド長よりも少な"
10737 "い場合、 フィールドの左側をスペースで埋める (左揃えのフラグがある場合は右側を"
10738 "埋める)。 10進数の文字列の代わりに \"*\" や \"*m$\" (I<m> は 10進整数) を書く"
10739 "こともできる。 \"*\" と \"*m$\" はそれぞれ、次の引き数と I<m> 番目の引き数を"
10740 "フィールド幅として 使うことを指定する (これらの引き数は I<int> 型でなければな"
10741 "らない)。 フィールド幅に負の数が指定された場合は、 \\(aq-\\(aq フラグと正の数"
10742 "のフィールド幅として扱われる。 フィールド幅が小さかったり指定がなかったりして"
10743 "も、フィールドが切り詰められる ことはない。もし変換結果がフィールド幅よりも広"
10744 "かった場合、 フィールドは変換結果が入る幅に広げられる。"
10747 #: build/C/man3/printf.3:402
10749 msgid "The precision"
10752 #. type: Plain text
10753 #: build/C/man3/printf.3:439
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."
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> 変換では、文字列から出力される最大文字数を指定する。"
10780 #: build/C/man3/printf.3:439
10782 msgid "The length modifier"
10785 #. type: Plain text
10786 #: build/C/man3/printf.3:449
10788 "Here, \"integer conversion\" stands for B<d>, B<i>, B<o>, B<u>, B<x>, or "
10791 "「整数変換」とは、 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変換のことである。"
10794 #: build/C/man3/printf.3:449 build/C/man3/scanf.3:294
10799 #. type: Plain text
10800 #: build/C/man3/printf.3:460
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."
10806 "整数変換に対応する引き数が I<signed char> か I<unsigned char> で、 B<n> 変換"
10807 "に対応する引き数が I<signed char> へのポインタであることを示す。"
10810 #: build/C/man3/printf.3:460 build/C/man3/scanf.3:284
10815 #. type: Plain text
10816 #: build/C/man3/printf.3:471
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."
10822 "整数変換に対応する引き数が I<short int> か I<unsigned short int> で、 B<n> 変"
10823 "換に対応する引き数が I<short int> へのポインタであることを示す。"
10826 #: build/C/man3/printf.3:471 build/C/man3/scanf.3:311
10831 #. type: Plain text
10832 #: build/C/man3/printf.3:490
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."
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> へのポインタであることを示す。"
10845 #: build/C/man3/printf.3:490
10848 msgstr "B<ll> (エルエル)"
10850 #. type: Plain text
10851 #: build/C/man3/printf.3:502
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."
10857 "整数変換に対応する引き数が I<long long int> か I<unsigned long long int> "
10858 "で、 B<n> 変換に対応する引き数が I<long int> へのポインタであることを示す。"
10861 #: build/C/man3/printf.3:502 build/C/man3/scanf.3:338
10868 #. ("quad". 4.4BSD and Linux libc5 only.
10870 #. type: Plain text
10871 #: build/C/man3/printf.3:524
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>."
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> の同義語である。"
10882 #: build/C/man3/printf.3:524 build/C/man3/scanf.3:302
10887 #. type: Plain text
10888 #: build/C/man3/printf.3:535
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."
10894 "整数変換に対応する引き数が I<intmax_t> か I<uintmax_t> で、 B<n> 変換に対応す"
10895 "る引き数が I<intmax_t> へのポインタであることを示す。"
10898 #: build/C/man3/printf.3:535 build/C/man3/scanf.3:366
10903 #. (Linux libc5 has
10905 #. with this meaning.
10907 #. type: Plain text
10908 #: build/C/man3/printf.3:550
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."
10914 "整数変換に対応する引き数が I<size_t> か I<ssize_t> で、 B<n> 変換に対応する引"
10915 "き数が I<size_t> へのポインタであることを示す。"
10918 #: build/C/man3/printf.3:550 build/C/man3/scanf.3:359
10923 #. type: Plain text
10924 #: build/C/man3/printf.3:559
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> "
10930 "整数変換に対応する引き数が I<ptrdiff_t> で、 B<n> 変換に対応する引き数が "
10931 "I<ptrdiff_t> へのポインタであることを示す。"
10933 #. type: Plain text
10934 #: build/C/man3/printf.3:589
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>)."
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>, "
10947 #: build/C/man3/printf.3:589
10949 msgid "The conversion specifier"
10952 #. type: Plain text
10953 #: build/C/man3/printf.3:592
10955 "A character that specifies the type of conversion to be applied. The "
10956 "conversion specifiers and their meanings are:"
10958 "適用される変換の型を指定する文字。 変換指定子とその意味は以下の通りである。"
10961 #: build/C/man3/printf.3:592
10964 msgstr "B<d>, B<i>"
10966 #. type: Plain text
10967 #: build/C/man3/printf.3:602
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."
10975 "I<int> 引き数を符号付き 10 進表記に変換する。 精度指定があれば、精度で指定し"
10976 "た桁数は必ず出力される。変換後の値が 指定された桁数に足りない場合は、左側が "
10977 "0 で埋められる。 デフォルトの精度は 1 である。 0 を表示しようとした時に、明示"
10978 "的に精度として 0 が指定されていると、 出力は空文字列となる。"
10981 #: build/C/man3/printf.3:602
10983 msgid "B<o>, B<u>, B<x>, B<X>"
10984 msgstr "B<o>, B<u>, B<x>, B<X>"
10986 #. type: Plain text
10987 #: build/C/man3/printf.3:629
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."
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 で埋め"
11004 #: build/C/man3/printf.3:629
11007 msgstr "B<e>, B<E>"
11009 #. type: Plain text
11010 #: build/C/man3/printf.3:648
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."
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 と表示される。"
11028 #: build/C/man3/printf.3:648
11031 msgstr "B<f>, B<F>"
11033 #. type: Plain text
11034 #: build/C/man3/printf.3:659
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."
11043 "I<double> 引き数を丸めて [-]dddB<\\&.>ddd の形の10進表現に変換する。 小数点の"
11044 "後の桁数は、精度で指定された値となる。 精度が指定されていない場合には 6 とし"
11045 "て扱われる。 精度として明示的に 0 が指定されたときには、小数点以下は表示され"
11046 "ない。 小数点を表示する際には、小数点の前に少なくとも一桁は数字が表示される。"
11048 #. type: Plain text
11049 #: build/C/man3/printf.3:672
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.)"
11058 "(SUSv2 では、B<F> は規定されておらず、無限や NaN に関する文字列表現を行っても"
11059 "よいことになっている。 SUSv3 では B<F> の規定が追加された。 C99 標準では、"
11060 "B<f> 変換では、無限は \"[-]inf\" か \"[-]infinity\" と表示し、 NaN は文字列の"
11061 "先頭に `nan' をつけて表示するように規定されている。 B<F> 変換の場合は "
11062 "\"[-]INF\", \"[-]INFINITY\", \"NAN*\" と表示される。)"
11065 #: build/C/man3/printf.3:672
11068 msgstr "B<g>, B<G>"
11070 #. type: Plain text
11071 #: build/C/man3/printf.3:697
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."
11081 "I<double> 引き数を B<f> か B<e> (B<G> 変換の場合は B<F> か B<E>) の形式に変"
11082 "換する。 精度は表示する桁数を指定する。 精度が指定されない場合は、6桁とみなさ"
11083 "れる。 精度が 0 の場合は、1桁とみなされる。 変換される値の指数が、 -4 より小"
11084 "さいか、精度以上の場合に、 B<e> 形式が使用される。 変換された結果の小数部分の"
11085 "末尾の 0 は削除される。小数点が表示されるのは、 小数点以下に数字が少なくとも"
11089 #: build/C/man3/printf.3:697
11092 msgstr "B<a>, B<A>"
11094 #. type: Plain text
11095 #: build/C/man3/printf.3:722
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 "
11109 "(C99 にはあるが SUSv2 にはないが SUSv3 で追加された) \n"
11110 "B<a> 変換では、 I<double> 引き数を\n"
11111 "(abcdef の文字を使って) [-]B<0x>hB<\\&.>hhhhB<p>\\(+- 形式の\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 以外の値になるが、いくつになるかは分からない。"
11122 #: build/C/man3/printf.3:722 build/C/man3/scanf.3:459
11123 #: build/C/man3/wprintf.3:149
11128 #. type: Plain text
11129 #: build/C/man3/printf.3:740
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."
11138 "B<l> 修飾子がなければ、 I<int> 引き数を I<unsigned char> に変換して、その結果"
11139 "に対応する文字を出力する。 B<l> 修飾子があれば、 I<wint_t> (ワイド文字) 引き"
11140 "数を、 B<wcrtomb>(3) 関数を初期シフト状態で呼び出してマルチバイト文字列に変"
11141 "換し、 変換されたマルチバイト文字列を出力する。"
11144 #: build/C/man3/printf.3:740 build/C/man3/scanf.3:451
11145 #: build/C/man3/wprintf.3:163
11150 #. type: Plain text
11151 #: build/C/man3/printf.3:755
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."
11161 "B<l> 修飾子がない場合、 引き数は I<const char\\ *> 型で文字型の配列へのポイン"
11162 "タ (文字列へのポインタ) であることが 期待されている。配列中の文字は、終端の "
11163 "ヌルバイト (\\(aq\\e0\\(aq) が出てくるまで出力される (終端文字は出力されな"
11164 "い)。 精度が指定されていると、指定された字数以上は出力されない。 精度が指定さ"
11165 "れた場合には、終端バイトが存在する必要はない。 精度が指定されていなかったり、"
11166 "精度の値が配列の大きさより大きい場合には、 配列は終端のヌルバイトを含んでいな"
11169 #. type: Plain text
11170 #: build/C/man3/printf.3:782
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."
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 "それ以外の場合は、必ず配列はヌルワイド文字で終端されていなければならない。"
11201 #: build/C/man3/printf.3:782
11206 #. type: Plain text
11207 #: build/C/man3/printf.3:788
11209 "(Not in C99 or C11, but in SUSv2, SUSv3, and SUSv4.) Synonym for B<lc>. "
11212 "(C99, C11 にはないが SUSv2, SUSv3, SUSv4 にはある) B<lc> と同じ。使ってはな"
11216 #: build/C/man3/printf.3:788
11221 #. type: Plain text
11222 #: build/C/man3/printf.3:794
11224 "(Not in C99 or C11, but in SUSv2, SUSv3, and SUSv4.) Synonym for B<ls>. "
11227 "(C99, C11 にはないが SUSv2, SUSv3, SUSv4 にはある) B<ls> と同じ。使ってはな"
11231 #: build/C/man3/printf.3:794 build/C/man3/scanf.3:502
11236 #. type: Plain text
11237 #: build/C/man3/printf.3:802
11239 "The I<void\\ *> pointer argument is printed in hexadecimal (as if by B<%#x> "
11242 "I<void\\ *> ポインタ引き数を (B<%#x> や B<%#lx> のような) 16 進数で出力する。"
11245 #: build/C/man3/printf.3:802 build/C/man3/scanf.3:510
11250 #. type: Plain text
11251 #: build/C/man3/printf.3:813
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."
11259 "これまでに書き込まれた文字数が対応する引き数が指す整数に格納される。 この引き"
11260 "数は I<int\\ *> 系でなければならず、そのサイズは指定された整数の長さ修飾子 "
11261 "(省略可能) と一致していなければならない。 引き数の変換は行われない。 変換指定"
11262 "にフラグ、フィールド幅、精度に含まれていた場合の動作は不定である。"
11265 #: build/C/man3/printf.3:813
11270 #. type: Plain text
11271 #: build/C/man3/printf.3:819
11273 "(Glibc extension.) Print output of I<strerror(errno)>. No argument is "
11276 "(glibc での拡張) I<strerror(errno)> の出力を表示する。引き数は必要ない。"
11279 #: build/C/man3/printf.3:819 build/C/man3/scanf.3:377
11284 #. type: Plain text
11285 #: build/C/man3/printf.3:825
11287 "A \\(aq%\\(aq is written. No argument is converted. The complete "
11288 "conversion specification is \\(aq%%\\(aq."
11290 "\\(aq%\\(aq 文字を出力する。変換される引き数は無い。 変換指定全体を書くと \"%"
11293 #. type: Plain text
11294 #: build/C/man3/printf.3:840
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."
11300 "B<fprintf>(), B<printf>(), B<sprintf>(), B<vprintf>(), B<vfprintf>(), "
11301 "B<vsprintf>() 関数は、C89 と C99 に準拠している。 B<snprintf>() と "
11302 "B<vsnprintf>() は C99 に準拠している。"
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$".
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
11328 #. .IR strerror(errno) .
11330 #. glibc 2.0 adds conversion characters \fBC\fP and \fBS\fP.
11331 #. type: Plain text
11332 #: build/C/man3/printf.3:883
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>() "
11342 "B<snprintf>() の返り値を見ると、 SUSv2 と C99 標準は互いに矛盾している。 "
11343 "SUSv2 では、 B<snprintf>() が I<size>=0 で呼び出された場合、 1 未満の値を何"
11344 "か返り値とするように規定している。 一方 C99 では、このような場合 I<str> を "
11345 "NULL とし、返り値として (通常通り) 出力バッファが十分な大きさが あった場合に"
11346 "出力されるであろう文字数を返す。 SUSv3 やそれ以降では C99 の B<snprintf>() の"
11349 #. type: Plain text
11350 #: build/C/man3/printf.3:886
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>."
11355 "glibc 2.1 では、長さ修飾子 B<hh>, B<j>, B<t>, B<z> と変換文字 B<a>, B<A> が追"
11358 #. type: Plain text
11359 #: build/C/man3/printf.3:889
11361 "glibc 2.2 adds the conversion character B<F> with C99 semantics, and the "
11362 "flag character B<I>."
11364 "glibc 2.2 では、 C99 で規定された意味での変換文字 B<F> と フラグ文字 B<I> が"
11367 #. type: Plain text
11368 #: build/C/man3/printf.3:891
11369 msgid "Some programs imprudently rely on code such as the following"
11371 "テキストを I<buf> に追加するのに、軽率にも次のようなコードを使っているプログ"
11374 #. type: Plain text
11375 #: build/C/man3/printf.3:893
11377 msgid " sprintf(buf, \"%s some further text\", buf);\n"
11378 msgstr " sprintf(buf, \"%s some further text\", buf);\n"
11380 #. http://sourceware.org/bugzilla/show_bug.cgi?id=7075
11381 #. type: Plain text
11382 #: build/C/man3/printf.3:909
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."
11390 "しかしながら、標準規格では、 B<sprintf>(), B<snprintf>(), B<vsprintf>(), "
11391 "B<vsnprintf>() の呼び出しにおいて、コピー元とコピー先のバッファが重なってい"
11392 "た場合の 結果は不定である、と明記されている。 使用する B<gcc>(1) のバージョ"
11393 "ンや指定したコンパイラのオプション次第では、 上記のような呼び出しで、期待した"
11397 #. UNIX V7 defines the three routines
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.
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
11416 #. .BR vsnprintf (),
11417 #. and the length modifier q.
11418 #. FreeBSD also has functions
11421 #. .BR vasprintf (),
11422 #. that allocate a buffer large enough for
11424 #. In glibc there are functions
11428 #. that print to a file descriptor instead of a stream.
11429 #. type: Plain text
11430 #: build/C/man3/printf.3:951
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 "
11437 "glibc の B<snprintf>() と B<vsnprintf>() の実装は、バージョン 2.1 以降は "
11438 "C99 標準に準拠しており、 上記の通りの動作をする。 glibc 2.0.6 までは、出力が"
11439 "切り詰められた場合は -1 を返す。"
11442 #. Linux libc4.[45] does not have a
11443 #. .BR snprintf (),
11444 #. but provides a libbsd that contains an
11448 #. that is, one that ignores the
11451 #. Thus, the use of
11453 #. with early libc4 leads to serious security problems.
11454 #. type: Plain text
11455 #: build/C/man3/printf.3:981
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))."
11463 "B<sprintf>() と B<vsprintf>() は勝手に十分に長い文字列領域があると仮定する"
11464 "ので、呼び出し側は 実際の領域からあふれないように注意しなければならない。 し"
11465 "かし、これを保証することが不可能な場合が多い。 生成される文字列の長さはロケー"
11466 "ル依存であり、予測が難しいことに注意。 代わりに B<snprintf>() と "
11467 "B<vsnprintf>() (または B<asprintf>(3) と B<vasprintf>(3)) を使うこと。"
11470 #. Some floating-point conversions under early libc4
11471 #. caused memory leaks.
11472 #. type: Plain text
11473 #: build/C/man3/printf.3:995
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 "
11480 "B<printf(>I<foo>B<);> のようなコードはしばしばバグを引き起こす。 なぜなら "
11481 "I<foo> に % 文字が含まれてるかもしれないからである。 I<foo> が信頼できない"
11482 "ユーザー入力から作られている場合には、 その中に B<%n> が含まれていることがあ"
11483 "り、 B<printf>() 呼び出し時にメモリへの書き込みが起こり、 セキュリティーホー"
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 桁で出力する。"
11491 #. type: Plain text
11492 #: build/C/man3/printf.3:1005
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"
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"
11503 #. type: Plain text
11504 #: build/C/man3/printf.3:1014
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:"
11509 "日付と時間を \"Sunday, July 3, 10:02\" の形式で出力する。 (I<weekday> と "
11510 "I<month> は文字列へのポインタである)"
11512 #. type: Plain text
11513 #: build/C/man3/printf.3:1020
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"
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"
11524 #. type: Plain text
11525 #: build/C/man3/printf.3:1026
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 "
11531 "日 - 月 - 年 の順序で表示を行う国も多い。 従って、国際版では書式で指定された"
11532 "順番で 引き数を表示できなければならない。"
11534 #. type: Plain text
11535 #: build/C/man3/printf.3:1032
11538 "#include E<lt>stdio.hE<gt>\n"
11539 "fprintf(stdout, format,\n"
11540 " weekday, month, day, hour, min);\n"
11542 "#include E<lt>stdio.hE<gt>\n"
11543 "fprintf(stdout, format,\n"
11544 "\tweekday, month, day, hour, min);\n"
11546 #. type: Plain text
11547 #: build/C/man3/printf.3:1039
11549 "where I<format> depends on locale, and may permute the arguments. With the "
11552 "I<format> はロケールに依存しており、引き数の順番を変えることもできる。 "
11555 #. type: Plain text
11556 #: build/C/man3/printf.3:1043
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"
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\" という結果になる。"
11566 #. type: Plain text
11567 #: build/C/man3/printf.3:1050
11569 "To allocate a sufficiently large string and print into it (code correct for "
11570 "both glibc 2.0 and glibc 2.1):"
11572 "十分に大きな文字列領域を確保して、そこにメッセージを格納するには (glibc 2.0 "
11573 "と glibc 2.1 の両方で正しく動作するコード):"
11575 #. type: Plain text
11576 #: build/C/man3/printf.3:1055
11579 "#include E<lt>stdio.hE<gt>\n"
11580 "#include E<lt>stdlib.hE<gt>\n"
11581 "#include E<lt>stdarg.hE<gt>\n"
11583 "#include E<lt>stdio.hE<gt>\n"
11584 "#include E<lt>stdlib.hE<gt>\n"
11585 "#include E<lt>stdarg.hE<gt>\n"
11587 #. type: Plain text
11588 #: build/C/man3/printf.3:1063
11592 "make_message(const char *fmt, ...)\n"
11595 " int size = 100; /* Guess we need no more than 100 bytes */\n"
11600 "make_message(const char *fmt, ...)\n"
11603 " int size = 100; /* Guess we need no more than 100 bytes */\n"
11607 #. type: Plain text
11608 #: build/C/man3/printf.3:1067
11611 " p = malloc(size);\n"
11612 " if (p == NULL)\n"
11615 " p = malloc(size);\n"
11616 " if (p == NULL)\n"
11619 #. type: Plain text
11620 #: build/C/man3/printf.3:1069
11622 msgid " while (1) {\n"
11623 msgstr " while (1) {\n"
11625 #. type: Plain text
11626 #: build/C/man3/printf.3:1071
11628 msgid " /* Try to print in the allocated space */\n"
11629 msgstr " /* Try to print in the allocated space */\n"
11631 #. type: Plain text
11632 #: build/C/man3/printf.3:1075
11635 " va_start(ap, fmt);\n"
11636 " n = vsnprintf(p, size, fmt, ap);\n"
11639 " va_start(ap, fmt);\n"
11640 " n = vsnprintf(p, size, fmt, ap);\n"
11643 #. type: Plain text
11644 #: build/C/man3/printf.3:1077
11646 msgid " /* Check error code */\n"
11647 msgstr " /* Check error code */\n"
11649 #. type: Plain text
11650 #: build/C/man3/printf.3:1082
11653 " if (n E<lt> 0) {\n"
11658 " if (n E<lt> 0) {\n"
11663 #. type: Plain text
11664 #: build/C/man3/printf.3:1084
11666 msgid " /* If that worked, return the string */\n"
11667 msgstr " /* If that worked, return the string */\n"
11669 #. type: Plain text
11670 #: build/C/man3/printf.3:1087
11673 " if (n E<lt> size)\n"
11676 " if (n E<lt> size)\n"
11679 #. type: Plain text
11680 #: build/C/man3/printf.3:1089
11682 msgid " /* Else try again with more space */\n"
11683 msgstr " /* Else try again with more space */\n"
11685 #. type: Plain text
11686 #: build/C/man3/printf.3:1091
11688 msgid " size = n + 1; /* Precisely what is needed */\n"
11689 msgstr " size = n + 1; /* Precisely what is needed */\n"
11691 #. type: Plain text
11692 #: build/C/man3/printf.3:1102
11695 " np = realloc(p, size);\n"
11696 " if (np == NULL) {\n"
11705 " np = realloc(p, size);\n"
11706 " if (np == NULL) {\n"
11715 #. type: Plain text
11716 #: build/C/man3/printf.3:1106
11718 "If truncation occurs in glibc versions prior to 2.0.6, this is treated as an "
11719 "error instead of being handled gracefully."
11721 "バージョン 2.0.6 より前の glibc で切り詰めが起こった場合、切り詰めは適切に処"
11724 #. type: Plain text
11725 #: build/C/man3/printf.3:1115
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)"
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)"
11734 #: build/C/man3/puts.3:26
11740 #: build/C/man3/puts.3:26 build/C/man3/scanf.3:52
11743 msgstr "2014-01-11"
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 - 文字と文字列の出力"
11750 #. type: Plain text
11751 #: build/C/man3/puts.3:34
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"
11756 #. type: Plain text
11757 #: build/C/man3/puts.3:36
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"
11762 #. type: Plain text
11763 #: build/C/man3/puts.3:38
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"
11768 #. type: Plain text
11769 #: build/C/man3/puts.3:40
11771 msgid "B<int putchar(int >I<c>B<);>\n"
11772 msgstr "B<int putchar(int >I<c>B<);>\n"
11774 #. type: Plain text
11775 #: build/C/man3/puts.3:42
11777 msgid "B<int puts(const char *>I<s>B<);>\n"
11778 msgstr "B<int puts(const char *>I<s>B<);>\n"
11780 #. type: Plain text
11781 #: build/C/man3/puts.3:51
11783 "B<fputc>() writes the character I<c>, cast to an I<unsigned char>, to "
11786 "B<fputc>() は、キャラクタ I<c> を I<unsigned char> にキャストし、 I<stream> "
11789 #. type: Plain text
11790 #: build/C/man3/puts.3:58
11792 "B<fputs>() writes the string I<s> to I<stream>, without its terminating "
11793 "null byte (\\(aq\\e0\\(aq)."
11795 "B<fputs>() は、文字列 I<s> を I<stream> に書き込む。 文字列終端のヌルバイト "
11796 "(\\(aq\\e0\\(aq) は出力しない。"
11798 #. type: Plain text
11799 #: build/C/man3/puts.3:65
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."
11804 "B<putc>() は、 I<stream> を一度以上評価するマクロとして実装されているかも知"
11805 "れないという点を除き、 B<fputc>() と同じである。"
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<)> と同じである。"
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> に書き込む。"
11817 #. type: Plain text
11818 #: build/C/man3/puts.3:81
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 "
11824 "ここで説明された関数はお互いに混在して使用することができ、また、 I<stdio> ラ"
11825 "イブラリに含まれる他の出力関数を同じ出力ストリームに対して 呼び出す事が出来"
11828 #. type: Plain text
11829 #: build/C/man3/puts.3:96
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."
11834 "B<fputc>(), B<putc>(), B<putchar>() は I<unsigned char> として書き込まれた文"
11835 "字を I<int> にキャストして返す。 エラーが発生した場合は B<EOF> を返す。"
11837 #. type: Plain text
11838 #: build/C/man3/puts.3:103
11840 "B<puts>() and B<fputs>() return a nonnegative number on success, or B<EOF> "
11843 "B<puts>() と B<fputs>() は、成功すると負ではない数を、エラーが発生した場合"
11846 #. type: Plain text
11847 #: build/C/man3/puts.3:112
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."
11854 "I<stdio> ライブラリに含まれる出力関数と、同じ出力ストリームに結びつけられた "
11855 "ファイルディスクリプタに対する B<write>(2) の低レベル呼び出しを混在して 使用"
11856 "することは賢明ではない。 その結果は定義されておらず、望む結果が得られない可能"
11859 #. type: Plain text
11860 #: build/C/man3/puts.3:124
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)"
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)"
11871 #: build/C/man2/read.2:35
11877 #: build/C/man2/read.2:35 build/C/man2/write.2:39
11880 msgstr "2014-05-04"
11882 #. type: Plain text
11883 #: build/C/man2/read.2:38
11884 msgid "read - read from a file descriptor"
11885 msgstr "read - ファイルディスクリプタから読み込む"
11887 #. type: Plain text
11888 #: build/C/man2/read.2:43
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"
11893 #. type: Plain text
11894 #: build/C/man2/read.2:52
11896 "B<read>() attempts to read up to I<count> bytes from file descriptor I<fd> "
11897 "into the buffer starting at I<buf>."
11899 "B<read>() はファイルディスクリプタ (file descriptor) I<fd> から最大 "
11900 "I<count> バイトを I<buf> で始まるバッファーへ読み込もうとする。"
11902 #. type: Plain text
11903 #: build/C/man2/read.2:60
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."
11910 "seek に対応しているファイルでは、read は現在のファイルオフセットから行われ、"
11911 "ファイルオフセットは読み込んだバイト数分だけ進められる。現在のファイルオフ"
11912 "セットがファイル末尾かそれより先の場合は、読み出しは行われず、 B<read>() は "
11915 #. type: Plain text
11916 #: build/C/man2/read.2:75
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."
11922 "I<count> が 0 の場合、 B<read>() は以下で説明するエラーを検出するI<場合がある"
11923 ">。 どのエラーもなかった場合、もしくは B<read>() がエラーのチェックを行わない"
11924 "場合、 I<count> が 0 で呼び出された B<read>() は 0 を返し、何も行わない。"
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> より大きければ、結果は規定できない。"
11931 #. type: Plain text
11932 #: build/C/man2/read.2:95
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."
11943 "成功した場合、読み込んだバイト数を返す (0 はファイルの終りを意味する)。 ファ"
11944 "イル位置はこの数だけ進められる。 この数が要求した数より小さかったとしてもエ"
11945 "ラーではない; 例えば今すぐには実際にそれだけの数しかない場合 (ファイルの最後"
11946 "に近いのかも しれないし、パイプ (pipe) や端末 (terminal) から読み込んでいるか"
11947 "もしれない) や B<read>() がシグナル (signal) によって割り込まれた場合にこれ"
11948 "は起こりえる。 エラーの場合は、-1 が返され、 I<errno> が適切に設定される。こ"
11949 "の場合はファイル位置が変更されるかどうかは 不定である。"
11952 #: build/C/man2/read.2:96 build/C/man3/scanf.3:548 build/C/man2/write.2:108
11957 #. type: Plain text
11958 #: build/C/man2/read.2:103
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."
11963 "ファイルディスクリプタ I<fd> がソケット以外のファイルを参照していて、 非停止 "
11964 "(nonblocking) モード (B<O_NONBLOCK>) に設定されており、読み込みを行うと停止"
11968 #: build/C/man2/read.2:103 build/C/man2/write.2:115
11970 msgid "B<EAGAIN> or B<EWOULDBLOCK>"
11971 msgstr "B<EAGAIN> または B<EWOULDBLOCK>"
11973 #. Actually EAGAIN on Linux
11974 #. type: Plain text
11975 #: build/C/man2/read.2:114
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 "
11983 "ファイルディスクリプタ I<fd> がソケットを参照していて、非停止 (nonblocking) "
11984 "モード (B<O_NONBLOCK>) に設定されており、読み込みを行うと停止する状況にあ"
11985 "る。 POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 これ"
11986 "ら 2 つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なア"
11987 "プリケーションでは、両方の可能性を 確認すべきである。"
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."
11993 "I<fd> が有効なファイルディスクリプタでないか、読み込みのために オープン "
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> がアクセス可能なアドレス空間の外にある。"
12001 #. type: Plain text
12002 #: build/C/man2/read.2:126
12004 "The call was interrupted by a signal before any data was read; see "
12007 "何のデータも読み込まないうちにシグナルに割り込まれた。 B<signal>(7) 参照。"
12009 #. type: Plain text
12010 #: build/C/man2/read.2:137
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."
12017 "I<fd> は読み込みに適していないオブジェクトを参照している。 もしくは、ファイル"
12018 "が B<O_DIRECT> フラグを指定してオープンされているが、 I<buf> に指定されたアド"
12019 "レス、 I<count> に指定された値、 現在のファイルオフセットのいずれかの アライ"
12022 #. type: Plain text
12023 #: build/C/man2/read.2:147
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 "
12029 "I<fd> が B<timerfd_create>(2) の呼び出しで作成されたが、 B<read>() に間違っ"
12030 "たサイズのバッファが渡された。 さらなる情報は B<timerfd_create>(2) を参照の"
12033 #. type: Plain text
12034 #: build/C/man2/read.2:158
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 "
12042 "I/O エラー。これは例えばプロセスがバックグランド・プロセスグループで、それを"
12043 "制御している端末から読み込もうとし、 B<SIGTTIN> が無視 (ignore) または禁止 "
12044 "(blocking) されている場合や、 そのプロセスグループが孤立 (orphan) している場"
12045 "合に起こる。 またディスクやテープを読んでいる時に低レベル I/O エラー が発生し"
12048 #. type: Plain text
12049 #: build/C/man2/read.2:162
12050 msgid "I<fd> refers to a directory."
12051 msgstr "I<fd> がディレクトリを参照している。"
12053 #. type: Plain text
12054 #: build/C/man2/read.2:173
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 "
12061 "I<fd> が接続しているオブジェクトによっては他のエラーも起こりえる。 POSIX で"
12062 "は、 いくらかのデータを読んだ後に割り込みが起こった場合、 B<read>() は "
12063 "(I<errno> に B<EINTR> を設定して) -1 を返してもよいし、 既に読み込んだバイト"
12066 #. type: Plain text
12067 #: build/C/man2/read.2:187
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."
12078 "NFS において。少量のデータを読み込む場合、最初の時のみにタイム スタンプが更新"
12079 "され、続くコールでは更新されないだろう。 これはクライアント側で属性のキャッシ"
12080 "ングを行なうためである。 なぜならば、もし全ての NFS クライアントが st_atime "
12081 "(最終ファイルアクセス時刻) の更新をサーバーに送らず、クライアント側でキャッ"
12082 "シュを読むことに満足して いれば、サーバー側での read は発生しないので "
12083 "st_atime の更新は行なわれからだ。 UNIX の方式では、クライアント側の属性の"
12084 "キャッシングを無効にすることで、 これを得ることができる。しかしほとんどの状況"
12085 "ではこれは続くサーバーの 負荷を増加させ、パフォーマンスの低下をもたらす。"
12087 #. type: Plain text
12088 #: build/C/man2/read.2:190 build/C/man2/write.2:214
12090 "According to POSIX.1-2008/SUSv4 Section XSI 2.9.7 (\"Thread Interactions "
12091 "with Regular File Operations\"):"
12093 "POSIX.1-2008/SUSv4 セクション XSI 2.9.7 (\"Thread Interactions with Regular "
12094 "File Operations\") によると、"
12096 #. type: Plain text
12097 #: build/C/man2/read.2:195 build/C/man2/write.2:219
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: ..."
12103 "以下のすべての関数では、 通常ファイルもしくはシンボリックリンクに対する操作で"
12104 "は POSIX.1-2008 で規定された効果が互いにアトミックに行われなければならな"
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
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 "
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 で修正された。"
12139 #. type: Plain text
12140 #: build/C/man2/read.2:239
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), "
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), "
12151 #: build/C/man2/readlink.2:44
12157 #: build/C/man2/readlink.2:44 build/C/man2/readv.2:32
12160 msgstr "2014-10-15"
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 - シンボリックリンクの値を読む"
12167 #. type: Plain text
12168 #: build/C/man2/readlink.2:53
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"
12173 #. type: Plain text
12174 #: build/C/man2/readlink.2:59
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"
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"
12183 #. type: Plain text
12184 #: build/C/man2/readlink.2:68
12185 msgid "B<readlink>():"
12186 msgstr "B<readlink>():"
12188 #. type: Plain text
12189 #: build/C/man2/readlink.2:71 build/C/man2/symlink.2:59
12191 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12192 "_XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
12194 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12195 "_XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
12197 #. type: Plain text
12198 #: build/C/man2/readlink.2:74
12199 msgid "B<readlinkat>():"
12200 msgstr "B<readlinkat>():"
12202 #. type: Plain text
12203 #: build/C/man2/readlink.2:100
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 "
12211 "B<readlink>() は I<pathname> で与えられたシンボリックリンクの内容を I<buf> "
12212 "バッファーへ格納する、 I<buf> のサイズは I<bufsiz> である。 B<readlink>() は"
12213 "ヌルバイトを I<buf> に追加しない。 その内容全てを格納するのにバッファーが小さ"
12214 "過ぎる場合は、 (I<bufsiz> バイトの長さに) 内容を切り詰める。"
12217 #: build/C/man2/readlink.2:100
12219 msgid "readlinkat()"
12220 msgstr "readlinkat()"
12222 #. type: Plain text
12223 #: build/C/man2/readlink.2:106
12225 "The B<readlinkat>() system call operates in exactly the same way as "
12226 "B<readlink>(), except for the differences described here."
12228 "B<readlinkat>() システムコールは B<readlink>() と全く同様に動作するが、以下で"
12231 #. type: Plain text
12232 #: build/C/man2/readlink.2:116
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)."
12239 "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
12240 "リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
12241 "(B<readlink>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
12242 "ワーキングディレクトリに対する相対パスではない)。"
12244 #. type: Plain text
12245 #: build/C/man2/readlink.2:128
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>())."
12251 "I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
12252 "の場合、 (B<readlink>() と同様に) I<pathname> は呼び出したプロセスのカレント"
12253 "ワーキングディレクトリに対する相対パスと解釈される。"
12255 #. commit 65cfc6722361570bfe255698d9cd4dccaf47570d
12256 #. type: Plain text
12257 #: build/C/man2/readlink.2:148
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> "
12264 "Linux 2.6.39 以降では、 I<pathname> に空文字列を指定できる。 その場合、呼び出"
12265 "しは I<dirfd> が参照するシンボリックリンクに対して行われる (I<dirfd> はフラ"
12266 "グ B<O_PATH> と B<O_NOFOLLOW> を指定した B<open>(2) を使って取得すべきであ"
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) を参照。"
12274 #. type: Plain text
12275 #: build/C/man2/readlink.2:159
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."
12280 "成功すると、これらのシステムコールは I<buf> に格納されたバイト数を返す。 エ"
12281 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12283 #. type: Plain text
12284 #: build/C/man2/readlink.2:165
12286 "Search permission is denied for a component of the path prefix. (See also "
12287 "B<path_resolution>(7).)"
12289 "パスのディレクトリ部分に検索許可が与えられていない (B<path_resolution>(7) も"
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> がプロセスに割り当てられたアドレス空間の外を指している。"
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> が正でない。"
12307 #. type: Plain text
12308 #: build/C/man2/readlink.2:181
12309 msgid "The named file is not a symbolic link."
12310 msgstr "指定したファイルがシンボリックリンクでない。"
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 エラーが起こった。"
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 "パス名にシンボリックリンクが多すぎる。"
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 "パス名かパス名の一部分が長過ぎる。"
12327 #. type: Plain text
12328 #: build/C/man2/readlink.2:193
12329 msgid "The named file does not exist."
12330 msgstr "その名前のファイルが存在しない。"
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 "パスのディレクトリ部分がディレクトリでない。"
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>() では以下のエラーも発生する。"
12342 #. type: Plain text
12343 #: build/C/man2/readlink.2:212 build/C/man2/unlink.2:269
12345 "I<pathname> is relative and I<dirfd> is a file descriptor referring to a "
12346 "file other than a directory."
12348 "I<pathname> が相対パスで、 I<dirfd> がディレクトリ以外のファイルを参照してい"
12351 #. type: Plain text
12352 #: build/C/man2/readlink.2:216
12354 "B<readlinkat>() was added to Linux in kernel 2.6.16; library support was "
12355 "added to glibc in version 2.4."
12357 "B<readlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
12358 "ポートはバージョン 2.4 で glibc に追加された。"
12360 #. type: Plain text
12361 #: build/C/man2/readlink.2:222
12363 "B<readlink>(): 4.4BSD (B<readlink>() first appeared in 4.2BSD), "
12364 "POSIX.1-2001, POSIX.1-2008."
12366 "4.4BSD (B<readlink>() は 4.2BSD で初めて登場した), POSIX.1-2001, "
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."
12374 #. type: Plain text
12375 #: build/C/man2/readlink.2:233
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."
12381 "バージョン 2.4 以前の glibc (バージョン 2.4 を含む) では、 B<readlink>() の"
12382 "返り値の型は I<int> で宣言されていた。現在では、返り値の型は I<ssize_t> であ"
12383 "る (返り値 I<ssize_t> は POSIX.1-2001 で (新たに) 必須となった)。"
12385 #. type: Plain text
12386 #: build/C/man2/readlink.2:256
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 "
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> が定義されることが保証されていないからで"
12410 #. type: Plain text
12411 #: build/C/man2/readlink.2:269
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."
12418 "B<readlinkat>() が利用できない古いカーネルでは、 glibc ラッパー関数は "
12419 "B<readlink>() を使用するモードにフォールバックする。 I<pathname> が相対パスの"
12420 "場合、 glibc は I<dirfd> 引き数に対応する I</proc/self/fd> のシンボリックリン"
12423 #. type: Plain text
12424 #: build/C/man2/readlink.2:275
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."
12430 "以下のプログラムは、 B<readlink>() が必要とするバッファを、\n"
12431 "B<lstat>() が提供する情報に基づいて動的に割り当てる。\n"
12432 "また、両方の呼び出し間で競合条件がないことを保証している。"
12434 #. type: Plain text
12435 #: build/C/man2/readlink.2:282
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"
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"
12450 #. type: Plain text
12451 #: build/C/man2/readlink.2:289
12455 "main(int argc, char *argv[])\n"
12457 " struct stat sb;\n"
12458 " char *linkname;\n"
12462 "main(int argc, char *argv[])\n"
12464 " struct stat sb;\n"
12465 " char *linkname;\n"
12468 #. type: Plain text
12469 #: build/C/man2/readlink.2:294
12472 " if (argc != 2) {\n"
12473 " fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt>\\en\", argv[0]);\n"
12474 " exit(EXIT_FAILURE);\n"
12477 " if (argc != 2) {\n"
12478 " fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt>\\en\", argv[0]);\n"
12479 " exit(EXIT_FAILURE);\n"
12482 #. type: Plain text
12483 #: build/C/man2/readlink.2:299
12486 " if (lstat(argv[1], &sb) == -1) {\n"
12487 " perror(\"lstat\");\n"
12488 " exit(EXIT_FAILURE);\n"
12491 " if (lstat(argv[1], &sb) == -1) {\n"
12492 " perror(\"lstat\");\n"
12493 " exit(EXIT_FAILURE);\n"
12496 #. type: Plain text
12497 #: build/C/man2/readlink.2:305
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"
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"
12512 #. type: Plain text
12513 #: build/C/man2/readlink.2:307
12515 msgid " r = readlink(argv[1], linkname, sb.st_size + 1);\n"
12516 msgstr " r = readlink(argv[1], linkname, sb.st_size + 1);\n"
12518 #. type: Plain text
12519 #: build/C/man2/readlink.2:312
12522 " if (r == -1) {\n"
12523 " perror(\"readlink\");\n"
12524 " exit(EXIT_FAILURE);\n"
12527 " if (r == -1) {\n"
12528 " perror(\"readlink\");\n"
12529 " exit(EXIT_FAILURE);\n"
12532 #. type: Plain text
12533 #: build/C/man2/readlink.2:318
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"
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"
12548 #. type: Plain text
12549 #: build/C/man2/readlink.2:320
12551 msgid " linkname[r] = \\(aq\\e0\\(aq;\n"
12552 msgstr " linkname[r] = \\(aq\\e0\\(aq;\n"
12554 #. type: Plain text
12555 #: build/C/man2/readlink.2:322
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"
12560 #. type: Plain text
12561 #: build/C/man2/readlink.2:324
12563 msgid " free(linkname);\n"
12564 msgstr " free(linkname);\n"
12566 #. type: Plain text
12567 #: build/C/man2/readlink.2:336
12569 "B<readlink>(1), B<lstat>(2), B<stat>(2), B<symlink>(2), B<realpath>(3), "
12570 "B<path_resolution>(7), B<symlink>(7)"
12572 "B<readlink>(1), B<lstat>(2), B<stat>(2), B<symlink>(2), B<realpath>(3), "
12573 "B<path_resolution>(7), B<symlink>(7)"
12576 #: build/C/man2/readv.2:32
12581 #. type: Plain text
12582 #: build/C/man2/readv.2:35
12584 "readv, writev, preadv, pwritev - read or write data into multiple buffers"
12585 msgstr "readv, writev, preadv, pwritev - 複数のバッファへの読み書きを行なう"
12587 #. type: Plain text
12588 #: build/C/man2/readv.2:38
12590 msgid "B<#include E<lt>sys/uio.hE<gt>>\n"
12591 msgstr "B<#include E<lt>sys/uio.hE<gt>>\n"
12593 #. type: Plain text
12594 #: build/C/man2/readv.2:40
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"
12599 #. type: Plain text
12600 #: build/C/man2/readv.2:42
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"
12605 #. type: Plain text
12606 #: build/C/man2/readv.2:45
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"
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"
12615 #. type: Plain text
12616 #: build/C/man2/readv.2:48
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"
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"
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"
12630 #. type: Plain text
12631 #: build/C/man2/readv.2:68
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\")."
12637 "B<readv>() システムコールは、ファイルディスクリプタ I<fd> に関連付けられた\n"
12638 "ファイルから、 I<iovcnt> 個のバッファ分のデータを読み込み、 I<iov> で指定\n"
12639 "されたバッファに格納する (\"scatter input\";「ばらまき入力」)。"
12641 #. type: Plain text
12642 #: build/C/man2/readv.2:78
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"
12648 "B<writev>() システムコールは、 I<iov> で指定されたバッファから最大 "
12650 "個のバッファ分のデータを取り出し、 ファイルディスクリプタ I<fd> に関連付け"
12652 "れたファイルに書き込む (\"gather output\";「かき集め出力」)。"
12654 #. type: Plain text
12655 #: build/C/man2/readv.2:87
12657 "The pointer I<iov> points to an array of I<iovec> structures, defined in "
12658 "I<E<lt>sys/uio.hE<gt>> as:"
12660 "ポインタ I<iov> は I<iovec> 構造体の配列へのポインタである。 I<iovec> 構造体"
12661 "は I<E<lt>sys/uio.hE<gt>> で以下のように定義されている:"
12663 #. type: Plain text
12664 #: build/C/man2/readv.2:95
12668 " void *iov_base; /* Starting address */\n"
12669 " size_t iov_len; /* Number of bytes to transfer */\n"
12673 " void *iov_base; /* Starting address */\n"
12674 " size_t iov_len; /* Number of bytes to transfer */\n"
12677 #. type: Plain text
12678 #: build/C/man2/readv.2:103
12680 "The B<readv>() system call works just like B<read>(2) except that multiple "
12681 "buffers are filled."
12683 "B<readv>() システムコールは、複数のバッファにデータを読み込む点を除いて\n"
12684 "B<read>(2) と全く同様の動作を行う。"
12686 #. type: Plain text
12687 #: build/C/man2/readv.2:109
12689 "The B<writev>() system call works just like B<write>(2) except that "
12690 "multiple buffers are written out."
12692 "B<writev>() システムコールは、複数のバッファのデータを書き出す点以外は\n"
12693 "B<write>(2) と全く同様の動作を行う。"
12695 #. type: Plain text
12696 #: build/C/man2/readv.2:128
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."
12704 "バッファは配列の順序で処理される。これは、 B<readv>() が I<iov>[0] が完全に"
12705 "一杯になるまでデータを詰めてから、 I<iov>[1] などに進むことを意味する (データ"
12706 "が十分ない場合は、 I<iov> が指すバッファのいずれも一杯にならない)。 同様に、 "
12707 "B<writev>() は I<iov>[0] の内容を全部書き出してから I<iov>[1] などに進む。"
12709 #. type: Plain text
12710 #: build/C/man2/readv.2:146
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))."
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 操"
12729 #: build/C/man2/readv.2:146
12731 msgid "preadv() and pwritev()"
12732 msgstr "preadv() と pwritev()"
12734 #. type: Plain text
12735 #: build/C/man2/readv.2:159
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."
12742 "B<preadv>() システムコールは B<readv>() と B<preadv>(2) の機能を\n"
12744 "B<readv>() と同じ処理を実行するが、\n"
12745 "4 番目の引き数 I<offset> が追加されており、\n"
12746 "この引き数は入力操作を行うファイルオフセットを指定する。"
12748 #. type: Plain text
12749 #: build/C/man2/readv.2:172
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."
12756 "B<pwritev>() システムコールは B<writev>() と B<pwrite>(2) の機能を\n"
12758 "B<writev>() と同じ処理を実行するが、\n"
12759 "4 番目の引き数 I<offset> が追加されており、\n"
12760 "この引き数は出力操作を行うファイルオフセットを指定する。"
12762 #. type: Plain text
12763 #: build/C/man2/readv.2:177
12765 "The file offset is not changed by these system calls. The file referred to "
12766 "by I<fd> must be capable of seeking."
12768 "これらのシステムコールで、ファイルオフセットは変更されない。\n"
12769 "I<fd> が参照するファイルは seek 可能でなければならない。"
12771 #. type: Plain text
12772 #: build/C/man2/readv.2:188
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."
12778 "成功した場合、 B<readv>() と B<preadv> は読み込んだバイト数を返し、\n"
12779 "B<writev>() と B<pwritev>()は書き込んだバイト数を返す。\n"
12780 "エラーの場合 -1 を返し、I<errno> を適切に設定する。"
12782 #. type: Plain text
12783 #: build/C/man2/readv.2:200
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:"
12789 "B<read>(2) や B<write>(2) と同じエラーが定義されている。\n"
12790 "さらに、 B<preadv>() と B<pwritev>() は B<lseek>(2) と同じ理由でも失敗す"
12792 "また、追加で以下のエラーが定義されている:"
12794 #. type: Plain text
12795 #: build/C/man2/readv.2:209
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 "
12801 "I<iov_len> の合計が I<ssize_t> の範囲をオーバーフローした。もしくは、 ベクタ"
12802 "数 I<iovcnt> が 0 より小さいか許可された最大値よりも大きかった。"
12804 #. type: Plain text
12805 #: build/C/man2/readv.2:214
12807 "B<preadv>() and B<pwritev>() first appeared in Linux 2.6.30; library "
12808 "support was added in glibc 2.10."
12810 "B<preadv>() と B<pwritev>() は Linux 2.6.30 で初めて登場した。\n"
12811 "ライブラリによるサポートは glibc 2.10 で追加された。"
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
12820 "B<readv>(), B<writev>(): 4.4BSD (these system calls first appeared in "
12821 "4.2BSD), POSIX.1-2001."
12823 "B<readv>(), B<writev>(): 4.4BSD (これらのシステムコールは 4.2BSD で初めて登場"
12824 "した), POSIX.1-2001."
12826 #. type: Plain text
12827 #: build/C/man2/readv.2:226
12829 "B<preadv>(), B<pwritev>(): nonstandard, but present also on the modern BSDs."
12830 msgstr "B<preadv>(), B<pwritev>(): 非標準だが、最近の BSD にも存在する。"
12833 #: build/C/man2/readv.2:227
12835 msgid "C library/kernel ABI differences"
12836 msgstr "C ライブラリとカーネル ABI の違い"
12838 #. type: Plain text
12839 #: build/C/man2/readv.2:258
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)."
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) を呼び出す。"
12868 #. type: Plain text
12869 #: build/C/man2/readv.2:268
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:"
12876 "素のシステムコール B<preadv>() と B<pwritev>() のシグネチャーは、 「書式」に"
12877 "書かれている対応する GNU C ライブラリのラッパー関数のものとは少し異なる。 最"
12878 "後の引き数 I<offset> はラッパー関数によりシステムコールの 2 つの引き数に展開"
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>"
12886 #. type: Plain text
12887 #: build/C/man2/readv.2:273
12889 "These arguments contain, respectively, the low order and high order 32 bits "
12892 "これらの引き数は、それぞれ、 I<offset> の下位 32 ビットと上位 32 ビットであ"
12895 #. type: Plain text
12896 #: build/C/man2/readv.2:280
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."
12902 "ファイルディスクリプタに対する操作を行う B<readv>() や B<writev>() と、\n"
12903 "標準入出力ライブラリの関数をごちゃまぜにして呼ぶのはお薦めしない。\n"
12904 "どんな結果になるかは定義されておらず、おそらく期待する結果は\n"
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>() の使用方法を示すものである。"
12912 #. type: Plain text
12913 #: build/C/man2/readv.2:290
12916 "char *str0 = \"hello \";\n"
12917 "char *str1 = \"world\\en\";\n"
12918 "struct iovec iov[2];\n"
12919 "ssize_t nwritten;\n"
12921 "char *str0 = \"hello \";\n"
12922 "char *str1 = \"world\\en\";\n"
12923 "struct iovec iov[2];\n"
12924 "ssize_t nwritten;\n"
12926 #. type: Plain text
12927 #: build/C/man2/readv.2:295
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"
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"
12940 #. type: Plain text
12941 #: build/C/man2/readv.2:297
12943 msgid "nwritten = writev(STDOUT_FILENO, iov, 2);\n"
12944 msgstr "nwritten = writev(STDOUT_FILENO, iov, 2);\n"
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)"
12952 #: build/C/man3/remove.3:31
12957 #. type: Plain text
12958 #: build/C/man3/remove.3:34
12959 msgid "remove - remove a file or directory"
12960 msgstr "remove - ファイルやディレクトリを削除する"
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<);>"
12967 #. type: Plain text
12968 #: build/C/man3/remove.3:46
12970 "B<remove>() deletes a name from the filesystem. It calls B<unlink>(2) for "
12971 "files, and B<rmdir>(2) for directories."
12973 "B<remove>() はファイルシステムからファイル名を削除する。 ファイルに対しては "
12974 "B<unlink>(2) を、ディレクトリに対しては B<rmdir>(2) を呼び出す。"
12976 #. type: Plain text
12977 #: build/C/man3/remove.3:50
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 "
12983 "もしその名前が ファイルへの最後のリンクで、かつ、どのプロセスもそのファイル"
12984 "を 開いていないなら、ファイルも削除する。ファイルの占めていた 領域は他で使う"
12987 #. type: Plain text
12988 #: build/C/man3/remove.3:55
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."
12994 "名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開"
12995 "いているなら、ファイルの最後のファイル記述子 (file descriptor) が閉じられるま"
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 "名前が指しているのがシンボリックリンクなら、そのリンクを削除する。"
13003 #. type: Plain text
13004 #: build/C/man3/remove.3:60
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."
13009 "名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、 その"
13010 "ソケットなどを開いているプロセスはそのまま使い続けることができる。"
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) と同じものである。"
13017 #. type: Plain text
13018 #: build/C/man3/remove.3:75
13019 msgid "The B<remove>() function is thread-safe."
13020 msgstr "関数 B<remove>() はスレッドセーフである。"
13023 #. Under libc4 and libc5,
13025 #. was an alias for
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."
13033 #. type: Plain text
13034 #: build/C/man3/remove.3:86 build/C/man2/unlink.2:300
13036 "Infelicities in the protocol underlying NFS can cause the unexpected "
13037 "disappearance of files which are still being used."
13039 "NFS プロトコルに内在する問題により、まだ使用中のファイルが想定外に消えてしま"
13042 #. type: Plain text
13043 #: build/C/man3/remove.3:97
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)"
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)"
13052 #: build/C/man2/rename.2:33
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 - ファイルの名前や位置を変更する"
13062 #. type: Plain text
13063 #: build/C/man2/rename.2:41
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"
13068 #. type: Plain text
13069 #: build/C/man2/rename.2:44
13072 "B<#include E<lt>fcntl.hE<gt> >/* Definition of AT_* constants */\n"
13073 "B<#include E<lt>stdio.hE<gt>>\n"
13075 "B<#include E<lt>fcntl.hE<gt> >/* AT_* 定数の定義 */\n"
13076 "B<#include E<lt>stdio.hE<gt>>\n"
13078 #. type: Plain text
13079 #: build/C/man2/rename.2:47
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"
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"
13088 #. type: Plain text
13089 #: build/C/man2/rename.2:51
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"
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"
13098 #. type: Plain text
13099 #: build/C/man2/rename.2:59
13100 msgid "B<renameat>():"
13101 msgstr "B<renameat>():"
13103 #. type: Plain text
13104 #: build/C/man2/rename.2:81
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."
13110 "B<rename>() はファイルの名前を変更し、必要ならばディレクトリ間の移動を行な"
13111 "う。 そのファイルに対する (B<link>(2) を使用して作られた) 他のハードリンク "
13112 "(hard link) には影響はない。 オープン済の I<oldpath> に対するファイルディスク"
13115 #. type: Plain text
13116 #: build/C/man2/rename.2:89
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."
13122 "I<newpath> が既に存在する場合、それは不可分操作で (atomically) 置き換えられ"
13123 "る (ただし、いくつかの条件がある; 以下の「エラー」のセクションを参照)。 その"
13124 "ため、 I<newpath> にアクセスしようとしている他のプロセスがファイルを見失うこ"
13125 "とはない (訳註: 常にアクセス可能である)。"
13127 #. type: Plain text
13128 #: build/C/man2/rename.2:97
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."
13133 "I<oldpath> と I<newpath> がどちらも既存のハードリンクで、同じファイルを参照し"
13134 "ている場合、 B<rename>() は何も行わず、ステータスとして成功を返す。"
13136 #. type: Plain text
13137 #: build/C/man2/rename.2:105
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."
13142 "I<newpath> が存在し、何らかの理由で操作が失敗した場合、 B<rename>() は "
13143 "I<newpath> の実体を元のまま残すことを保証する。"
13145 #. type: Plain text
13146 #: build/C/man2/rename.2:111
13148 "I<oldpath> can specify a directory. In this case, I<newpath> must either "
13149 "not exist, or it must specify an empty directory."
13151 "I<oldpath> にはディレクトリを指定することもできる。 この場合、 I<newpath> は"
13152 "存在しないか、空のディレクトリでなければならない。"
13154 #. type: Plain text
13155 #: build/C/man2/rename.2:118
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."
13160 "一方で、上書きを行なう場合は、rename が行なわれるファイルを I<oldpath> と "
13161 "I<newpath> の両方で参照できる瞬間がおそらく存在する。"
13163 #. type: Plain text
13164 #: build/C/man2/rename.2:124
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."
13169 "I<oldpath> がシンボリックリンク (symbolic link) を参照している場合は、 リンク"
13170 "の名前が変更される。 また、 I<newpath> がシンボリックリンクを参照している場合"
13174 #: build/C/man2/rename.2:124
13177 msgstr "renameat()"
13179 #. type: Plain text
13180 #: build/C/man2/rename.2:130
13182 "The B<renameat>() system call operates in exactly the same way as "
13183 "B<rename>(), except for the differences described here."
13185 "B<renameat>() システムコールは B<rename>() と全く同様に動作するが、以下で説明"
13188 #. type: Plain text
13189 #: build/C/man2/rename.2:140
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)."
13196 "I<oldpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスクリ"
13197 "プター I<olddirfd> が参照するディレクトリに対する相対パスと解釈される "
13198 "(B<rename>(2) に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
13199 "ワーキングディレクトリに対する相対パスではない)。"
13201 #. type: Plain text
13202 #: build/C/man2/rename.2:152
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>())."
13208 "I<oldpath> で指定されたパス名が相対パスで、 I<olddirfd> が特別な値 "
13209 "B<AT_FDCWD> の場合、 (B<rename>(2) と同様に) I<oldpath> は呼び出したプロセス"
13210 "のカレントワーキングディレクトリに対する相対パスと解釈される。"
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) を参照。"
13218 #: build/C/man2/rename.2:171
13220 msgid "renameat2()"
13221 msgstr "renameat2()"
13223 #. type: Plain text
13224 #: build/C/man2/rename.2:182
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>()."
13229 "B<renameat2>() には追加の I<flags> 引き数がある。 I<flags> 引き数が 0 の "
13230 "B<renameat2>() の呼び出しは B<renameat>() と等価である。"
13232 #. type: Plain text
13233 #: build/C/man2/rename.2:186
13235 "The I<flags> argument is a bit mask consisting of zero or more of the "
13237 msgstr "I<flags> 引き数は、以下のフラグの 0 個以上のビットマスクである。"
13240 #: build/C/man2/rename.2:186
13242 msgid "B<RENAME_NOREPLACE>"
13243 msgstr "B<RENAME_NOREPLACE>"
13245 #. type: Plain text
13246 #: build/C/man2/rename.2:194
13248 "Don't overwrite I<newpath> of the rename. Return an error if I<newpath> "
13251 "rename の I<newpath> を上書きしない。 I<newpath> がすでに存在する場合エラーを"
13255 #: build/C/man2/rename.2:194
13257 msgid "B<RENAME_EXCHANGE>"
13258 msgstr "B<RENAME_EXCHANGE>"
13260 #. type: Plain text
13261 #: build/C/man2/rename.2:203
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)."
13267 "I<oldpath> と I<newpath> をアトミックに入れ換える。 両方のパス名が存在しなけ"
13268 "ればならないが、 ファイル種別は異なっていてもよい (例えば、一方は空でないディ"
13269 "レクトリで、もう一方はシンボリックリンクであるなど)。"
13271 #. type: Plain text
13272 #: build/C/man2/rename.2:228
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).)"
13280 "I<oldpath> または I<newpath> を含んでいるディレクトリの書き込み許可がない。 "
13281 "または、 I<oldpath> または I<newpath> のディレクトリ部分のどれかに検索許可が"
13282 "ない。 または、 I<oldpath> がディレクトリで (I<..> エントリを更新するのに必要"
13283 "な) 書き込み許可がない (B<path_resolution>(7) も参照)。"
13286 #: build/C/man2/rename.2:228 build/C/man2/rmdir.2:55 build/C/man2/unlink.2:169
13291 #. type: Plain text
13292 #: build/C/man2/rename.2:245
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 "
13303 "I<oldpath> または I<newpath> がディレクトリで、何らかのプロセスが使用中 (多"
13304 "分、カレントワーキングディレクトリか、ルートディレクトリか、 読み込みのために"
13305 "オープンされているかでろう) もしくは、システムが使用中 (例えばマウントポイン"
13306 "トである) であり、システムがこれをエラーであると判断したために rename が失敗"
13307 "した。 (このような場合に B<EBUSY> を返すことは規格では要求されていない点に注"
13308 "意すること。 このような場合に、rename をとにかく実行してみるのは何の問題もな"
13309 "い。 ただし、そのような状況で、システムが他に返すエラーがない場合には "
13310 "B<EBUSY> を返すことが許されている。)"
13312 #. type: Plain text
13313 #: build/C/man2/rename.2:255
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."
13318 "I<newpath> が I<oldpath> のパス部分を含んでいる。ディレクトリを自分自身のサブ"
13319 "ディレクトリに 変更しようとした場合がほとんどである。"
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."
13325 "I<newpath> は存在しているディレクトリであるが、 I<oldpath> はディレクトリでな"
13328 #. type: Plain text
13329 #: build/C/man2/rename.2:272
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 "
13335 "I<oldpath> は既に最大数までのリンクを持っているか、それがディレクトリで "
13336 "I<newpath> を含んでいるディレクトリが最大数までのリンクを持っている。"
13338 #. type: Plain text
13339 #: build/C/man2/rename.2:288
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."
13344 "I<oldpath> という名前のリンクが存在しない。 または、 I<newpath> というディレ"
13345 "クトリが存在しない。 または、 I<oldpath> か I<newpath> が空の文字列である。"
13347 #. type: Plain text
13348 #: build/C/man2/rename.2:305
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 "
13354 "I<oldpath> か I<newpath> に含まれているディレクトリ部分が 実際にはディレクト"
13355 "リでない。 または I<oldpath> がディレクトリで、 I<newpath> が存在してディレク"
13359 #: build/C/man2/rename.2:305
13361 msgid "B<ENOTEMPTY> or B<EEXIST>"
13362 msgstr "B<ENOTEMPTY または EEXIST>"
13364 #. type: Plain text
13365 #: build/C/man2/rename.2:309
13367 "I<newpath> is a nonempty directory, that is, contains entries other than \"."
13370 "I<newpath> が空でないディレクトリである。すなわち \".\" と \"..\" 以外を含ん"
13374 #: build/C/man2/rename.2:309 build/C/man2/unlink.2:224
13376 msgid "B<EPERM> or B<EACCES>"
13377 msgstr "B<EPERM> または B<EACCES>"
13379 #. type: Plain text
13380 #: build/C/man2/rename.2:333
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."
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 "存在するファイルシステムが、要求された種類の名前の変更を サポートしていない。"
13404 #. type: Plain text
13405 #: build/C/man2/rename.2:344
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.)"
13412 "I<oldpath> と I<newpath> が同じマウントされたファイルシステムに存在しない。 "
13413 "(Linux は 1 つのファイルシステムを複数のマウント位置に マウントすることを許可"
13414 "している。 しかし B<rename>() は、たとえ同じファイルシステムであっても、 "
13415 "別々のマウント位置を跨いでは動作しない。)"
13417 #. type: Plain text
13418 #: build/C/man2/rename.2:349
13420 "The following additional errors can occur for B<renameat>() and "
13422 msgstr "B<renameat>() と B<renameat2>() では以下のエラーも発生する。"
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>() では以下のエラーも発生する。"
13429 #. type: Plain text
13430 #: build/C/man2/rename.2:376
13431 msgid "I<flags> contains B<RENAME_NOREPLACE> and I<newpath> already exists."
13433 "I<flags> に B<RENAME_NOREPLACE> が指定されているが、 I<newpath> がすでに存在"
13436 #. type: Plain text
13437 #: build/C/man2/rename.2:385
13439 "An invalid flag was specified in I<flags>, or both B<RENAME_NOREPLACE> and "
13440 "B<RENAME_EXCHANGE> were specified."
13442 "I<flags> に無効なフラグが指定された。 B<RENAME_NOREPLACE> と "
13443 "B<RENAME_EXCHANGE> の両方が指定された。"
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> にファイルシステムでサポートされていないフラグが指定された。"
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."
13454 "I<flags> に B<RENAME_EXCHANGE> が指定されたが、 I<newpath> が存在しない。"
13456 #. type: Plain text
13457 #: build/C/man2/rename.2:401
13459 "B<renameat>() was added to Linux in kernel 2.6.16; library support was "
13460 "added to glibc in version 2.4."
13462 "B<renameat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
13463 "ポートはバージョン 2.4 で glibc に追加された。"
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 に追加された。"
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."
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."
13481 #. type: Plain text
13482 #: build/C/man2/rename.2:414
13483 msgid "B<renameat2>() is Linux-specific."
13484 msgstr "B<renameat2>() は Linux 固有である。"
13486 #. type: Plain text
13487 #: build/C/man2/rename.2:432
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."
13495 "B<renameat>() が利用できない古いカーネルでは、 glibc ラッパー関数は "
13496 "B<rename>() を使用するモードにフォールバックする。 I<oldpath> と I<newpath> "
13497 "が相対パスの場合、 glibc は I<olddirfd> と I<newdirfd> 引き数に対応する I</"
13498 "proc/self/fd> のシンボリックリンクに基づいてそれぞれパス名を構成する。"
13500 #. type: Plain text
13501 #: build/C/man2/rename.2:443
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."
13509 "NFS ファイルシステムでは、操作が失敗したからといって、 ファイルの名前が変更で"
13510 "きなかったと決めてかかることはできない。 サーバが rename 操作を終えてからク"
13511 "ラッシュした場合、 サーバが再び立ち上がったときに、 再送信された RPC が処理さ"
13512 "れるが、これは失敗となる。 アプリケーションはこの問題を正しく取り扱うことが期"
13513 "待されている。 同様の問題について B<link>(2) にも書かれている。"
13515 #. type: Plain text
13516 #: build/C/man2/rename.2:451
13518 "B<mv>(1), B<chmod>(2), B<link>(2), B<symlink>(2), B<unlink>(2), "
13519 "B<path_resolution>(7), B<symlink>(7)"
13521 "B<mv>(1), B<chmod>(2), B<link>(2), B<symlink>(2), B<unlink>(2), "
13522 "B<path_resolution>(7), B<symlink>(7)"
13525 #: build/C/man2/rmdir.2:30
13531 #: build/C/man2/rmdir.2:30
13534 msgstr "2008-05-08"
13536 #. type: Plain text
13537 #: build/C/man2/rmdir.2:33
13538 msgid "rmdir - delete a directory"
13539 msgstr "rmdir - ディレクトリを削除する"
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<);>"
13546 #. type: Plain text
13547 #: build/C/man2/rmdir.2:40
13548 msgid "B<rmdir>() deletes a directory, which must be empty."
13550 "B<rmdir>() はディレクトリを削除する。削除するディレクトリは空でなければなら"
13553 #. type: Plain text
13554 #: build/C/man2/rmdir.2:55
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)."
13560 "I<pathname> を含んでいるディレクトリへの書き込みアクセスが プロセスの実効 "
13561 "(effective) UID に対して許可されていないか、 I<pathname> に含まれているディレ"
13562 "クトリのどれかに検索 (実行) 許可がないか、 I<pathname> に至るまでのディレクト"
13563 "リのいずれかに対する検索許可がなかった。 (B<path_resolution>(7) も参照のこ"
13566 #. type: Plain text
13567 #: build/C/man2/rmdir.2:64
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."
13573 "I<pathname> がシステムや別のプロセスにより使用中で削除することができない。 "
13574 "Linux では、 I<pathname> がマウントポイントとして使用されているか、 呼び出し"
13575 "たプロセスのルートディレクトリであることを意味する。"
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<.> である。"
13582 #. type: Plain text
13583 #: build/C/man2/rmdir.2:85
13585 "A directory component in I<pathname> does not exist or is a dangling "
13588 "I<pathname> の中のディレクトリ部分が存在しないか、壊れた (dangling) シンボ"
13589 "リックリンク (symbolic link) である。"
13591 #. type: Plain text
13592 #: build/C/man2/rmdir.2:94
13594 "I<pathname>, or a component used as a directory in I<pathname>, is not, in "
13595 "fact, a directory."
13597 "I<pathname> か I<pathname> に含まれているディレクトリ部分が、実際には、ディレ"
13601 #: build/C/man2/rmdir.2:94
13603 msgid "B<ENOTEMPTY>"
13604 msgstr "B<ENOTEMPTY>"
13606 #. type: Plain text
13607 #: build/C/man2/rmdir.2:107
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 "
13613 "ディレクトリ I<pathname> に I<.> と I<..> 以外のエントリがある。または、 "
13614 "I<pathname> を構成する最後の要素が I<..> である。 POSIX.1-2001 は、この状況"
13615 "で B<EEXIST> を返すことを認めている。"
13617 #. type: Plain text
13618 #: build/C/man2/rmdir.2:118
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)."
13625 "I<pathname> を含んでいるディレクトリにスティッキービット(sticky-bit) "
13626 "(B<S_ISVTX>) が設定されていて、プロセスの実効ユーザーID が削除しようとする"
13627 "ファイルの ユーザID とそのファイルを含むディレクトリのユーザーID のどちらとも"
13628 "異なり、 プロセスも権限 (Linux では B<CAP_FOWNER> ケーパビリティ) がない。"
13630 #. type: Plain text
13631 #: build/C/man2/rmdir.2:123
13633 "The filesystem containing I<pathname> does not support the removal of "
13636 "I<pathname> を含んでいるファイルシステムがディレクトリの 削除をサポートしてい"
13639 #. type: Plain text
13640 #: build/C/man2/rmdir.2:127
13641 msgid "I<pathname> refers to a directory on a read-only filesystem."
13643 "I<pathname> が読み込み専用のファイルシステム上のディレクトリを参照している。"
13645 #. type: Plain text
13646 #: build/C/man2/rmdir.2:132
13648 "Infelicities in the protocol underlying NFS can cause the unexpected "
13649 "disappearance of directories which are still being used."
13651 "NFS プロトコルに潜在している欠陥によって、まだ使用中のディレクトリが 突然消滅"
13652 "する現象が引き起こされることがある。"
13654 #. type: Plain text
13655 #: build/C/man2/rmdir.2:141
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)"
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)"
13664 #: build/C/man3/scanf.3:52
13669 #. type: Plain text
13670 #: build/C/man3/scanf.3:55
13672 "scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf - input format conversion"
13673 msgstr "scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf - 書式付き入力変換"
13675 #. type: Plain text
13676 #: build/C/man3/scanf.3:62
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"
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"
13687 #. type: Plain text
13688 #: build/C/man3/scanf.3:64
13690 msgid "B<#include E<lt>stdarg.hE<gt>>\n"
13691 msgstr "B<#include E<lt>stdarg.hE<gt>>\n"
13693 #. type: Plain text
13694 #: build/C/man3/scanf.3:68
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"
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"
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>():"
13710 #. type: Plain text
13711 #: build/C/man3/scanf.3:82
13713 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ "
13716 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ "
13719 #. type: Plain text
13720 #: build/C/man3/scanf.3:104
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."
13729 "B<scanf>() 関数グループは、以下に述べるように、 I<format> に従って入力を読み"
13730 "込むものである。 この書式には I<「変換指定」 (conversion specifications)> を"
13731 "含めることができ、変換指定があれば、その変換の結果は I<format> に続く "
13732 "I<pointer> 引き数が指す場所に格納される。 それぞれの I<pointer> 引き数の型"
13733 "は、対応する変換指定が返す値に 適合していなければならない。"
13735 #. type: Plain text
13736 #: build/C/man3/scanf.3:115
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."
13743 "I<format> 中の変換指定の個数が I<pointer> 引き数の数より多かった場合の結果は"
13744 "未定義である。 I<pointer> 引き数の数が変換指定の個数よりも多かった場合、 余分"
13745 "な I<pointer> 引き数の評価は行われるが、それ以外は行われず無視される。"
13747 #. type: Plain text
13748 #: build/C/man3/scanf.3:127
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>."
13754 "B<scanf>() 関数は標準入力ストリーム I<stdin> からの入力を読み込む。 "
13755 "B<fscanf>() はストリームポインタ I<stream> からの入力を読み込む。 "
13756 "B<sscanf>() は文字列ポインタ I<str> で示された文字列からの入力を読み込む。"
13758 #. type: Plain text
13759 #: build/C/man3/scanf.3:145
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."
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) 関数の関係と同様である。"
13774 #. type: Plain text
13775 #: build/C/man3/scanf.3:159
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)."
13784 "I<format> 文字列は I<「命令」 (directive)> の列で構成される。命令は入力文字の"
13785 "系列をどのように処理するかを指示する ものである。ある命令の処理が失敗すると、"
13786 "入力はそれ以上読み込まれず、 B<scanf>() は返る。「失敗」は I<「入力の失敗」 "
13787 "(input failure)> と I<「一致の失敗」 (matching failure)> のいずれかである。 "
13788 "入力の失敗は入力文字が使用できなかったことを意味し、 一致の失敗は入力が不適切"
13789 "であったこと (下記参照) を意味する。"
13791 #. type: Plain text
13792 #: build/C/man3/scanf.3:161
13793 msgid "A directive is one of the following:"
13794 msgstr "命令は以下のいずれかである:"
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
13804 #. type: Plain text
13805 #: build/C/man3/scanf.3:167
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."
13811 "ホワイトスペース (スペース、タブ、改行など; B<isspace>(3) 参照) の列。 この"
13812 "命令は、入力中の任意の個数のホワイトスペースに一致する。 (「何もなし」にも一"
13815 #. type: Plain text
13816 #: build/C/man3/scanf.3:171
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."
13821 "通常文字 (つまり、ホワイトスペースと \\(aq%\\(aq 以外の文字)。 この文字は入力"
13822 "の次の文字に正確に一致しなければならない。"
13824 #. type: Plain text
13825 #: build/C/man3/scanf.3:182
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 "
13834 "変換指定。変換指定は \\(aq%\\(aq (パーセント) 文字で始まる。 入力された文字の"
13835 "系列はこの指定にもとづいて変換され、 変換結果は対応する I<pointer> 引き数が指"
13836 "す場所に格納される。 入力の次の文字が変換指定と一致しない場合は、変換は失敗す"
13837 "る \\(emこれが I<「一致の失敗」 (matching failure)> である。"
13839 #. type: Plain text
13840 #: build/C/man3/scanf.3:190
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:"
13846 "I<format> 中の各々の I<「変換指定」> は文字 \\(aq%\\(aq か文字系列 \"B<"
13847 "%>I<n>B<$>\" (違いについては後述) で始まり、以下の要素が続く。"
13849 #. type: Plain text
13850 #: build/C/man3/scanf.3:201
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>()."
13857 "代入抑制文字 \\(aq*\\(aq (省略可能)。 B<scanf>() は変換指定に指示された通り"
13858 "入力を読み込むが、その入力は捨てられる。 対応する I<pointer> 引き数は必要な"
13859 "く、 B<scanf>() が返す代入が成功した数にこの指定は含まれない。"
13861 #. type: Plain text
13862 #: build/C/man3/scanf.3:220
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 "
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) すべきである。"
13881 #. type: Plain text
13882 #: build/C/man3/scanf.3:232
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 "
13893 "I<「最大フィールド幅」> を指定する 10進数 (省略可能)。 この最大値に達するか、"
13894 "一致しない文字が見つかるか、のどちらかに なると、文字の読み込みを停止する。 "
13895 "ほとんどの変換では、先頭のホワイトスペース文字は捨てられ (例外については後述"
13896 "する)、 捨てられたこれらの文字は最大フィールド幅の計算には含まれない。 文字列"
13897 "の入力変換では、入力の末尾を示す終端のヌルバイト (\\(aq\\e0\\(aq) も格納され"
13898 "るが、最大フィールド幅にはこの終端バイトは含まれない。"
13900 #. type: Plain text
13901 #: build/C/man3/scanf.3:246
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>."
13908 "I<「型修飾子」 (type modifier characters)> (省略可能)。 例えば、型修飾子 "
13909 "B<l> を B<%d> などの整数変換と一緒に使うと、対応する I<pointer> 引き数が "
13910 "I<int> ではなく I<long int> を参照していることを指定できる。"
13912 #. type: Plain text
13913 #: build/C/man3/scanf.3:251
13915 "A I<conversion specifier> that specifies the type of input conversion to be "
13917 msgstr "I<「変換指定」> : 実行すべき入力変換の種類を指定する。"
13919 #. type: Plain text
13920 #: build/C/man3/scanf.3:280
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>."
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> 引き数が参照する場所に格納することを指定する。"
13942 #: build/C/man3/scanf.3:280
13944 msgid "Conversions"
13947 #. type: Plain text
13948 #: build/C/man3/scanf.3:284
13950 "The following I<type modifier characters> can appear in a conversion "
13952 msgstr "変換指定には、以下の I<「型修飾子」> を入れることができる。"
13954 #. type: Plain text
13955 #: build/C/man3/scanf.3:294
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>)."
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> へのポインタで"
13965 #. type: Plain text
13966 #: build/C/man3/scanf.3:302
13968 "As for B<h>, but the next pointer is a pointer to a I<signed char> or "
13969 "I<unsigned char>."
13971 "B<h> と同じだが、次のポインタが I<signed char> か I<unsigned char> へのポイン"
13974 #. type: Plain text
13975 #: build/C/man3/scanf.3:311
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."
13980 "B<h> と同じだが、次のポインタが I<intmax_t> か I<uintmax_t> へのポインタであ"
13981 "ることを示す。 この修飾子は C99 で導入された。"
13983 #. This use of l was introduced in Amendment 1 to ISO C90.
13984 #. type: Plain text
13985 #: build/C/man3/scanf.3:338
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 "
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> とともに使用すると、 パラメータはそれぞれワイド文字やワイド文字列へのポイ"
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
14008 #. type. Any program using this will not be portable to all
14010 #. type: Plain text
14011 #: build/C/man3/scanf.3:354
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>."
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> へのポインタであることのいずれかであることを示す。"
14022 #: build/C/man3/scanf.3:354
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 には存在しない。"
14032 #. type: Plain text
14033 #: build/C/man3/scanf.3:366
14035 "As for B<h>, but the next pointer is a pointer to a I<ptrdiff_t>. This "
14036 "modifier was introduced in C99."
14038 "B<h> と同様だが、次のポインタが I<ptrdiff_t> へのポインタであることを示す。 "
14039 "この修飾子は C99 で導入された。"
14041 #. type: Plain text
14042 #: build/C/man3/scanf.3:373
14044 "As for B<h>, but the next pointer is a pointer to a I<size_t>. This "
14045 "modifier was introduced in C99."
14047 "B<h> と同様だが、次のポインタが I<size_t> へのポインタであることを示す。 この"
14050 #. type: Plain text
14051 #: build/C/man3/scanf.3:377
14052 msgid "The following I<conversion specifiers> are available:"
14053 msgstr "以下の I<「変換指定子」> が利用可能である。"
14055 #. type: Plain text
14056 #: build/C/man3/scanf.3:386
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."
14062 "文字 \\(aq%\\(aq に対応する。 書式文字列の中の B<%\\&%> は単一の文字 \\(aq%"
14063 "\\(aq に対応する。 変換は行われず (但し、先頭のホワイトスペース文字は捨てられ"
14067 #: build/C/man3/scanf.3:386
14072 #. type: Plain text
14073 #: build/C/man3/scanf.3:391
14075 "Matches an optionally signed decimal integer; the next pointer must be a "
14076 "pointer to I<int>."
14078 "符号つきの 10進の整数に対応する。 次のポインタは I<int> へのポインタでなけれ"
14082 #: build/C/man3/scanf.3:391
14087 #. type: Plain text
14088 #: build/C/man3/scanf.3:400
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.)"
14094 "I<ld> と同一である。これは以前の仕様との互換性だけのためにある。 (注意: これ"
14095 "は libc4 の場合だけである。 libc5 や glibc では B<%D> は暗黙のうちに無視さ"
14096 "れ、古いプログラムにおいて謎に満ちた失敗の原因となる。)"
14099 #: build/C/man3/scanf.3:400
14104 #. type: Plain text
14105 #: build/C/man3/scanf.3:412
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."
14112 "符号つき整数に対応する。 次のポインタは I<int> へのポインタでなければならな"
14113 "い。 この整数は I<0x> または I<0X> で開始する場合には 16 進数、 I<0> で開始す"
14114 "る場合には 8 進数、その他の場合には 10進数として読み込まれる。 この変換で使用"
14115 "される文字は、これらの基数に対応しているものだけである。"
14118 #: build/C/man3/scanf.3:412
14123 #. type: Plain text
14124 #: build/C/man3/scanf.3:416
14126 "Matches an unsigned octal integer; the next pointer must be a pointer to "
14129 "符号なしの 8 進の整数に対応する。 次のポインタは I<unsigned int> でなければな"
14133 #: build/C/man3/scanf.3:416
14138 #. type: Plain text
14139 #: build/C/man3/scanf.3:421
14141 "Matches an unsigned decimal integer; the next pointer must be a pointer to "
14144 "符号なしの 10進の整数に対応する。 次のポインタは I<unsigned int> へのポインタ"
14147 #. type: Plain text
14148 #: build/C/man3/scanf.3:426
14150 "Matches an unsigned hexadecimal integer; the next pointer must be a pointer "
14151 "to I<unsigned int>."
14153 "符号なしの 16 進の整数に対応する。 次のポインタは I<unsigned int> へのポイン"
14157 #: build/C/man3/scanf.3:426
14162 #. type: Plain text
14163 #: build/C/man3/scanf.3:430
14164 msgid "Equivalent to B<x>."
14165 msgstr "B<x> と同一である。"
14168 #: build/C/man3/scanf.3:430
14173 #. type: Plain text
14174 #: build/C/man3/scanf.3:435
14176 "Matches an optionally signed floating-point number; the next pointer must be "
14177 "a pointer to I<float>."
14179 "符号つき浮動小数点実数に対応する。 次のポインタは I<float> へのポインタでなけ"
14183 #: build/C/man3/scanf.3:435
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> と同一である。"
14194 #: build/C/man3/scanf.3:439
14200 #: build/C/man3/scanf.3:443
14205 #. type: Plain text
14206 #: build/C/man3/scanf.3:451
14207 msgid "(C99) Equivalent to B<f>."
14208 msgstr "(C99) B<f> と同一である。"
14210 #. type: Plain text
14211 #: build/C/man3/scanf.3:459
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."
14219 "ホワイトスペースではない文字で構成された文字列に対応する。 次のポインタは文字"
14220 "の配列へのポインタでなければならず、 その文字配列は、入力された文字列と (自動"
14221 "的に追加される) 終端のヌルバイト (\\(aq\\e0\\(aq) を格納するのに十分な大きさ"
14222 "でなければならない。 文字列の入力は、ホワイトスペースが入力されるか、最大"
14223 "フィールド幅に 達するか、のどちらかが起こると停止される。"
14225 #. type: Plain text
14226 #: build/C/man3/scanf.3:469
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."
14234 "I<「最大フィールド幅」> (デフォルトは 1) で指定された幅の文字の列に対応す"
14235 "る。 次のポインタは I<char> へのポインタで、すべての文字を格納するのに十分な"
14236 "領域が なければならない (終端のヌルバイトは追加されない)。 通常行われる先頭の"
14237 "ホワイトスペースの読み飛ばしは行われない。 先頭のホワイトスペースを読み飛ばす"
14238 "ためには、 フォーマット文の中で明示的にスペースを使用すれば良い。"
14241 #: build/C/man3/scanf.3:469
14246 #. type: Plain text
14247 #: build/C/man3/scanf.3:502
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."
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 "る) 文字の 出現または確保された領域が使い切られた時に終了する。"
14282 #. type: Plain text
14283 #: build/C/man3/scanf.3:510
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>."
14288 "(B<printf>(3) の B<%p> で印字されるような) ポインタ値に対応する。 次のポイン"
14289 "タは I<void> へのポインタへのポインタでなければならない。"
14291 #. type: Plain text
14292 #: build/C/man3/scanf.3:530
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."
14303 "どんな入力も必要としない。 そのかわりに、 入力からここまで消費された文字数が"
14304 "次のポインタで指定された場所に 格納される。 このポインタは I<int> へのポイン"
14305 "タでなければならない。 変換を抑制するのであれば B<*> 代入抑制文字を使って抑制"
14306 "することができるのだが、 この変換指定子は変換では「ない」。 C 言語の標準規格"
14307 "では「実行の完了時に返される代入の回数は B<%n> 命令の実行では増加しない」と"
14308 "なっているが、 正誤表の内容はこれと矛盾するようである。おそらく、 B<%n> 変換"
14309 "が返り値に与える影響についてはどのような仮定もしないのが 賢明であろう。"
14311 #. type: Plain text
14312 #: build/C/man3/scanf.3:535
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."
14318 "これらの関数は、一致と代入が成功した入力要素の個数を返す。 返される値は渡され"
14319 "た変換の個数よりも少ないこともあり、 最初に一致の失敗があった場合には 0 にな"
14322 #. type: Plain text
14323 #: build/C/man3/scanf.3:547
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 "
14331 "最初の変換が成功する前に入力の最後に達して、一致の失敗が起こった場合には、 "
14332 "B<EOF> が返される。また、 読み込みエラーが発生した場合にも B<EOF> が返され"
14333 "る。読み込みエラーの場合には、そのストリームの エラー指示子がセットされ "
14334 "(B<ferror>(3) 参照)、 I<errno> にエラーを示す値がセットされる。"
14336 #. type: Plain text
14337 #: build/C/man3/scanf.3:553
14339 "The file descriptor underlying I<stream> is marked nonblocking, and the read "
14340 "operation would block."
14342 "I<stream> に対応するファイルディスクリプタが nonblocking となっており、 読み"
14343 "込み操作は停止 (block) することになる。"
14345 #. type: Plain text
14346 #: build/C/man3/scanf.3:558
14348 "The file descriptor underlying I<stream> is invalid, or not open for reading."
14350 "I<stream> に対応するファイルディスクリプタが無効であるが、 読み込み用にオープ"
14353 #. type: Plain text
14354 #: build/C/man3/scanf.3:561
14355 msgid "Input byte sequence does not form a valid character."
14356 msgstr "入力されたバイト列が有効な文字を構成していない。"
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) 参照。"
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 である。"
14368 #. type: Plain text
14369 #: build/C/man3/scanf.3:573
14370 msgid "Out of memory."
14374 #: build/C/man3/scanf.3:573
14379 #. type: Plain text
14380 #: build/C/man3/scanf.3:577
14382 "The result of an integer conversion would exceed the size that can be stored "
14383 "in the corresponding integer type."
14384 msgstr "整数変換の結果が、対応する整数型に格納できるサイズを越えてしまう。"
14386 #. type: Plain text
14387 #: build/C/man3/scanf.3:587
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."
14392 "B<fscanf>(), B<scanf>(), B<sscanf>() 関数は C89, C99, POSIX.1-2001 に準拠し"
14393 "ている。 これらの標準では、エラー B<ERANGE> は規定されていない。"
14395 #. type: Plain text
14396 #: build/C/man3/scanf.3:597
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."
14401 "B<q> 指定子は I<long long> の 4.4BSD での記述方法である。 一方、整数変換での "
14402 "B<ll> または B<L> の使用は GNU での拡張である。"
14404 #. type: Plain text
14405 #: build/C/man3/scanf.3:608
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."
14411 "これらの関数の Linux 版は I<GNU> I<libio> ライブラリーを元にしている。 より簡"
14412 "潔な説明には I<GNU> I<libc (glibc-1.08)> の I<info> 文書に目を通すこと。"
14415 #: build/C/man3/scanf.3:609
14417 msgid "The 'a' assignment-allocation modifier"
14418 msgstr "'a' 代入割り当て (assignment-allocation) 修飾子"
14420 #. type: Plain text
14421 #: build/C/man3/scanf.3:620
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>:"
14429 "元々、 GNU C ライブラリ (glibc) では、 B<a> 文字による文字列入力に対する動的"
14430 "割り当て変換指定子 (dynamic allocation conversion specifier) を (非標準の拡張"
14431 "として) サポートしている。この機能は少なくとも glibc 2.0 の時点ではすでに存在"
14432 "している。 したがって、以下のようにして、 B<scanf>() に入力文字列に対してバッ"
14433 "ファを割り当てさせることができる。割り当てられたバッファは I<*buf> で返され"
14436 #. type: Plain text
14437 #: build/C/man3/scanf.3:623
14441 " scanf(\"%as\", &buf);\n"
14444 " scanf(\"%as\", &buf);\n"
14446 #. type: Plain text
14447 #: build/C/man3/scanf.3:634
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)."
14454 "この目的で文字 B<a> を使うのは問題をはらんでいる。 なぜなら、 B<a> は ISO C "
14455 "標準では (浮動小数点入力を表す) の B<f> の同義語として定義されているからであ"
14456 "る。 その代わり、 POSIX.1-2008 では、(上記の「説明」に書かれている通り) 代入"
14457 "割り当てを行う修飾子として B<m> が規定されている。"
14459 #. type: Plain text
14460 #: build/C/man3/scanf.3:646
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)."
14467 "B<a> 修飾子は I<gcc -std=c99> や I<gcc -D_ISOC99_SOURCE> でコンパイルしたプロ"
14468 "グラムでは (B<_GNU_SOURCE> も同時に指定していない場合) 利用できない点に注意。"
14469 "この場合、 B<a> は (上述の通り) 浮動小数点数を示す変換指定子と解釈される。"
14471 #. type: Plain text
14472 #: build/C/man3/scanf.3:652
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>."
14477 "B<m> 修飾子への対応はバージョン 2.7 以降の glibc で追加されている。新しいプロ"
14478 "グラムでぇあ B<a> の代わりに B<m> を使用すべきである。"
14480 #. type: Plain text
14481 #: build/C/man3/scanf.3:658
14483 "As well as being standardized by POSIX, the B<m> modifier has the following "
14484 "further advantages over the use of B<a:>"
14486 "POSIX で標準化されているだけでなく、 B<m> 修飾子には B<a> を利用する場合に比"
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>)。"
14494 #. type: Plain text
14495 #: build/C/man3/scanf.3:669
14497 "It avoids ambiguity with respect to the B<%a> floating-point conversion "
14498 "specifier (and is unaffected by I<gcc -std=c99> etc.)."
14500 "浮動小数点変換指定子としての B<%a> との紛らわしさが避けられる (また I<gcc -"
14501 "std=c99> などの影響も避けられる)。"
14503 #. type: Plain text
14504 #: build/C/man3/scanf.3:682
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."
14511 "全ての関数は、完全に C89 に準拠している。しかし 追加で B<q> と B<a> 指定子が"
14512 "提供されており、同様に B<L> と B<l> 指定子の付加的な振る舞いもある。後者は、 "
14513 "C89 で定義された指定子の振る舞いを変更するものなので、 バグとみなされるかもし"
14516 #. type: Plain text
14517 #: build/C/man3/scanf.3:698
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>."
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> を使用した方が良い。"
14534 #. type: Plain text
14535 #: build/C/man3/scanf.3:704
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>."
14540 "B<q> の使用方法は 4.4BSD と同じではない。 4.4BSD では B<q> は B<L> と同等に浮"
14543 #. type: Plain text
14544 #: build/C/man3/scanf.3:714
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:"
14550 "動的割り当て変換指定子を使用するには、長さ修飾子として B<m> を指定する (つま"
14551 "り、全体としては B<%ms> や B<%m[>I<range>B<]> となる)。以下の例にあるように、"
14552 "呼び出し側は返された文字列を B<free>(3) しなければならない。"
14554 #. type: Plain text
14555 #: build/C/man3/scanf.3:719
14564 #. type: Plain text
14565 #: build/C/man3/scanf.3:730
14569 "n = scanf(\"%m[a-z]\", &p);\n"
14571 " printf(\"read: %s\\en\", p);\n"
14573 "} else if (errno != 0) {\n"
14574 " perror(\"scanf\");\n"
14576 " fprintf(stderr, \"No matching characters\\en\");\n"
14580 "n = scanf(\"%m[a-z]\", &p);\n"
14582 " printf(\"read: %s\\en\", p);\n"
14584 "} else if (errno != 0) {\n"
14585 " perror(\"scanf\");\n"
14587 " fprintf(stderr, \"No matching characters\\en\");\n"
14590 #. type: Plain text
14591 #: build/C/man3/scanf.3:738
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."
14596 "上記の例にあるように、 B<scanf>() が文字列の読み込みに成功した場合にだけ、 "
14597 "B<free>(3) を呼び出す必要がある。"
14599 #. type: Plain text
14600 #: build/C/man3/scanf.3:745
14602 "B<getc>(3), B<printf>(3), B<setlocale>(3), B<strtod>(3), B<strtol>(3), "
14605 "B<getc>(3), B<printf>(3) B<setlocale>(3), B<strtod>(3), B<strtol>(3), "
14609 #: build/C/man3/setbuf.3:48
14614 #. type: Plain text
14615 #: build/C/man3/setbuf.3:51
14616 msgid "setbuf, setbuffer, setlinebuf, setvbuf - stream buffering operations"
14618 "setbuf, setbuffer, setlinebuf, setvbuf - ストリームのバッファリングの操作"
14620 #. type: Plain text
14621 #: build/C/man3/setbuf.3:56
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"
14626 #. type: Plain text
14627 #: build/C/man3/setbuf.3:58
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"
14632 #. type: Plain text
14633 #: build/C/man3/setbuf.3:60
14635 msgid "B<void setlinebuf(FILE *>I<stream>B<);>\n"
14636 msgstr "B<void setlinebuf(FILE *>I<stream>B<);>\n"
14638 #. type: Plain text
14639 #: build/C/man3/setbuf.3:63
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"
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"
14649 #. type: Plain text
14650 #: build/C/man3/setbuf.3:96
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 "
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> はデフォルトでは常に "
14678 #. type: Plain text
14679 #: build/C/man3/setbuf.3:103
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:"
14684 "B<setvbuf>() 関数は、オープンしている任意のストリームに対してバッファを変更"
14685 "できる。 引き数 I<mode> は、次の 3 つのマクロのうちいずれかである:"
14688 #: build/C/man3/setbuf.3:104
14693 #. type: Plain text
14694 #: build/C/man3/setbuf.3:107
14696 msgstr "unbuffered"
14699 #: build/C/man3/setbuf.3:107
14704 #. type: Plain text
14705 #: build/C/man3/setbuf.3:110
14706 msgid "line buffered"
14707 msgstr "line buffered"
14710 #: build/C/man3/setbuf.3:110
14715 #. type: Plain text
14716 #: build/C/man3/setbuf.3:113
14717 msgid "fully buffered"
14718 msgstr "fully buffered"
14720 #. type: Plain text
14721 #: build/C/man3/setbuf.3:129
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."
14730 "unbuffered のファイルを除き、 I<buf> 引数は I<size> バイト以上の大きさのバッ"
14731 "ファを指していなければならない。このバッファは現在の バッファの代わりに用いら"
14732 "れる。もし、引数 I<buf> が NULL ならば、モードだけが変更される。 新しいバッ"
14733 "ファは次に読み書きした際に割り当てられる。 B<setvbuf>() 関数は、ストリームを"
14734 "オープンした後、 そのストリームに対して何らかの操作をする前にのみ使用できる。"
14736 #. type: Plain text
14737 #: build/C/man3/setbuf.3:135
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"
14742 "他の 3 つの関数は B<setvbuf>() の呼び出しに単純に置き換えることができる。 "
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);"
14750 #. type: Plain text
14751 #: build/C/man3/setbuf.3:148
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:"
14757 "と全く同等だし、 B<setbuffer>() 関数は、バッファサイズがデフォルト値 "
14758 "B<BUFSIZ> ではなく引数で与えられる点以外は同じである。 B<setlinebuf>() 関数"
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);"
14766 #. type: Plain text
14767 #: build/C/man3/setbuf.3:162
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."
14773 "B<setvbuf>() 関数は、成功した場合 0 を返す。 失敗した場合、0 以外の値を返す "
14774 "(失敗とは、 I<mode> が不正な場合またはリクエストが条件を満たさない場合であ"
14775 "る)。 B<setvbuf>() 関数が失敗した場合は I<errno> を設定することもある。"
14777 #. type: Plain text
14778 #: build/C/man3/setbuf.3:164
14779 msgid "The other functions do not return a value."
14780 msgstr "その他の関数は値を返さない。"
14782 #. type: Plain text
14783 #: build/C/man3/setbuf.3:173
14785 "The B<setbuf>(), B<setbuffer>(), B<setlinebuf>(), and B<setvbuf>() "
14786 "functions are thread-safe."
14788 "関数 B<setbuf>(), B<setbuffer>(), B<setlinebuf>(), B<setvbuf>() はスレッド"
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."
14795 "B<setbuf>() 関数および B<setvbuf>() 関数は C89 と C99 に準拠している。"
14797 #. type: Plain text
14798 #: build/C/man3/setbuf.3:196
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:"
14804 "I<stream> を閉じる時 (プログラムを終了する際にもこれは起きる) には、 I<buf> "
14805 "が指し示す空間とが存在していることを保証しなければならない。 例えば、次のよう"
14808 #. type: Plain text
14809 #: build/C/man3/setbuf.3:199
14811 msgid "#include E<lt>stdio.hE<gt>\n"
14812 msgstr "#include E<lt>stdio.hE<gt>\n"
14814 #. type: Plain text
14815 #: build/C/man3/setbuf.3:208
14821 " char buf[BUFSIZ];\n"
14822 " setbuf(stdin, buf);\n"
14823 " printf(\"Hello, world!\\en\");\n"
14830 " char buf[BUFSIZ];\n"
14831 " setbuf(stdin, buf);\n"
14832 " printf(\"Hello, world!\\en\");\n"
14836 #. type: Plain text
14837 #: build/C/man3/setbuf.3:217
14839 "B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), "
14840 "B<printf>(3), B<puts>(3)"
14842 "B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), "
14843 "B<printf>(3), B<puts>(3)"
14846 #: build/C/man3/stdin.3:13
14852 #: build/C/man3/stdin.3:13 build/C/man3/tmpfile.3:31
14855 msgstr "2008-07-14"
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 - 標準入出力ストリーム"
14862 #. type: Plain text
14863 #: build/C/man3/stdin.3:23
14866 "B<extern FILE *>I<stdin>B<;>\n"
14867 "B<extern FILE *>I<stdout>B<;>\n"
14868 "B<extern FILE *>I<stderr>B<;>\n"
14870 "B<extern FILE *>I<stdin>B<;>\n"
14871 "B<extern FILE *>I<stdout>B<;>\n"
14872 "B<extern FILE *>I<stderr>B<;>\n"
14874 #. type: Plain text
14875 #: build/C/man3/stdin.3:35
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).)"
14884 "標準の環境では、 UNIX プログラムは起動時に、オープンされているストリー ムを "
14885 "3 つ与えられる。それぞれ入力用、出力用、診断メッセージやエラーメッ セージの表"
14886 "示用のものである。これらは通常ユーザの端末 (B<tty>(4) を見よ) に接続されてい"
14887 "るが、親プロセスでの選択・設定によってファイル や他のデバイスに関連づけられて"
14888 "いることもある (B<sh>(1) の「リダイレクション」セクションも参照のこと)。"
14890 #. type: Plain text
14891 #: build/C/man3/stdin.3:45
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>."
14898 "入力ストリームは \"standard input\" と呼ばれる。出力ストリームは \"standard "
14899 "output\"、エラーストリームは \"standard error\" と呼ばれる。 これらの用語を短"
14900 "縮したものがそれぞれのファイルを示すシンボルとなる。つ まり I<stdin>, "
14901 "I<stdout>, I<stderr> である。"
14903 #. type: Plain text
14904 #: build/C/man3/stdin.3:54
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)."
14909 "これらのシンボルは B<stdio>(3) のマクロで、 FILE へのポインタ型である。した"
14910 "がって B<fprintf>(3) や B<fread>(3) などの関数とともに用いることができる。"
14912 #. type: Plain text
14913 #: build/C/man3/stdin.3:63
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)."
14919 "I<FILE> は UNIX のファイルディスクリプタにバッファ機能を追加したラッパー であ"
14920 "るから、これらのマクロにも対応するファイルがあり、 UNIX の raw ファ イルイン"
14921 "タフェース (B<read>(2) や B<lseek>(2) など) によってアクセスすることもでき"
14924 #. type: Plain text
14925 #: build/C/man3/stdin.3:82
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.)"
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 "たファイルディスクリプタ の番号を変更することができる。)"
14941 #. type: Plain text
14942 #: build/C/man3/stdin.3:95
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."
14952 "I<FILE> と raw なファイルディスクリプタの併用は、予期できない結果を生じ るこ"
14953 "とがあるので、通常は避けるべきである。 (マゾヒスティックな人に: POSIX.1 のセ"
14954 "クション 8.2.3 には、この混用で動作がどのようになりそう かが詳しく記述されて"
14955 "いる。) 一般的なルールは以下の通り: ファイルディスクリプタはカーネルによっ"
14956 "て 扱われ、 stdio は単にライブラリによって扱われるのである。すなわち例えば "
14957 "B<exec>(3) の後には、子プロセスはオープンされているファイルディスクリプタ を"
14958 "すべて継承するが、親からのストリームはすべてアクセス不可となる。"
14960 #. type: Plain text
14961 #: build/C/man3/stdin.3:113
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."
14970 "シンボル I<stdin>, I<stdout>, I<stderr> はすべてマクロとして定義されているの"
14971 "で、これらへの代入 は移植性を保証されない。標準ストリームはライブラリ関数 "
14972 "B<freopen>(3) を用いれば、別のファイルを示すように変更することもできる。 こ"
14973 "のライブラリ関数は I<stdin>, I<stdout>, I<stderr> の再割り当てが可能なように"
14974 "特別に導入されたものである。 標準ストリームは B<exit>(3) の呼び出しと、プロ"
14975 "グラムの正常終了によってクローズされる。"
14977 #. type: Plain text
14978 #: build/C/man3/stdin.3:122
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 "
14984 "I<stdin>, I<stdout>, I<stderr> マクロは C89 に準拠している。 また C89 では、"
14985 "これら 3 つのストリームがプログラム の起動時にオープンされているべきであるこ"
14988 #. type: Plain text
14989 #: build/C/man3/stdin.3:154
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 "
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) も参照すること。"
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)"
15022 #: build/C/man3/stdio.3:39
15028 #: build/C/man3/stdio.3:39
15031 msgstr "2001-12-26"
15033 #. type: Plain text
15034 #: build/C/man3/stdio.3:42
15035 msgid "stdio - standard input/output library functions"
15036 msgstr "stdio - 標準入出力ライブラリ関数"
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<;>"
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<;>"
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<;>"
15053 #. type: Plain text
15054 #: build/C/man3/stdio.3:57
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."
15061 "標準入出力ライブラリは、簡単かつ効果のよい、 バッファリングされたストリーム入"
15062 "出力インターフェースを提供する。 入力と出力は論理データストリームに割り付けら"
15063 "れ、 入出力の物理的な特徴は隠蔽される。 このライブラリに属する関数とマクロを"
15064 "以下に挙げる。 より詳しい情報は個々の man ページから得ることができる。"
15066 #. type: Plain text
15067 #: build/C/man3/stdio.3:80
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."
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 "字を書き込んだかのように行われる。"
15095 #. type: Plain text
15096 #: build/C/man3/stdio.3:90
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)."
15104 "ファイルを I<クローズ (close) する> ことによって、そのファイルはストリームか"
15105 "ら切り離される。 出力ストリームは、そのストリームがファイルから切り離される前"
15106 "にフラッシュされる (書き込まれていないすべてのバッファの内容がホスト環境に転"
15107 "送される)。 I<FILE> オブジェクトへのポインタの値は、 ファイルを閉じた後では不"
15108 "確定になる (ゴミになってしまう)。"
15110 #. type: Plain text
15111 #: build/C/man3/stdio.3:103
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."
15120 "ファイルはその後 (同じまたは別のプログラムによって) 再びオープンされることも"
15121 "あり、 その内容が修正されたり変更されたりする (そのファイルで先頭への位置移動"
15122 "が可能であれば)。 main 関数がもとの呼び出し側に返ったり、 B<exit>(3) 関数が"
15123 "呼ばれた場合、 プログラムの終了の前に 現在開いているすべてのファイルは閉じら"
15124 "れる (その結果、すべての出力ストリームはフラッシュされる)。 プログラムの停止"
15125 "に B<abort>(3) のような他の方法を用いた場合には、 ファイルが正しく閉じられる"
15128 #. type: Plain text
15129 #: build/C/man3/stdio.3:119
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."
15139 "プログラムの起動時に 3 個のテキストストリームが予め定義されており、 それらは"
15140 "明示的に開く必要がない。 I<標準入力 (standard input)> (通常の入力を読み取るの"
15141 "に使う)、 I<標準出力 (standard output)> (通常の出力を書き込むのに使う)、 I<標"
15142 "準エラー出力 (standard error)> (診断出力を書き込むのに使う) である。 これらの"
15143 "ストリームは I<stdin>, I<stdout>, I<stderr> と短縮して表現される。 オープンさ"
15144 "れたときには、 標準エラーストリームは 完全にはバッファリングされていない。 標"
15145 "準入力ストリームと標準出力ストリームは、 ストリームがインタラクティブなデバイ"
15146 "スを参照していなければ、 完全にバッファリングされている。"
15148 #. type: Plain text
15149 #: build/C/man3/stdio.3:129
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."
15158 "端末デバイスを参照する出力ストリームは、 デフォルトでは常に行単位でバッファリ"
15159 "ングされている。 ただしそのようなストリームにおけるバッファ内の出力は、 端末"
15160 "デバイスを参照している入力ストリームからの読み込みがあるたびに、 自動的に書き"
15161 "込まれる。 出力端末に行の一部を書き込んだ後で大量の計算を行う場合、 出力が表"
15162 "示されるように、計算に取りかかる前に標準出力に対して B<fflush>(3) を実行する"
15165 #. type: Plain text
15166 #: build/C/man3/stdio.3:143
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."
15174 "I<stdio> ライブラリは B<libc> ライブラリの一部であり、ルーチンは コンパイ"
15175 "ラー B<cc>(1) と B<pc>(1) によって必要な時に自動的に読み込まれる。 後述す"
15176 "る man ページ中の「書式」の節には、 どのインクルードファイルを使用しなければ"
15177 "ならないか、 その関数のコンパイラー宣言はどのようなものか、 どのような外部変"
15180 #. Not on Linux: .BR fropen ,
15181 #. Not on Linux: .BR fwopen ,
15182 #. type: Plain text
15183 #: build/C/man3/stdio.3:183
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."
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 "示的に消去されている場合には、 これらを使用することになるだろう。"
15205 #: build/C/man3/stdio.3:183
15207 msgid "List of functions"
15211 #: build/C/man3/stdio.3:188
15213 msgid "Function\tDescription\n"
15217 #: build/C/man3/stdio.3:189
15223 #: build/C/man3/stdio.3:190
15225 msgid "clearerr\tcheck and reset stream status\n"
15226 msgstr "clearerr\tストリームの状態の確認とリセット\n"
15229 #: build/C/man3/stdio.3:191
15231 msgid "fclose\tclose a stream\n"
15232 msgstr "fclose\tストリームをクローズする\n"
15235 #: build/C/man3/stdio.3:192
15237 msgid "fdopen\tstream open functions\n"
15238 msgstr "fdopen\tストリームをオープンする\n"
15241 #: build/C/man3/stdio.3:193
15243 msgid "feof\tcheck and reset stream status\n"
15244 msgstr "feof\tストリームの状態の確認とリセット\n"
15247 #: build/C/man3/stdio.3:194
15249 msgid "ferror\tcheck and reset stream status\n"
15250 msgstr "ferror\tストリームの状態の確認とリセット\n"
15253 #: build/C/man3/stdio.3:195
15255 msgid "fflush\tflush a stream\n"
15256 msgstr "fflush\tストリームをフラッシュする\n"
15259 #: build/C/man3/stdio.3:196
15261 msgid "fgetc\tget next character or word from input stream\n"
15262 msgstr "fgetc\t次の文字または語を入力ストリームから獲得する\n"
15265 #: build/C/man3/stdio.3:197
15267 msgid "fgetpos\treposition a stream\n"
15268 msgstr "fgetpos\tストリームの位置を取得する\n"
15271 #: build/C/man3/stdio.3:198
15273 msgid "fgets\tget a line from a stream\n"
15274 msgstr "fgets\tストリームから行を取得する\n"
15277 #: build/C/man3/stdio.3:199
15279 msgid "fileno\treturn the integer descriptor of the argument stream\n"
15280 msgstr "fileno\t引き数であるストリームの整数値のディスクリプタを返す\n"
15283 #: build/C/man3/stdio.3:200
15285 msgid "fopen\tstream open functions\n"
15286 msgstr "fopen\tストリームをオープンする\n"
15289 #: build/C/man3/stdio.3:201
15291 msgid "fprintf\tformatted output conversion\n"
15292 msgstr "fprintf\t書式付き出力変換\n"
15295 #: build/C/man3/stdio.3:202
15297 msgid "fpurge\tflush a stream\n"
15298 msgstr "fpurge\tストリームをフラッシュする\n"
15301 #: build/C/man3/stdio.3:203
15303 msgid "fputc\toutput a character or word to a stream\n"
15304 msgstr "fputc\t文字または語をストリームに出力する\n"
15307 #: build/C/man3/stdio.3:204
15309 msgid "fputs\toutput a line to a stream\n"
15310 msgstr "fputs\t行をストリームに出力する\n"
15313 #: build/C/man3/stdio.3:205
15315 msgid "fread\tbinary stream input/output\n"
15316 msgstr "fread\tバイナリーストリーム入出力\n"
15319 #: build/C/man3/stdio.3:206
15321 msgid "freopen\tstream open functions\n"
15322 msgstr "freopen\tストリームをオープンする\n"
15325 #: build/C/man3/stdio.3:207
15327 msgid "fscanf\tinput format conversion\n"
15328 msgstr "fscanf\t書式付き入力変換\n"
15331 #: build/C/man3/stdio.3:208
15333 msgid "fseek\treposition a stream\n"
15334 msgstr "fseek\tストリームの位置指示子を移動する\n"
15337 #: build/C/man3/stdio.3:209
15339 msgid "fsetpos\treposition a stream\n"
15340 msgstr "fsetpos\tストリームの位置指示子を移動する\n"
15343 #: build/C/man3/stdio.3:210
15345 msgid "ftell\treposition a stream\n"
15346 msgstr "ftell\tストリームの位置を取得する\n"
15349 #: build/C/man3/stdio.3:211
15351 msgid "fwrite\tbinary stream input/output\n"
15352 msgstr "fwrite\tバイナリーストリーム入出力\n"
15355 #: build/C/man3/stdio.3:212
15357 msgid "getc\tget next character or word from input stream\n"
15358 msgstr "getc\t次の文字または語を入力ストリームから取得する\n"
15361 #: build/C/man3/stdio.3:213
15363 msgid "getchar\tget next character or word from input stream\n"
15364 msgstr "getchar\t次の文字または語を入力ストリームから取得する\n"
15367 #: build/C/man3/stdio.3:214
15369 msgid "gets\tget a line from a stream\n"
15370 msgstr "gets\t行を入力ストリームから取得する\n"
15373 #: build/C/man3/stdio.3:215
15375 msgid "getw\tget next character or word from input stream\n"
15376 msgstr "getw\t次の文字または語を入力ストリームから取得する\n"
15379 #: build/C/man3/stdio.3:216
15381 msgid "mktemp\tmake temporary filename (unique)\n"
15382 msgstr "mktemp\t他と重ならないテンポラリファイル名を作る\n"
15385 #: build/C/man3/stdio.3:217
15387 msgid "perror\tsystem error messages\n"
15388 msgstr "perror\tシステムエラーメッセージ\n"
15391 #: build/C/man3/stdio.3:218
15393 msgid "printf\tformatted output conversion\n"
15394 msgstr "printf\t書式付き出力変換\n"
15397 #: build/C/man3/stdio.3:219
15399 msgid "putc\toutput a character or word to a stream\n"
15400 msgstr "putc\t文字または語をストリームに出力する\n"
15403 #: build/C/man3/stdio.3:220
15405 msgid "putchar\toutput a character or word to a stream\n"
15406 msgstr "putchar\t文字または語をストリームに出力する\n"
15409 #: build/C/man3/stdio.3:221
15411 msgid "puts\toutput a line to a stream\n"
15412 msgstr "puts\t行をストリームに出力する\n"
15415 #: build/C/man3/stdio.3:222
15417 msgid "putw\toutput a character or word to a stream\n"
15418 msgstr "putw\t文字または語をストリームに出力する\n"
15421 #: build/C/man3/stdio.3:223
15423 msgid "remove\tremove directory entry\n"
15424 msgstr "remove\tディレクトリエントリを削除する\n"
15427 #: build/C/man3/stdio.3:224
15429 msgid "rewind\treposition a stream\n"
15430 msgstr "rewind\tストリームの位置指示子を移動する\n"
15433 #: build/C/man3/stdio.3:225
15435 msgid "scanf\tinput format conversion\n"
15436 msgstr "scanf\t書式付き入力変換\n"
15439 #: build/C/man3/stdio.3:226
15441 msgid "setbuf\tstream buffering operations\n"
15442 msgstr "setbuf\tストリームのバッファリングの操作\n"
15445 #: build/C/man3/stdio.3:227
15447 msgid "setbuffer\tstream buffering operations\n"
15448 msgstr "setbuffer\tストリームのバッファリングの操作\n"
15451 #: build/C/man3/stdio.3:228
15453 msgid "setlinebuf\tstream buffering operations\n"
15454 msgstr "setlinebuf\tストリームのバッファリングの操作\n"
15457 #: build/C/man3/stdio.3:229
15459 msgid "setvbuf\tstream buffering operations\n"
15460 msgstr "setvbuf\tストリームのバッファリングの操作\n"
15463 #: build/C/man3/stdio.3:230
15465 msgid "sprintf\tformatted output conversion\n"
15466 msgstr "sprintf\t書式付き出力変換\n"
15469 #: build/C/man3/stdio.3:231
15471 msgid "sscanf\tinput format conversion\n"
15472 msgstr "sscanf\t書式付き入力変換\n"
15475 #: build/C/man3/stdio.3:232
15477 msgid "strerror\tsystem error messages\n"
15478 msgstr "strerror\tシステムエラーメッセージ\n"
15481 #: build/C/man3/stdio.3:233
15483 msgid "sys_errlist\tsystem error messages\n"
15484 msgstr "sys_errlist\tシステムエラーメッセージ\n"
15487 #: build/C/man3/stdio.3:234
15489 msgid "sys_nerr\tsystem error messages\n"
15490 msgstr "sys_nerr\tシステムエラーメッセージ\n"
15493 #: build/C/man3/stdio.3:235
15495 msgid "tempnam\ttemporary file routines\n"
15496 msgstr "tempnam\tテンポラリファイルの操作\n"
15499 #: build/C/man3/stdio.3:236
15501 msgid "tmpfile\ttemporary file routines\n"
15502 msgstr "tmpfile\tテンポラリファイルの操作\n"
15505 #: build/C/man3/stdio.3:237
15507 msgid "tmpnam\ttemporary file routines\n"
15508 msgstr "tmpnam\tテンポラリファイルの操作\n"
15511 #: build/C/man3/stdio.3:238
15513 msgid "ungetc\tun-get character from input stream\n"
15514 msgstr "ungetc\t入力ストリームへ 1 文字戻す。\n"
15517 #: build/C/man3/stdio.3:239
15519 msgid "vfprintf\tformatted output conversion\n"
15520 msgstr "vfprintf\t書式付き出力変換\n"
15523 #: build/C/man3/stdio.3:240
15525 msgid "vfscanf\tinput format conversion\n"
15526 msgstr "vfscanf\t書式付き入力変換\n"
15529 #: build/C/man3/stdio.3:241
15531 msgid "vprintf\tformatted output conversion\n"
15532 msgstr "vprintf\t書式付き出力変換\n"
15535 #: build/C/man3/stdio.3:242
15537 msgid "vscanf\tinput format conversion\n"
15538 msgstr "vscanf\t書式付き入力変換\n"
15541 #: build/C/man3/stdio.3:243
15543 msgid "vsprintf\tformatted output conversion\n"
15544 msgstr "vsprintf\t書式付き出力変換\n"
15547 #: build/C/man3/stdio.3:244
15549 msgid "vsscanf\tinput format conversion\n"
15550 msgstr "vsscanf\t書式付き入力変換\n"
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 に準拠している。"
15557 #. type: Plain text
15558 #: build/C/man3/stdio.3:257
15560 "B<close>(2), B<open>(2), B<read>(2), B<write>(2), B<stdout>(3), "
15561 "B<unlocked_stdio>(3)"
15563 "B<close>(2), B<open>(2), B<read>(2), B<write>(2), B<stdout>(3), "
15564 "B<unlocked_stdio>(3)"
15567 #: build/C/man3/stdio_ext.3:25
15572 #. type: Plain text
15573 #: build/C/man3/stdio_ext.3:30
15575 "__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, "
15576 "__fsetlocking, __fwritable, __fwriting, _flushlbf - interfaces to stdio FILE "
15579 "__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, "
15580 "__fsetlocking, __fwritable, __fwriting, _flushlbf - 標準入出力ファイル構造体"
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>>"
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<);>"
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<);>"
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<);>"
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<);>"
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<);>"
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<);>"
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<);>"
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<);>"
15628 #. type: Plain text
15629 #: build/C/man3/stdio_ext.3:52
15630 msgid "B<void _flushlbf(void);>"
15631 msgstr "B<void _flushlbf(void);>"
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<);>"
15638 #. type: Plain text
15639 #: build/C/man3/stdio_ext.3:59
15641 "Solaris introduced routines to allow portable access to the internals of the "
15642 "I<FILE> structure, and glibc also implemented these."
15644 "Solaris では、 I<FILE> 構造体の内部へポータブルなかたちで アクセスできる手段"
15645 "が導入されており、これらは glibc でも実装されている。"
15647 #. type: Plain text
15648 #: build/C/man3/stdio_ext.3:64
15650 "The B<__fbufsize>() function returns the size of the buffer currently used "
15651 "by the given stream."
15653 "B<__fbufsize>() 関数は、指定されたストリームが使用しているバッファサイズを返"
15656 #. type: Plain text
15657 #: build/C/man3/stdio_ext.3:71
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."
15663 "B<__fpending>() 関数は、出力バッファに入っているデータのバイト数を返す。 ワ"
15664 "イドキャラクタを扱うストリームの場合、ワイドキャラクタ単位で計算される。 バッ"
15665 "ファが読み出しモードの場合や読み出し専用で開かれている場合の この関数の振舞い"
15668 #. type: Plain text
15669 #: build/C/man3/stdio_ext.3:76
15671 "The B<__flbf>() function returns a nonzero value if the stream is line-"
15672 "buffered, and zero otherwise."
15674 "B<__flbf>() 関数は、ストリームがラインバッファの場合は 0 以外を、 それ以外の"
15677 #. type: Plain text
15678 #: build/C/man3/stdio_ext.3:81
15680 "The B<__freadable>() function returns a nonzero value if the stream allows "
15681 "reading, and zero otherwise."
15683 "B<__freadable>() 関数は、ストリームが読み出し可能な場合は 0 以外を、 それ以"
15686 #. type: Plain text
15687 #: build/C/man3/stdio_ext.3:86
15689 "The B<__fwritable>() function returns a nonzero value if the stream allows "
15690 "writing, and zero otherwise."
15692 "B<__fwritable>() 関数は、ストリームが書き込み可能な場合は 0 以外を、 それ以"
15695 #. type: Plain text
15696 #: build/C/man3/stdio_ext.3:92
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 "
15702 "B<__freading>() 関数は、ストリームが読み出し専用の場合、またはストリームに対"
15703 "する直前の操作が 読み出し操作であった場合は 0 以外を返し、それ以外の場合は 0 "
15706 #. type: Plain text
15707 #: build/C/man3/stdio_ext.3:98
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."
15713 "B<__fwriting>() 関数は、ストリームが書き込み専用(もしくは追加専用)の場合、 "
15714 "またはストリームに対する直前の操作が書き込み操作であった場合は 0 以外を返"
15715 "し、 それ以外の場合は 0 を返す。"
15717 #. type: Plain text
15718 #: build/C/man3/stdio_ext.3:106
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:"
15724 "B<__fsetlocking>() 関数は、ストリームのロック形式を選択するために使用でき"
15725 "る。 返り値は、現在のロック形式である。 I<type> 引き数は以下の 3 種類の値をと"
15729 #: build/C/man3/stdio_ext.3:106
15731 msgid "B<FSETLOCKING_INTERNAL>"
15732 msgstr "B<FSETLOCKING_INTERNAL>"
15734 #. type: Plain text
15735 #: build/C/man3/stdio_ext.3:111
15737 "Perform implicit locking around every operation on the given stream (except "
15738 "for the *_unlocked ones). This is the default."
15740 "指定されたストリームに対して操作が行われる度に、操作の前後で 明示的に指示しな"
15741 "くてもストリームのロック処理を行う (但し、*_unlocked 関数を使用した場合は例外"
15742 "である)。 これがデフォルトのロック形式である。"
15745 #: build/C/man3/stdio_ext.3:111
15747 msgid "B<FSETLOCKING_BYCALLER>"
15748 msgstr "B<FSETLOCKING_BYCALLER>"
15750 #. type: Plain text
15751 #: build/C/man3/stdio_ext.3:118
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>."
15757 "関数の呼び出し元でロックの面倒をみる。 (おそらく、複数のスレッドが存在する状"
15758 "況では B<flockfile>(3) を使うことになるだろう) ロック形式が "
15759 "B<FSETLOCKING_INTERNAL> にリセットされるまでは標準入出力関連の関数はロック処"
15763 #: build/C/man3/stdio_ext.3:118
15765 msgid "B<FSETLOCKING_QUERY>"
15766 msgstr "B<FSETLOCKING_QUERY>"
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 "ロック形式の変更を行わない。(現在の形式を返すだけである)"
15773 #. type: Plain text
15774 #: build/C/man3/stdio_ext.3:128
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 "
15780 "B<_flushlbf>() 関数は、すべてのラインバッファ (line-buffered) タイプのスト"
15781 "リームの 内容を出力(フラッシュ)する。 (当然ながら、端末への出力が強制的に行わ"
15782 "れることになるので、 キーボードからの入力を読みこむ前にこの関数を呼んだ方がい"
15785 #. type: Plain text
15786 #: build/C/man3/stdio_ext.3:132
15788 "The B<__fpurge>() function discards the contents of the stream's buffer."
15789 msgstr "B<__fpurge>() 関数は、ストリームのバッファの内容を廃棄する。"
15791 #. type: Plain text
15792 #: build/C/man3/stdio_ext.3:141
15794 "The B<__fbufsize>(), B<__fpending>(), B<__fpurge>() and B<__fsetlocking>() "
15795 "functions do not lock the stream, so they are not thread-safe."
15797 "関数 B<__fbufsize>(), B<__fpending>(), B<__fpurge>(), B<__fsetlocking>() "
15798 "は、 ストリームのロックを行わない。 そのため、スレッドセーフではない。"
15800 #. type: Plain text
15801 #: build/C/man3/stdio_ext.3:151
15803 "The B<__flbf>(), B<__freadable>(), B<__freading>(), B<__fwritable>(), "
15804 "B<__fwriting>() and B<_flushlbf>() functions are thread-safe."
15806 "関数 B<__flbf>(), B<__freadable>(), B<__freading>(), B<__fwritable>(), "
15807 "B<__fwriting>(), B<_flushlbf>() はスレッドセーフである。"
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)"
15815 #: build/C/man2/symlink.2:33 build/C/man7/symlink.7:37
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 - ファイルに新しい名前を付ける"
15825 #. type: Plain text
15826 #: build/C/man2/symlink.2:41
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"
15831 #. type: Plain text
15832 #: build/C/man2/symlink.2:47
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"
15837 #. type: Plain text
15838 #: build/C/man2/symlink.2:56
15839 msgid "B<symlink>():"
15840 msgstr "B<symlink>():"
15842 #. type: Plain text
15843 #: build/C/man2/symlink.2:62
15844 msgid "B<symlinkat>():"
15845 msgstr "B<symlinkat>():"
15847 #. type: Plain text
15848 #: build/C/man2/symlink.2:80
15850 "B<symlink>() creates a symbolic link named I<linkpath> which contains the "
15851 "string I<target>."
15853 "B<symlink>() は I<target> という文字列をファイルの内容として持つ "
15854 "I<linkpath> というシンボリックリンク (symbolic link) を作成する。"
15856 #. type: Plain text
15857 #: build/C/man2/symlink.2:84
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 "
15863 "シンボリックリンクは実行時に解釈され、 リンクの内容でパスを置き換えて、そのパ"
15864 "スを辿ることで、 ファイルやディレクトリに到達する。"
15866 #. type: Plain text
15867 #: build/C/man2/symlink.2:89
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 "
15873 "シンボリックリンクはパスの部分に I<..> を含むかもしれない。これは (もしリンク"
15874 "の最初に使用された場合は) リンクの 存在するディレクトリの親ディレクトリが参照"
15877 #. type: Plain text
15878 #: build/C/man2/symlink.2:93
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."
15883 "シンボリックリンクは (ソフトリンク (soft link) とも呼ばれ) 存在するファイル"
15884 "を指しているかもしれないし、 存在しないファイルを指しているかもしれない; 後者"
15885 "の場合は壊れたリンク (dangling link) とも呼ばれる。"
15887 #. type: Plain text
15888 #: build/C/man2/symlink.2:100
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."
15895 "シンボリックリンクの許可 (permission) は無意味である; リンクを追跡する場合に"
15896 "は所有権 (ownership) は無視される。 ただし、リンクの削除や名前の変更が要求さ"
15897 "れ、かつリンクが存在する ディレクトリにスティッキービット (sticky bit) "
15898 "(B<S_ISVTX>) が設定されている場合には、所有権のチェックが行われる。"
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<されない>。"
15906 #: build/C/man2/symlink.2:106
15908 msgid "symlinkat()"
15909 msgstr "symlinkat()"
15911 #. type: Plain text
15912 #: build/C/man2/symlink.2:112
15914 "The B<symlinkat>() system call operates in exactly the same way as "
15915 "B<symlink>(), except for the differences described here."
15917 "B<symlinkat>() システムコールは B<symlink>() と全く同様に動作するが、以下で説"
15920 #. type: Plain text
15921 #: build/C/man2/symlink.2:122
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)."
15928 "I<linkpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
15929 "リプター I<newdirfd> が参照するディレクトリに対する相対パスと解釈される "
15930 "(B<symlink>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
15931 "ワーキングディレクトリに対する相対パスではない)。"
15933 #. type: Plain text
15934 #: build/C/man2/symlink.2:134
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>())."
15940 "I<linkpath> で指定されたパス名が相対パスで、 I<newdirfd> が特別な値 "
15941 "B<AT_FDCWD> の場合、 (B<symlink>() と同様に) I<linkpath> は呼び出したプロセス"
15942 "のカレントワーキングディレクトリに対する相対パスと解釈される。"
15944 #. type: Plain text
15945 #: build/C/man2/symlink.2:140
15946 msgid "If I<linkpath> is absolute, then I<newdirfd> is ignored."
15948 "I<linkpath> で指定されたパス名が絶対パスの場合、 I<newdirfd> は無視される。"
15950 #. type: Plain text
15951 #: build/C/man2/symlink.2:155
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).)"
15957 "I<linkpath> を含んでいるディレクトリへの書き込みが拒否されたか、 I<linkpath> "
15958 "に含まれているディレクトリのどれかに検索許可が与えられていない "
15959 "(B<path_resolution>(7) も参照すること)。"
15961 #. type: Plain text
15962 #: build/C/man2/symlink.2:160
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 "
15968 "そのファイルシステムのリソース使用量がユーザクォータに達している。対象となる"
15969 "リソースは inode かディスクブロックで、どちらになるかはファイルシステムの実装"
15972 #. type: Plain text
15973 #: build/C/man2/symlink.2:164
15974 msgid "I<linkpath> already exists."
15975 msgstr "I<linkpath> が既に存在する。"
15977 #. type: Plain text
15978 #: build/C/man2/symlink.2:167
15979 msgid "I<target> or I<linkpath> points outside your accessible address space."
15981 "I<target> や I<linkpath> がアクセス可能なアドレス空間の外を指している。"
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> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
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> が長過ぎる。"
15993 #. type: Plain text
15994 #: build/C/man2/symlink.2:184
15996 "A directory component in I<linkpath> does not exist or is a dangling "
15997 "symbolic link, or I<target> is the empty string."
15999 "I<linkpath> に含まれるディレクトリ部分が存在しないか、壊れたリンクであるか、 "
16000 "I<target> が空文字列である。"
16002 #. type: Plain text
16003 #: build/C/man2/symlink.2:196
16005 "A component used as a directory in I<linkpath> is not, in fact, a directory."
16007 "I<linkpath> に含まれるディレクトリ部分が、実際には、ディレクトリではない。"
16009 #. type: Plain text
16010 #: build/C/man2/symlink.2:201
16012 "The filesystem containing I<linkpath> does not support the creation of "
16015 "I<linkpath> を含んでいるファイルシステム (file system) が シンボリックリンク"
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> が読み込み専用のファイルシステムに存在している。"
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>() では以下のエラーも発生する。"
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> が有効なファイルディスクリプタでない。"
16033 #. type: Plain text
16034 #: build/C/man2/symlink.2:218
16036 "I<linkpath> is a relative pathname and I<newdirfd> refers to a directory "
16037 "that has been deleted."
16039 "I<linkpath> が相対パス名で、 I<newdirfd> が削除されたディレクトリを参照してい"
16042 #. type: Plain text
16043 #: build/C/man2/symlink.2:224
16045 "I<linkpath> is relative and I<newdirfd> is a file descriptor referring to a "
16046 "file other than a directory."
16048 "I<linkpath> が相対パスで、 I<newdirfd> がディレクトリ以外のファイルを参照して"
16049 "いるファイルディスクリプタである。"
16051 #. type: Plain text
16052 #: build/C/man2/symlink.2:228
16054 "B<symlinkat>() was added to Linux in kernel 2.6.16; library support was "
16055 "added to glibc in version 2.4."
16057 "B<symlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
16058 "ポートはバージョン 2.4 で glibc に追加された。"
16060 #. SVr4 documents additional error codes EDQUOT and ENOSYS.
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."
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."
16074 #. type: Plain text
16075 #: build/C/man2/symlink.2:242
16076 msgid "No checking of I<target> is done."
16077 msgstr "I<target> についてのチェックは行なわれない。"
16079 #. type: Plain text
16080 #: build/C/man2/symlink.2:247
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)."
16086 "シンボリックリンクによって参照される名前を削除すると (それが他にハードリンク "
16087 "(hard link) を持たなければ) 実際にファイルが削除される。 この動作が望んだもの"
16088 "でない場合は、 B<link>(2) を使用すること。"
16090 #. type: Plain text
16091 #: build/C/man2/symlink.2:260
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."
16098 "B<symlinkat>() が利用できない古いカーネルでは、 glibc ラッパー関数は "
16099 "B<symlink>(2) を使用するモードにフォールバックする。 I<pathname> が相対パスの"
16100 "場合、 glibc は I<newdirfd> 引き数に対応する I</proc/self/fd> のシンボリック"
16101 "リンクに基づいてパス名を構成する。"
16103 #. type: Plain text
16104 #: build/C/man2/symlink.2:271
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)"
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)"
16112 #. type: Plain text
16113 #: build/C/man7/symlink.7:40
16114 msgid "symlink - symbolic link handling"
16115 msgstr "symlink - シンボリックリンクの取り扱い"
16117 #. type: Plain text
16118 #: build/C/man7/symlink.7:44
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."
16123 "シンボリックリンクは他のファイルへのポインタとして振る舞うファイルである。 そ"
16124 "の挙動を理解するには、まずハードリンクがどのように機能するかを理解しておかな"
16127 #. type: Plain text
16128 #: build/C/man7/symlink.7:60
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)."
16141 "あるファイルへのハードリンクは、 元々のファイルと区別することができない。 な"
16142 "ぜなら、 ハードリンクは元々のファイル名の裏にあるオブジェクトへの参照だからで"
16143 "ある。 (より正確には、 あるファイルへのハードリンクはそれぞれ同じ I<inode 番"
16144 "号> への参照である。 inode 番号は inode テーブルへのインデックスで、 inode "
16145 "テーブルはファイルシステム上のすべてのファイルについてのメタデータを保持して"
16146 "いる。 B<stat>(2) 参照。) ファイルへの変更は、ファイルの参照に使用された名前"
16147 "とは独立に行われる。 ハードリンクはディレクトリを参照することはできない (これ"
16148 "はファイルシステムツリー内でループが発生する可能性を防止するためであり、 ルー"
16149 "プが発生すると、 多くのプログラムが混乱してしまうことだろう)。 また、 ハード"
16150 "リンクは異なるファイルシステム上のファイルを参照することもできない (inode 番"
16151 "号はファイルシステムをまたがると一意ではないからである)。"
16153 #. type: Plain text
16154 #: build/C/man7/symlink.7:69
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."
16163 "シンボリックリンクは特別な種類のファイルで、 ファイルの内容はそのリンクの参照"
16164 "先の別のファイルのパス名を示す文字列である (シンボリックリンクの内容は "
16165 "B<readlink>(2) を使って読むことができる)。 言い換えると、 シンボリックリンク"
16166 "は別の名前へのポインタであり、 ファイルの裏にあるオブジェクトへのポインタでは"
16167 "ない。 この理由から、 シンボリックリンクではディレクトリへの参照やファイルシ"
16168 "ステム境界を越える参照を行うことができる。"
16170 #. type: Plain text
16171 #: build/C/man7/symlink.7:75
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>."
16177 "シンボリックリンクが参照する先のパス名が存在しないといけないという要件はな"
16178 "い。 存在しないパス名を参照するシンボリックリンクは「壊れた (dangling) リン"
16181 #. type: Plain text
16182 #: build/C/man7/symlink.7:87
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."
16193 "シンボリックリンクとその参照先のオブジェクトは一つのファイルシステムの名前空"
16194 "間内に共存するので、 リンクそのものと参照先のオブジェクトの間で混乱が生じる可"
16195 "能性がある。 かなり昔からあるシステムでは、 コマンドやシステムコールはいくら"
16196 "かアドホックな方法の独自のリンクの辿り方の決まり事を採用している。 ここで"
16197 "は、 Linux や他のシステムで実装されている、 もっと広く使われている方法のルー"
16198 "ルについて概要を説明する。 サイト固有のアプリケーションもこれらのルールに準拠"
16199 "し、 可能な限りユーザインターフェースが一貫したものになるようにすることが重要"
16203 #: build/C/man7/symlink.7:87
16205 msgid "Symbolic link ownership, permissions, and timestamps"
16206 msgstr "シンボリックリンクの所有権、アクセス許可、タイムスタンプ"
16208 #. type: Plain text
16209 #: build/C/man7/symlink.7:95
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))."
16216 "既存のシンボリックリンクの所有者とグループは B<lchown>(2) を使って変更するこ"
16217 "とができる。 シンボリックリンクの所有権が問題となる場面は、 スティッキービッ"
16218 "ト (B<stat>(2) 参照) がセットされたディレクトリで、 そのリンクの削除や名前の"
16219 "変更を行おうとしている場合だけである。"
16221 #. type: Plain text
16222 #: build/C/man7/symlink.7:101
16224 "The last access and last modification timestamps of a symbolic link can be "
16225 "changed using B<utimensat>(2) or B<lutimes>(3)."
16227 "シンボリックリンクの最終アクセス時刻と最終修正時刻は B<utimensat>(2) や "
16228 "B<lutimes>(3) で変更できる。"
16230 #. Linux does not currently implement an lchmod(2).
16233 #. system differs from historical
16235 #. systems in that the system call
16237 #. has been changed to follow symbolic links.
16240 #. system call was added later when the limitations of the new
16242 #. became apparent.
16243 #. type: Plain text
16244 #: build/C/man7/symlink.7:120
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."
16250 "Linux では、シンボリックリンクのアクセス許可 (permission) はどの操作でも使用"
16251 "されない。 アクセス許可は常に 0777 (すべてのユーザカテゴリにおいて読み出し、"
16252 "書き込み、実行が可能) で、変更できない。"
16255 #: build/C/man7/symlink.7:120
16257 msgid "Obtaining a file descriptor that refers to a symbolic link"
16258 msgstr "シンボリックリンクを参照するファイルディスクリプタを取得する"
16260 #. type: Plain text
16261 #: build/C/man7/symlink.7:138
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)."
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 "ルではなく) シンボリックリンク自身に対する操作を行うことができる。"
16275 #. type: Plain text
16276 #: build/C/man7/symlink.7:154
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> フラグを指定することで、 (シンボリックリンクが参照するファイルではなく) シンボリックリンクに対するファイルディスクリプターを得ることができる。 繰り返しになるが、 このファイルディスクリプターを上述のシステムコールで使用し、 シンボリックリンク自身に操作を行うことができる。"
16288 #: build/C/man7/symlink.7:154
16290 msgid "Handling of symbolic links by system calls and commands"
16291 msgstr "システムコールやコマンドによるシンボリックリンクの取り扱い"
16293 #. type: Plain text
16294 #: build/C/man7/symlink.7:169
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)>と呼ばれる。 シンボリックリンクは他のシンボリックリンクを参照することもできる。 この場合、 シンボリックリンクでないオブジェクトが見つかるか、 存在しないファイルを参照するシンボリックリンクが見つかるか、 ループが検出されるまで、 リンクの展開が行われる。 (ループの検出は辿ることができるリンクの数に上限を設けることで行われる。 この上限を超過した場合はエラーとなる。)"
16306 #. type: Plain text
16307 #: build/C/man7/symlink.7:172
16309 "There are three separate areas that need to be discussed. They are as "
16311 msgstr "3 つの領域に分けて議論する必要がある。以下の 3 つである。"
16314 #: build/C/man7/symlink.7:172
16319 #. type: Plain text
16320 #: build/C/man7/symlink.7:174
16321 msgid "Symbolic links used as filename arguments for system calls."
16323 "システムコールのファイル名引き数としてシンボリックリンクが使用される場合。"
16326 #: build/C/man7/symlink.7:174
16331 #. type: Plain text
16332 #: build/C/man7/symlink.7:177
16334 "Symbolic links specified as command-line arguments to utilities that are not "
16335 "traversing a file tree."
16337 "ファイルツリーを辿っていないユーティリティのコマンドライン引き数としてシンボ"
16341 #: build/C/man7/symlink.7:177
16346 #. type: Plain text
16347 #: build/C/man7/symlink.7:181
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 "
16353 "ファイルツリーを辿っているユーティリティがシンボリックリンクを見つけた場合 "
16354 "(コマンドラインで指定される場合もあれば、 ファイル階層を辿っている途中で遭遇"
16358 #: build/C/man7/symlink.7:181
16360 msgid "System calls"
16363 #. type: Plain text
16364 #: build/C/man7/symlink.7:184
16366 "The first area is symbolic links used as filename arguments for system calls."
16368 "最初の領域は、システムコールのファイル名引き数としてシンボリックリンクが使用"
16371 #. type: Plain text
16372 #: build/C/man7/symlink.7:194
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>."
16379 "以下に述べる場合を除くと、 すべてのシステムコールはシンボリックリンクを辿"
16380 "る。 例えば、 I<afile> という名前のファイルを指しているシンボリックリンク "
16381 "I<slink> があったとすると、 システムコール I<open(\"slink\" ...\\&)> はファイ"
16382 "ル I<afile> を参照するファイルディスクリプタを返す。"
16384 #. type: Plain text
16385 #: build/C/man7/symlink.7:209
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)."
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) がある。"
16397 #. Maybe one day: .BR fchownat (2)
16398 #. type: Plain text
16399 #: build/C/man7/symlink.7:233
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>."
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> で失敗す"
16418 #. type: Plain text
16419 #: build/C/man7/symlink.7:248
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."
16428 "B<link>(2) については特別に議論が必要である。 POSIX.1-2001 では B<link>(2) "
16429 "は I<oldpath> がシンボリックリンクであればこれを展開するように規定している。 "
16430 "しかしながら、 Linux はシンボリックリンクを展開しない。 (デフォルトでは "
16431 "Solaris も同じだが、 適切なコンパイラーオプションを指定することで "
16432 "POSIX.1-2001 で規定された動作をさせることができる。) 今後のバージョンの "
16433 "POSIX.1 では、どちらの動作の実装も認められるように規定が変更される。"
16436 #: build/C/man7/symlink.7:248
16438 msgid "Commands not traversing a file tree"
16439 msgstr "ファイルツリーを辿らないコマンド"
16441 #. type: Plain text
16442 #: build/C/man7/symlink.7:251
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 "二つ目の領域は、 ファイルツリーを辿らないコマンドの、 コマンドライン引き数のファイル名としてシンボリックリンクが指定される場合である。"
16448 #. type: Plain text
16449 #: build/C/man7/symlink.7:262
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>."
16456 "以下に述べる場合を除くと、 コマンドはコマンドライン引き数で指定された名前のシ"
16457 "ンボリックリンクを辿る。 例えば、 I<afile> という名前のファイルを指しているシ"
16458 "ンボリックリンク I<slink> があったとすると、 コマンド I<cat slink> は "
16459 "I<afile> の内容を表示することになる。"
16461 #. type: Plain text
16462 #: build/C/man7/symlink.7:270
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, "
16471 #. type: Plain text
16472 #: build/C/man7/symlink.7:288
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 "
16483 #. type: Plain text
16484 #: build/C/man7/symlink.7:290
16485 msgid "There are some exceptions to this rule:"
16486 msgstr "このルールにはいくつかの例外がある。"
16488 #. type: Plain text
16489 #: build/C/man7/symlink.7:300
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.)"
16497 "コマンド B<mv>(1) と B<rm>(1) は引き数で指定された名前のシンボリックリンクを"
16498 "辿らないが、 それぞれシンボリックリンク自身の名前変更と削除を行おうとする。 "
16499 "(シンボリックリンクが相対パスでファイルを参照している場合、 そのシンボリック"
16500 "リンクを別のディレクトリに移動すると、動かなくなることが非常によくある。 移動"
16501 "の結果、 パスが正しくないものになってしまうからである。)"
16503 #. type: Plain text
16504 #: build/C/man7/symlink.7:330
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.)"
16515 #. The 4.4BSD system differs from historical 4BSD systems in that the
16519 #. commands follow symbolic links specified on the command line.
16520 #. type: Plain text
16521 #: build/C/man7/symlink.7:348
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."
16530 #: build/C/man7/symlink.7:348
16532 msgid "Commands traversing a file tree"
16533 msgstr "ファイルツリーを辿るコマンド"
16535 #. type: Plain text
16536 #: build/C/man7/symlink.7:361
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)."
16543 #. type: Plain text
16544 #: build/C/man7/symlink.7:365
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."
16551 #. type: Plain text
16552 #: build/C/man7/symlink.7:370
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."
16559 #. type: Plain text
16560 #: build/C/man7/symlink.7:382
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>."
16568 #. type: Plain text
16569 #: build/C/man7/symlink.7:387
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)."
16577 #. type: Plain text
16578 #: build/C/man7/symlink.7:390
16580 "Certain conventions are (should be) followed as consistently as possible by "
16581 "commands that perform file tree walks:"
16584 #. type: Plain text
16585 #: build/C/man7/symlink.7:403
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.)"
16595 #. type: Plain text
16596 #: build/C/man7/symlink.7:419
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 "
16607 #. type: Plain text
16608 #: build/C/man7/symlink.7:433
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 "
16619 #. type: Plain text
16620 #: build/C/man7/symlink.7:448
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 "
16630 #. type: Plain text
16631 #: build/C/man7/symlink.7:455
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."
16638 #. type: Plain text
16639 #: build/C/man7/symlink.7:473
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."
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:"
16653 "コマンド B<ls>(1) と B<rm>(1) には、 これらのルールに対する例外がある。"
16655 #. type: Plain text
16656 #: build/C/man7/symlink.7:492
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."
16662 "B<rm>(1) コマンドは、 参照先のファイルではなく、シンボリックリンクに対して操"
16663 "作を行う。 したがって、 シンボリックリンクを辿ることはない。 B<rm>(1) コマン"
16664 "ドはオプション I<-H>, I<-L>, I<-P> をサポートしていない。"
16666 #. type: Plain text
16667 #: build/C/man7/symlink.7:512
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."
16677 #. type: Plain text
16678 #: build/C/man7/symlink.7:530
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)"
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)"
16691 #: build/C/man3/tempnam.3:25
16697 #: build/C/man3/tempnam.3:25 build/C/man3/tmpnam.3:27
16700 msgstr "2014-02-27"
16702 #. type: Plain text
16703 #: build/C/man3/tempnam.3:28
16704 msgid "tempnam - create a name for a temporary file"
16705 msgstr "tempnam - テンポラリファイルの名前を作成する"
16707 #. type: Plain text
16708 #: build/C/man3/tempnam.3:33
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"
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"
16718 #. type: Plain text
16719 #: build/C/man3/tempnam.3:49
16721 "I<Never use this function.> Use B<mkstemp>(3) or B<tmpfile>(3) instead."
16723 "I<決してこの関数を使用しないこと。> 代わりに B<mkstemp>(3) か B<tmpfile>(3) "
16726 #. type: Plain text
16727 #: build/C/man3/tempnam.3:63
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)."
16736 "B<tempnam>() 関数はファイル名として正しい文字列へのポインタを返す。 このファ"
16737 "イル名を持つファイルは、 B<tempnam>() がチェックした時点においては存在しな"
16738 "い (しなかった)。 I<pfx> が NULL でない 5 バイト以内の文字列であれば、 生成さ"
16739 "れるパス名のうちのファイル名の部分は I<pfx> から始まるものになる。 生成される"
16740 "ディレクトリの部分は、「適切」でなければならない (大抵の場合、「適切」である"
16741 "ためにはまず少なくとも 書き込み可能でなければならない)。"
16743 #. type: Plain text
16744 #: build/C/man3/tempnam.3:66
16746 "Attempts to find an appropriate directory go through the following steps:"
16747 msgstr "適切なディレクトリの探索は、以下の手順にしたがって行われる。"
16750 #: build/C/man3/tempnam.3:66
16755 #. type: Plain text
16756 #: build/C/man3/tempnam.3:72
16758 "In case the environment variable B<TMPDIR> exists and contains the name of "
16759 "an appropriate directory, that is used."
16761 "環境変数 B<TMPDIR> が設定されていて、 その内容が適切なディレクトリの名前な"
16765 #: build/C/man3/tempnam.3:72
16770 #. type: Plain text
16771 #: build/C/man3/tempnam.3:77
16773 "Otherwise, if the I<dir> argument is non-NULL and appropriate, it is used."
16775 "それ以外の場合、 I<dir> 引き数が NULL でない文字列でかつ適切なら、それを用い"
16779 #: build/C/man3/tempnam.3:77
16784 #. type: Plain text
16785 #: build/C/man3/tempnam.3:84
16787 "Otherwise, I<P_tmpdir> (as defined in I<E<lt>stdio.hE<gt>>) is used when "
16790 "それ以外の場合、 (I<E<lt>stdio.hE<gt>> で定義されている) I<P_tmpdir> が適切"
16794 #: build/C/man3/tempnam.3:84
16799 #. type: Plain text
16800 #: build/C/man3/tempnam.3:87
16801 msgid "Finally an implementation-defined directory may be used."
16802 msgstr "最後に実装で定義されたディレクトリが用いられることになる。"
16804 #. type: Plain text
16805 #: build/C/man3/tempnam.3:94
16807 "The string returned by B<tempnam>() is allocated using B<malloc>(3) and "
16808 "hence should be freed by B<free>(3)."
16810 "B<tempnam>() が返す文字列は B<malloc>(3) を使って確保される。そのため、 "
16811 "B<free>(3) で解放すべきである。"
16813 #. type: Plain text
16814 #: build/C/man3/tempnam.3:101
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."
16820 "成功すると B<tempnam>() 関数は、一意なテンポラリファイル名へのポインタを返"
16821 "す。 一意な名前が生成できなければ NULL を返し、 I<errno> にエラーの原因を示す"
16824 #. type: Plain text
16825 #: build/C/man3/tempnam.3:105
16826 msgid "Allocation of storage failed."
16827 msgstr "保存領域の割り当てに失敗した。"
16829 #. type: Plain text
16830 #: build/C/man3/tempnam.3:110
16832 "SVr4, 4.3BSD, POSIX.1-2001. POSIX.1-2008 marks B<tempnam>() as obsolete."
16834 "SVr4, 4.3BSD, POSIX.1-2001. POSIX.1-2008 は B<tempnam>() を廃止予定としてい"
16837 #. type: Plain text
16838 #: build/C/man3/tempnam.3:129
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)."
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) を使うことである。"
16856 #. type: Plain text
16857 #: build/C/man3/tempnam.3:137
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)."
16863 "SUSv2 では B<TMPDIR> に付いて言及されていない。 glibc は、プログラムが set-"
16864 "user-ID されていない場合に限ってこれを用いる。 SVr4 では B<d)> で使用される"
16865 "ディレクトリを I</tmp> と定めている (glibc もこの通りである)。"
16867 #. type: Plain text
16868 #: build/C/man3/tempnam.3:142
16870 "Because it dynamically allocates memory used to return the pathname, "
16871 "B<tempnam>() is reentrant, and thus thread safe, unlike B<tmpnam>(3)."
16873 "パス名を返すのに使用するメモリを動的に確保するので、 B<tmpnam>(3) と違い、 "
16874 "B<tempnam>() はリエントラントであり、スレッドセーフである。"
16876 #. type: Plain text
16877 #: build/C/man3/tempnam.3:155
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."
16883 "B<tempnam>() 関数は最大 B<TMP_MAX> 回まで、呼び出される度に異なる文字列を作"
16884 "成する (B<TMP_MAX> は I<E<lt>stdio.hE<gt>> で定義されている)。 もし "
16885 "B<TMP_MAX> 回以上呼び出された場合、動作は実装依存である。"
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 バイトを使用する。"
16892 #. type: Plain text
16893 #: build/C/man3/tempnam.3:165
16895 "The glibc implementation of B<tempnam>() will fail with the error B<EEXIST> "
16896 "upon failure to find a unique name."
16898 "他と重ならない名前が見つけられなかった場合、glibc の B<tempnam>() の実装はエ"
16899 "ラー B<EEXIST> で失敗する。"
16901 #. type: Plain text
16902 #: build/C/man3/tempnam.3:168
16904 "The precise meaning of \"appropriate\" is undefined; it is unspecified how "
16905 "accessibility of a directory is determined."
16907 "「適切」という言葉の正確な意味は定義されていない。 ディレクトリに対してどの程"
16908 "度のアクセス権限が必要なのかは指定されていない。"
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)"
16916 #: build/C/man3/tmpfile.3:31
16921 #. type: Plain text
16922 #: build/C/man3/tmpfile.3:34
16923 msgid "tmpfile - create a temporary file"
16924 msgstr "tmpfile - テンポラリファイルを作成する"
16926 #. type: Plain text
16927 #: build/C/man3/tmpfile.3:39
16929 msgid "B<FILE *tmpfile(void);>\n"
16930 msgstr "B<FILE *tmpfile(void);>\n"
16932 #. type: Plain text
16933 #: build/C/man3/tmpfile.3:47
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."
16939 "B<tmpfile>() 関数はユニークなテンポラリファイルを バイナリリードライトモー"
16940 "ド (w+b) でオープンする。 このファイルはクローズ時またはプログラムの終了時に"
16943 #. type: Plain text
16944 #: build/C/man3/tmpfile.3:56
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."
16950 "B<tmpfile>() 関数はファイルポインタを返すか、 ユニークなファイルが作れなかっ"
16951 "たかオープンできなかった場合は NULL を返す。 後者の場合、エラーを表す "
16954 #. type: Plain text
16955 #: build/C/man3/tmpfile.3:60
16956 msgid "Search permission denied for directory in file's path prefix."
16958 "ファイルのあるディレクトリにサーチのアクセス権 (search permission) がない。"
16960 #. type: Plain text
16961 #: build/C/man3/tmpfile.3:63
16962 msgid "Unable to generate a unique filename."
16963 msgstr "ユニークなファイル名が作成できなかった。"
16965 #. type: Plain text
16966 #: build/C/man3/tmpfile.3:66
16967 msgid "The call was interrupted by a signal."
16968 msgstr "呼び出しがシグナルによって中断された。"
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 つのプロセスで使用可能なファイルディスクリプタ数を超過した。"
16975 #. type: Plain text
16976 #: build/C/man3/tmpfile.3:72
16977 msgid "Too many files open in the system."
16978 msgstr "システム全体でオープン可能なファイル数を超過した。"
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 "ディレクトリに新しいファイルを追加するための空き領域がない。"
16985 #. type: Plain text
16986 #: build/C/man3/tmpfile.3:78
16987 msgid "Read-only filesystem."
16988 msgstr "読みだし専用ファイルシステムである。"
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."
16995 #. type: Plain text
16996 #: build/C/man3/tmpfile.3:86
16998 "POSIX.1-2001 specifies: an error message may be written to I<stdout> if the "
16999 "stream cannot be opened."
17001 "POSIX.1-2001 では、 ストリームをオープンできなかった場合、 I<stdout> にエラー"
17002 "メッセージが書き出される、と規定されている。"
17004 #. type: Plain text
17005 #: build/C/man3/tmpfile.3:97
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>."
17011 "規格では B<tmpfile>() が使うディレクトリは指定されていない。 glibc では "
17012 "I<E<lt>stdio.hE<gt>> で定義されている I<P_tmpdir> をパスの先頭に使おうとす"
17013 "る。 これが失敗した場合は、ディレクトリ I</tmp> を使う。"
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)"
17021 #: build/C/man3/tmpnam.3:27
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 - 一時ファイルの名前を作成する"
17031 #. type: Plain text
17032 #: build/C/man3/tmpnam.3:35
17034 msgid "B<char *tmpnam(char *>I<s>B<);>\n"
17035 msgstr "B<char *tmpnam(char *>I<s>B<);>\n"
17037 #. type: Plain text
17038 #: build/C/man3/tmpnam.3:45
17040 "B<Note:> Avoid use of B<tmpnam>(); use B<mkstemp>(3) or B<tmpfile>(3) "
17043 "B<注意:> B<tmpnam>() の使用は避けること。代わりに B<mkstemp>(3) か "
17044 "B<tmpfile>(3) を使うこと。"
17046 #. type: Plain text
17047 #: build/C/man3/tmpnam.3:67
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 "
17058 "B<tmpnam>() 関数は、ファイル名に使える文字列へのポインタを返す。 ある時点で"
17059 "は同じ名前を持つファイルが存在しないファイル名が返されるので、 幼稚なプログラ"
17060 "マはこの文字列が一時ファイルのファイル名として 適していると考えるかもしれな"
17061 "い。 引き数 I<s> が NULL なら、この名前は内部の静的バッファに作成され、 次に "
17062 "B<tmpnam>() 関数が呼び出された時に上書きされる。 I<s> が NULL でなければ、"
17063 "ファイル名は I<s> が指す (少なくとも I<L_tmpnam> の長さを持つ) 文字配列にコ"
17064 "ピーされ、 成功した場合は I<s> が返される。"
17066 #. type: Plain text
17067 #: build/C/man3/tmpnam.3:79
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.)"
17073 "作成されるパス名は、ディレクトリの部分に I<P_tmpdir> が使われる。 "
17074 "(I<L_tmpnam> と I<P_tmpdir> は、以下で説明する B<TMP_MAX> 同様 I<E<lt>stdio."
17075 "hE<gt>> で定義されている。)"
17077 #. type: Plain text
17078 #: build/C/man3/tmpnam.3:84
17080 "The B<tmpnam>() function returns a pointer to a unique temporary filename, "
17081 "or NULL if a unique name cannot be generated."
17083 "B<tmpnam>() 関数は一意な一時ファイル名へのポインタを返す。 一意なファイル名"
17084 "が作成できなかった場合は NULL を返す。"
17086 #. type: Plain text
17087 #: build/C/man3/tmpnam.3:86
17088 msgid "No errors are defined."
17089 msgstr "エラーは定義されていない。"
17091 #. type: Plain text
17092 #: build/C/man3/tmpnam.3:92
17094 "The B<tmpnam>() function is thread-safe with exceptions. It is not thread-"
17095 "safe if called with a NULL parameter."
17097 "B<tmpnam>() 関数は例外付きでスレッドセーフである。 NULL パラメータで呼び出さ"
17098 "れた場合はスレッドセーフではない。"
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>() 関数はスレッドセーフである。"
17105 #. type: Plain text
17106 #: build/C/man3/tmpnam.3:101
17108 "SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008 marks B<tmpnam>() as "
17111 "SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008 は B<tmpnam>() を廃止予"
17114 #. type: Plain text
17115 #: build/C/man3/tmpnam.3:112
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."
17121 "B<tmpnam>() 関数は最大 B<TMP_MAX> 回まで、呼び出される度に異なる文字列を作成"
17122 "する。 B<TMP_MAX> 回以上呼び出された場合、その動作は実装依存である。"
17124 #. type: Plain text
17125 #: build/C/man3/tmpnam.3:131
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)."
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) を使うことである。"
17143 #. type: Plain text
17144 #: build/C/man3/tmpnam.3:139
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 "
17150 "移植性が必要な、スレッドを使ったアプリケーションでは、 B<_POSIX_THREADS> か "
17151 "B<_POSIX_THREAD_SAFE_FUNCTIONS> が定義されている場合に、 B<tmpnam>() 関数を "
17152 "NULL 引き数で呼び出してはならない。"
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"
17158 "POSIX 草案では、関数 B<tmpnam_r>() を使うことを提案している。 この関数は、以"
17159 "下のように定義されており、 NULL を使わないようにという警告の意味で NULL を別"
17162 #. type: Plain text
17163 #: build/C/man3/tmpnam.3:151
17167 "tmpnam_r(char *s)\n"
17169 " return s ? tmpnam(s) : NULL;\n"
17173 "tmpnam_r(char *s)\n"
17175 " return s ? tmpnam(s) : NULL;\n"
17178 #. type: Plain text
17179 #: build/C/man3/tmpnam.3:165
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)."
17185 "数は少ないが、この関数を実装しているシステムもある。 この関数の glibc のプロ"
17186 "トタイプを I<E<lt>stdio.hE<gt>> から得るには、 (「どの」ヘッダファイルをイン"
17187 "クルードするよりも前に) B<_SVID_SOURCE> か B<_BSD_SOURCE> を定義しておく必要"
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."
17194 "決してこの関数を使ってはならない。代わりに B<mkstemp>(3) か B<tmpfile>(3) "
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)"
17203 #: build/C/man2/unlink.2:33
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"
17212 "unlink, unlinkat - 名前を削除し、場合によってはそれが参照しているファイルも削"
17215 #. type: Plain text
17216 #: build/C/man2/unlink.2:41
17218 msgid "B<int unlink(const char *>I<pathname>B<);>\n"
17219 msgstr "B<int unlink(const char *>I<pathname>B<);>\n"
17221 #. type: Plain text
17222 #: build/C/man2/unlink.2:46
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"
17227 #. type: Plain text
17228 #: build/C/man2/unlink.2:54
17229 msgid "B<unlinkat>():"
17230 msgstr "B<unlinkat>():"
17232 #. type: Plain text
17233 #: build/C/man2/unlink.2:72
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."
17239 "B<unlink>() はファイルシステム上の名前を削除する。 もしその名前がファイルへ"
17240 "の最後のリンク (link) であり、 どのプロセスもそのファイルをオープン (open) し"
17241 "ていなければ、 ファイルは削除される。 ファイルが使用していたディスク上の領域"
17244 #. type: Plain text
17245 #: build/C/man2/unlink.2:76
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."
17251 "名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開"
17252 "いているなら、ファイルの最後のファイル記述子 (file descriptor) が閉じられるま"
17255 #. type: Plain text
17256 #: build/C/man2/unlink.2:82
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."
17261 "名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、 その"
17262 "ソケットなどを開いているプロセスはそのまま使い続けることができる。"
17265 #: build/C/man2/unlink.2:82
17268 msgstr "unlinkat()"
17270 #. type: Plain text
17271 #: build/C/man2/unlink.2:95
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."
17277 "B<unlinkat>() システムコールは、B<unlink>() と B<rmdir>(2) のいずれかと全く同"
17278 "じ動作をする (どちらと同じになるかは I<flags> に B<AT_REMOVEDIR> フラグが指定"
17279 "されたかにより決まる) が、以下で説明する点が異なる。"
17281 #. type: Plain text
17282 #: build/C/man2/unlink.2:107
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 "
17290 "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
17291 "リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
17292 "(B<unlink>() や B<rmdir>(2) に相対パス名を渡した場合のように、呼び出したプロ"
17293 "セスのカレントワーキングディレクトリに対する相対パスではない)。"
17295 #. type: Plain text
17296 #: build/C/man2/unlink.2:121
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))."
17302 "I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
17303 "の場合、 (B<unlink>() や B<rmdir>(2) と同様に) I<pathname> は呼び出したプロセ"
17304 "スのカレントワーキングディレクトリに対する相対パスと解釈される。"
17306 #. type: Plain text
17307 #: build/C/man2/unlink.2:127
17309 "If the pathname given in I<pathname> is absolute, then I<dirfd> is ignored."
17311 "I<pathname> で指定されたパス名が絶対パスの場合、 I<dirfd> は無視される。"
17313 #. type: Plain text
17314 #: build/C/man2/unlink.2:133
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:"
17320 "I<flags> はビットマスクで、0 もしくは B<unlinkat>() の動作を制御するフラグ値"
17321 "を論理和の形で指定することができる。現在のところ、定義されているフラグはひと"
17325 #: build/C/man2/unlink.2:133
17327 msgid "B<AT_REMOVEDIR>"
17328 msgstr "B<AT_REMOVEDIR>"
17330 #. type: Plain text
17331 #: build/C/man2/unlink.2:148
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>."
17337 "デフォルトでは、 B<unlinkat>() は I<pathname> に対して B<unlink>() と等価な動"
17338 "作をする。 B<AT_REMOVEDIR> フラグが指定された場合、 I<pathname> に対して "
17339 "B<rmdir>(2) と等価な動作をする。"
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) を参照。"
17346 #. type: Plain text
17347 #: build/C/man2/unlink.2:169
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).)"
17353 "I<pathname> を含んでいるディレクトリの書き込み許可がプロセスの実効 "
17354 "(effective) ユーザー ID に与えられていないか、 I<pathname> の中のディレクト"
17355 "リのどれかに検索許可が与えられていない (B<path_resolution>(7) も参照するこ"
17358 #. type: Plain text
17359 #: build/C/man2/unlink.2:178
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\")."
17366 "システムか別のプロセスがそのファイルを使用中のため、\n"
17367 "ファイル I<pathname> を unlink できない。\n"
17368 "例えば、そのファイルがマウントポイントの場合や、\n"
17369 "NFS クライアントソフトウェアがそのファイルがアクティブであるが\n"
17370 "名前なし inode (nameless inode) であることを示すために作成した\n"
17371 "場合 (\"NFS silly renamed\") などがある。"
17373 #. type: Plain text
17374 #: build/C/man2/unlink.2:190
17376 "I<pathname> refers to a directory. (This is the non-POSIX value returned by "
17377 "Linux since 2.1.132.)"
17379 "I<pathname> がディレクトリを参照している。 (これは POSIX で規定されていない値"
17380 "で、Linux 2.1.132 以降で返される。)"
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> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
17387 #. type: Plain text
17388 #: build/C/man2/unlink.2:204
17390 "A component in I<pathname> does not exist or is a dangling symbolic link, or "
17391 "I<pathname> is empty."
17393 "I<pathname> に対応するものが存在しないか、壊れたシンボリックリンクであるか、 "
17394 "I<pathname> が空である。"
17396 #. type: Plain text
17397 #: build/C/man2/unlink.2:212
17399 "A component used as a directory in I<pathname> is not, in fact, a directory."
17400 msgstr "I<pathname> のディレクトリ部分が、実際には、ディレクトリでない。"
17402 #. type: Plain text
17403 #: build/C/man2/unlink.2:221
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.)"
17410 "システムがディレクトリに対する unlink 操作を許可していない。 またはディレクト"
17411 "リに対する unlink 操作のために必要な特権を 呼び出し元のプロセスが持っていな"
17412 "い。 (これは POSIX で規定されているエラーの返し方である。 上述の通り、この場"
17413 "合には Linux は B<EISDIR> を返す。)"
17416 #: build/C/man2/unlink.2:221
17418 msgid "B<EPERM> (Linux only)"
17419 msgstr "B<EPERM> (Linux のみ)"
17421 #. type: Plain text
17422 #: build/C/man2/unlink.2:224
17423 msgid "The filesystem does not allow unlinking of files."
17424 msgstr "ファイルシステムがファイルに対する unlink 操作を許していない。"
17426 #. type: Plain text
17427 #: build/C/man2/unlink.2:235
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)."
17434 "I<pathname> を含んでいるディレクトリにスティッキービット (sticky-bit) "
17435 "(B<S_ISVTX>) が設定されていて、プロセスの実効ユーザー ID が削除しようとする"
17436 "ファイルの UID でもそれを含んでいるディレクトリのものでもなく、 かつプロセス"
17437 "に特権がない (Linux では B<CAP_FOWNER> ケーパビリティ (capability) がない)。"
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> が読み込み専用のファイルシステムのファイルを参照している。"
17444 #. type: Plain text
17445 #: build/C/man2/unlink.2:248
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 "
17451 "B<unlink>() と B<rmdir>(2) で発生するのと同じエラーが B<unlinkat>() でも起こ"
17452 "る。 B<unlinkat>() では以下のエラーも発生する。"
17454 #. type: Plain text
17455 #: build/C/man2/unlink.2:263
17457 "I<pathname> refers to a directory, and B<AT_REMOVEDIR> was not specified in "
17460 "I<pathname> がディレクトリを参照していて、 I<flags> に B<AT_REMOVEDIR> がされ"
17463 #. type: Plain text
17464 #: build/C/man2/unlink.2:273
17466 "B<unlinkat>() was added to Linux in kernel 2.6.16; library support was "
17467 "added to glibc in version 2.4."
17469 "B<unlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
17470 "ポートはバージョン 2.4 で glibc に追加された。"
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."
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."
17484 #. type: Plain text
17485 #: build/C/man2/unlink.2:297
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."
17492 "B<unlinkat>() が利用できない古いカーネルでは、 glibc ラッパー関数は "
17493 "B<unlink>(2) と B<rmdir>(2) を使用するモードにフォールバックする。 "
17494 "I<pathname> が相対パスの場合、 glibc は I<dirfd> 引き数に対応する I</proc/"
17495 "self/fd> のシンボリックリンクに基づいてパス名を構成する。"
17497 #. type: Plain text
17498 #: build/C/man2/unlink.2:312
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)"
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)"
17507 #: build/C/man3/unlocked_stdio.3:25
17509 msgid "UNLOCKED_STDIO"
17510 msgstr "UNLOCKED_STDIO"
17513 #: build/C/man3/unlocked_stdio.3:25
17516 msgstr "2008-08-29"
17518 #. type: Plain text
17519 #: build/C/man3/unlocked_stdio.3:29
17521 "getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - "
17522 "nonlocking stdio functions"
17524 "getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - ロックを行"
17527 #. type: Plain text
17528 #: build/C/man3/unlocked_stdio.3:37
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"
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"
17541 #. type: Plain text
17542 #: build/C/man3/unlocked_stdio.3:49
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"
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"
17569 #. type: Plain text
17570 #: build/C/man3/unlocked_stdio.3:52
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"
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"
17579 #. type: Plain text
17580 #: build/C/man3/unlocked_stdio.3:63
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"
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"
17601 #. type: Plain text
17602 #: build/C/man3/unlocked_stdio.3:75
17604 "B<getc_unlocked>(), B<getchar_unlocked>(), B<putc_unlocked>(), "
17605 "B<putchar_unlocked>():"
17607 "B<getc_unlocked>(), B<getchar_unlocked>(), B<putc_unlocked>(), "
17608 "B<putchar_unlocked>():"
17610 #. type: Plain text
17611 #: build/C/man3/unlocked_stdio.3:78
17613 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE || "
17614 "_BSD_SOURCE || _SVID_SOURCE"
17616 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE || "
17617 "_BSD_SOURCE || _SVID_SOURCE"
17619 #. type: Plain text
17620 #: build/C/man3/unlocked_stdio.3:89
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>():"
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>():"
17630 #. type: Plain text
17631 #: build/C/man3/unlocked_stdio.3:91
17632 msgid "_BSD_SOURCE || _SVID_SOURCE"
17633 msgstr "_BSD_SOURCE || _SVID_SOURCE"
17635 #. type: Plain text
17636 #: build/C/man3/unlocked_stdio.3:102
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>():"
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>():"
17646 #. type: Plain text
17647 #: build/C/man3/unlocked_stdio.3:113
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)."
17654 "これらの関数は、末尾に \"_unlocked\" がついていない関数と同じ動作をするが、 "
17655 "ファイルのロックを使用しない点が異なる。(これらの関数自身はファイルのロック "
17656 "をセットせず、他の関数によってロックがセットされているかどうかのチェックも 行"
17657 "わない) それゆえ、スレッド(thread)で安全に使用することができない。 "
17658 "B<flockfile>(3) を参照のこと。"
17660 #. type: Plain text
17661 #: build/C/man3/unlocked_stdio.3:120
17663 "The four functions B<getc_unlocked>(), B<getchar_unlocked>(), "
17664 "B<putc_unlocked>(), B<putchar_unlocked>() are in POSIX.1-2001."
17666 "B<getc_unlocked>(), B<getchar_unlocked>(), B<putc_unlocked>(), "
17667 "B<putchar_unlocked>() の 4 つの関数は POSIX.1-2001 に規定されている。"
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
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."
17686 "非標準の B<*_unlocked>() の仲間は 2、3 の UNIX システムで定義されており、 最"
17687 "近の glibc では使用可能であるが、 これらの関数は使わない方がよいだろう。"
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)"
17695 #: build/C/man3/wprintf.3:16
17701 #: build/C/man3/wprintf.3:16
17704 msgstr "2014-03-19"
17706 #. type: Plain text
17707 #: build/C/man3/wprintf.3:20
17709 "wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - formatted wide-"
17710 "character output conversion"
17712 "wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - ワイド文字を "
17715 #. type: Plain text
17716 #: build/C/man3/wprintf.3:24
17719 "B<#include E<lt>stdio.hE<gt>>\n"
17720 "B<#include E<lt>wchar.hE<gt>>\n"
17722 "B<#include E<lt>stdio.hE<gt>>\n"
17723 "B<#include E<lt>wchar.hE<gt>>\n"
17725 #. type: Plain text
17726 #: build/C/man3/wprintf.3:29
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"
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"
17739 #. type: Plain text
17740 #: build/C/man3/wprintf.3:34
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"
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"
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 ||"
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;"
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>"
17774 #. type: Plain text
17775 #: build/C/man3/wprintf.3:67
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 "
17781 "B<wprintf>() ファミリーの関数は B<printf>(3) ファミリーの関数の ワイド文字"
17782 "版である。これらはワイド文字をフォーマットして出力する。"
17784 #. type: Plain text
17785 #: build/C/man3/wprintf.3:79
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."
17791 "B<wprintf>() と B<vwprintf>() 関数は I<stdout> に出力を行なう。 I<stdout> "
17792 "がバイト単位入出力であってはいけない。より詳しい説明は B<fwide>(3) を参照す"
17795 #. type: Plain text
17796 #: build/C/man3/wprintf.3:91
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."
17802 "B<fwprintf>() と B<vfwprintf>() 関数は I<stream> にワイド文字出力 を行な"
17803 "う。 I<stream> がバイト単位入出力であってはいけない。 より詳しい説明は "
17804 "B<fwide>(3) を参照すること。"
17806 #. type: Plain text
17807 #: build/C/man3/wprintf.3:105
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>."
17813 "B<swprintf>() と B<vswprintf>() 関数はワイド文字の配列に ワイド文字出力を行"
17814 "なう。プログラマーは I<wcs> に最低でも I<maxlen> 文字のワイド文字を出力できる"
17815 "空きがあることを保証しなければ ならない。"
17817 #. type: Plain text
17818 #: build/C/man3/wprintf.3:116
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:"
17824 "これらの関数は B<printf>(3), B<vprintf>(3), B<fprintf>(3), B<vfprintf>(3), "
17825 "B<sprintf>(3), B<vsprintf>(3) 関数に似ているが以下の 点で異っている。"
17828 #: build/C/man3/wprintf.3:116 build/C/man3/wprintf.3:121
17829 #: build/C/man3/wprintf.3:124
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> がワイド文字列で与えられる。"
17839 #. type: Plain text
17840 #: build/C/man3/wprintf.3:124
17841 msgid "The output consists of wide characters, not bytes."
17842 msgstr "出力がバイトではなくワイド文字で構成される。"
17844 #. type: Plain text
17845 #: build/C/man3/wprintf.3:143
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.)"
17852 "B<swprintf>() と B<vswprintf>() は I<maxlen> 引き数を取るが、 "
17853 "B<sprintf>() と B<vsprintf>() は取らない (B<snprintf>() と "
17854 "B<vsnprintf>() は I<maxlen> 引き数を取るが これらの関数が Linux では、バッ"
17855 "ファーが溢れた場合でも -1 を返さない)。"
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> 変換文字の扱いが異っている:"
17862 #. type: Plain text
17863 #: build/C/man3/wprintf.3:163
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."
17870 "もし B<l> 修飾子が存在しない場合は I<int> 引き数は B<btowc>(3) 関数によって"
17871 "ワイド文字に変換される。そして結果のワイド文字が出力される。 B<l> 修飾子が存"
17872 "在する場合は I<wint_t> (ワイド文字)引き数が出力される。"
17874 #. type: Plain text
17875 #: build/C/man3/wprintf.3:203
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."
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 "む必要がある。 精度を指定する場合にはそれはワイド文字の配列の大きさよりも小さ"
17915 #. type: Plain text
17916 #: build/C/man3/wprintf.3:211
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."
17922 "これらの関数は書き込まれたワイド文字の文字数を返す。 B<swprintf>() と "
17923 "B<vswprintf>() 関数の場合は 終端のナルワイド文字は含まない。エラーが起こった"
17926 #. type: Plain text
17927 #: build/C/man3/wprintf.3:213
17931 #. type: Plain text
17932 #: build/C/man3/wprintf.3:221
17934 "The behavior of B<wprintf>() et al. depends on the B<LC_CTYPE> category of "
17935 "the current locale."
17937 "B<wprintf>() 等の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存している。"
17939 #. type: Plain text
17940 #: build/C/man3/wprintf.3:251
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))."
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>() を組み合わて使用する)。"
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)"
17971 #: build/C/man2/write.2:39
17976 #. type: Plain text
17977 #: build/C/man2/write.2:42
17978 msgid "write - write to a file descriptor"
17979 msgstr "write - ファイルディスクリプタ (file descriptor) に書き込む"
17981 #. type: Plain text
17982 #: build/C/man2/write.2:46
17984 "B<ssize_t write(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<);>"
17986 "B<ssize_t write(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<);>"
17988 #. type: Plain text
17989 #: build/C/man2/write.2:54
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>."
17994 "B<write>() は、 I<buf> が指すバッファから、ファイルディスクリプタ I<fd> が参"
17995 "照するファイルへ、最大 I<count> バイトを書き込む。"
17997 #. type: Plain text
17998 #: build/C/man2/write.2:68
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).)"
18006 "書き込まれるバイト数は I<count> よりも小さくなることがある。 例えば、書き込み"
18007 "対象の物理メディアに十分な領域がない場合、 リソース上限 B<RLIMIT_FSIZE> に達"
18008 "した場合 (B<setrlimit>(2) 参照)、 I<count> バイト未満の書き込みが行われた後"
18009 "で 呼び出しがシグナルハンドラにより割り込まれた場合、 などである。 "
18010 "(B<pipe>(7) も参照のこと。)"
18012 #. type: Plain text
18013 #: build/C/man2/write.2:82
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."
18022 "seek 可能なファイル (つまり B<lseek>(2) が適用できるファイル、例えば通常の"
18023 "ファイル) では、 書き込みは現在のファイルオフセットから行われ、 ファイルオフ"
18024 "セットは実際に書き込みが行われたバイト数分 加算される。ファイルが "
18025 "B<O_APPEND> で B<open>(2) された場合、ファイルオフセットは書き込み前に ファ"
18026 "イルの末尾に設定される。 ファイルオフセットの調整と書き込み操作はアトミックな"
18029 #. type: Plain text
18030 #: build/C/man2/write.2:89
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."
18036 "POSIX は B<write>() が行なわれた後に実行した B<read>(2) が 新しいデータを返"
18037 "すことを要求している。 全てのファイルシステムが POSIX 準拠ではない点に注意す"
18040 #. type: Plain text
18041 #: build/C/man2/write.2:94
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."
18046 "成功した場合、書き込まれたバイト数が返される (ゼロは何も書き込まれなかったこ"
18047 "とを示す)。 エラーならば -1 が返され、I<errno> が適切に設定される。"
18049 #. type: Plain text
18050 #: build/C/man2/write.2:107
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."
18058 "I<count> が 0 で、 I<fd> が通常のファイル (regular file) を参照している場"
18059 "合、 B<write>() は後述のエラーのいずれかを検出した場合、失敗を返すことがあ"
18060 "る。 エラーが検出されなかった場合は、 0 を返し、他に何の影響も与えない。 "
18061 "I<count> が 0 で、 I<fd> が通常のファイル以外のファイルを参照している場合、 "
18064 #. type: Plain text
18065 #: build/C/man2/write.2:115
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."
18070 "ファイルディスクリプタ I<fd> がソケット以外のファイルを参照していて、 非停止 "
18071 "(nonblocking) モード (B<O_NONBLOCK>) に設定されており、書き込みを行うと停止"
18074 #. Actually EAGAIN on Linux
18075 #. type: Plain text
18076 #: build/C/man2/write.2:126
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 "
18084 "ファイルディスクリプタ I<fd> がソケットを参照していて、非停止 (nonblocking) "
18085 "モード (B<O_NONBLOCK>) に設定されており、書き込みを行うと停止する状況にあ"
18086 "る。 POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 これ"
18087 "ら 2 つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なア"
18088 "プリケーションでは、両方の可能性を 確認すべきである。"
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."
18094 "I<fd> が有効なファイルディスクリプタでないか書き込みのためにオープン (open) "
18098 #: build/C/man2/write.2:130
18100 msgid "B<EDESTADDRREQ>"
18101 msgstr "B<EDESTADDRREQ>"
18103 #. type: Plain text
18104 #: build/C/man2/write.2:135
18106 "I<fd> refers to a datagram socket for which a peer address has not been set "
18107 "using B<connect>(2)."
18109 "I<fd> が、 B<connect>(2) を使って通信相手のアドレスが設定されていないデータ"
18112 #. type: Plain text
18113 #: build/C/man2/write.2:141
18115 "The user's quota of disk blocks on the filesystem containing the file "
18116 "referred to by I<fd> has been exhausted."
18118 "I<fd> が参照するファイルを含むファイルシステムのディスクブロックのユーザ"
18121 #. type: Plain text
18122 #: build/C/man2/write.2:150
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."
18128 "実装定義の最大ファイルサイズまたはプロセスのファイルサイズ制限を 超えてファイ"
18129 "ルに書き込もうとした。 または許可されたオフセット値の限界を超えた先の位置に "
18132 #. type: Plain text
18133 #: build/C/man2/write.2:154
18135 "The call was interrupted by a signal before any data was written; see "
18138 "何のデータも書かない間にシグナルにより割り込まれた (interrupt)。 "
18141 #. type: Plain text
18142 #: build/C/man2/write.2:165
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."
18149 "I<fd> が書き込みが不適切なオブジェクトを参照している。 もしくは、ファイルが "
18150 "B<O_DIRECT> フラグを指定してオープンされているが、 I<buf> に指定されたアドレ"
18151 "ス、 I<count> に指定された値、 現在のファイルオフセットのいずれかの アライン"
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 エラーが発生した。"
18159 #. type: Plain text
18160 #: build/C/man2/write.2:173
18162 "The device containing the file referred to by I<fd> has no room for the data."
18164 "I<fd> によって参照されるファイルを含むデバイス (device) に十分な空きがない。"
18167 #: build/C/man2/write.2:173
18172 #. type: Plain text
18173 #: build/C/man2/write.2:182
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.)"
18180 "I<fd> がパイプ (pipe) かソケット (socket) に接続されており、 その反対側 (読み"
18181 "込み側) がクローズ (close) されている。 これが発生した場合には、書き込みを行"
18182 "なうプロセスは B<SIGPIPE> シグナル (signal)も受ける。 (したがって、プログラム"
18183 "がこのシグナルを捕獲 (catch)、停止 (block)、無視 (ignore) した場合のみ、"
18184 "write の返り値を参照できる。)"
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>."
18190 "I<fd> に接続されたオブジェクトによっては、他のエラーが起こるかもしれない。"
18192 #. type: Plain text
18193 #: build/C/man2/write.2:194
18195 "Under SVr4 a write may be interrupted and return B<EINTR> at any point, not "
18196 "just before any data is written."
18198 "SVr4 では write が割り込まれると、データが書き込まれる直前ではなく、 その時点"
18201 #. type: Plain text
18202 #: build/C/man2/write.2:203
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 "
18210 "B<write>() が成功して返ってきても、データがディスクに記録されたことを 保証す"
18211 "るものではない。 実際、データのためのスペースが確保されたことすら保証されない"
18212 "という バグっぽい実装もある。 これを確実にする唯一の方法は、 全てのデータを "
18213 "write した後に B<fsync>(2) を呼び出すことである。"
18215 #. type: Plain text
18216 #: build/C/man2/write.2:211
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."
18223 "B<write>() が 1 バイトも書き込まないうちにシグナルハンドラにより割り込まれた"
18224 "場合、 B<write>() はエラー B<EINTR> で失敗する。 1バイトでも書き込んだ後で割"
18225 "り込まれた場合には、 B<write>() は成功し、書き込んだバイト数を返す。"
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
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."
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 で修正された。"
18258 #. type: Plain text
18259 #: build/C/man2/write.2:262
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)"
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)"
18267 #~ msgid "2013-07-23"
18268 #~ msgstr "2013-07-23"
18270 #~ msgid "2014-03-20"
18271 #~ msgstr "2014-03-20"
18274 #~ "On many architectures both I<off_t> and I<long> are 32-bit types, but "
18275 #~ "compilation with"
18277 #~ "多くのアーキテクチャでは I<off_t> も I<long> も共に 32 ビットの型である"
18280 #~ msgid "will turn I<off_t> into a 64-bit type."
18281 #~ msgstr "でコンパイルすると I<off_t> は 64 ビット型となる。"
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."
18287 #~ "これらの関数は System V 的なシステムにある。 libc4, libc5, glibc 2.0 には"
18288 #~ "なかったが、 glibc 2.1 から使えるようになった。"
18290 #~ msgid "2014-05-10"
18291 #~ msgstr "2014-05-10"
18293 #~ msgid "2014-01-22"
18294 #~ msgstr "2014-01-22"
18296 #~ msgid "2014-02-11"
18297 #~ msgstr "2014-02-11"
18299 #~ msgid "2013-12-30"
18300 #~ msgstr "2013-12-30"
18303 #~ "(\"quad\". 4.4BSD and Linux libc5 only. Don't use.) This is a synonym "
18306 #~ "(\"quad\"。 4.4BSD と Linux libc5 のみ有効。使ってはならない。) B<ll> と"
18310 #~ "A following integer conversion corresponds to an I<intmax_t> or "
18311 #~ "I<uintmax_t> argument."
18313 #~ "整数変換に対応する引き数が I<intmax_t> か I<uintmax_t> であることを示す。"
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.)"
18319 #~ "整数変換に対応する引き数が I<size_t> か I<ssize_t> であることを示す。 "
18320 #~ "(Linux libc5 では、これを指定するのに B<Z> を用いる。使ってはならない。)"
18323 #~ "A following integer conversion corresponds to a I<ptrdiff_t> argument."
18324 #~ msgstr "整数変換に対応する引き数が I<ptrdiff_t> であることを示す。"
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 "
18331 #~ "これまでに出力された文字数を I<int\\ *> (または類似の型) のポインタ引き数"
18332 #~ "が指す整数に保存する。 引き数の変換は行われない。"
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$\"."
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$\" は使えない。"
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)>."
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)> を出力するものである。"
18367 #~ msgid "glibc 2.0 adds conversion characters B<C> and B<S>."
18368 #~ msgstr "glibc 2.0 では、変換文字 B<C> と B<S> が追加された。"
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."
18376 #~ "Linux libc4.[45] には B<snprintf>() はないが、 libbsd が提供されており、 "
18377 #~ "その中には B<sprintf>() と等価な (つまり I<size> 引き数を無視する) "
18378 #~ "B<snprintf>() がある。 したがって、初期の libc4 で B<snprintf>() を使う"
18379 #~ "と、深刻なセキュリティ問題を引き起こすことがある。"
18381 #~ msgid "2010-11-17"
18382 #~ msgstr "2010-11-17"
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."
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> を使用していた。"
18395 #~ msgid "Linux notes"
18396 #~ msgstr "Linux での注意"
18398 #~ msgid "2014-03-10"
18399 #~ msgstr "2014-03-10"
18402 #~ "Under libc4 and libc5, B<remove>() was an alias for B<unlink>(2) (and "
18403 #~ "hence would not remove directories)."
18405 #~ "libc4 と libc5 においては、 B<remove>() は B<unlink>(2) の別名であった "
18406 #~ "(従ってディレクトリを削除できなかった)。"
18408 #~ msgid "2014-02-18"
18409 #~ msgstr "2014-02-18"
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."
18417 #~ "B<setbuffer>() 関数および B<setlinebuf>() 関数は 4.2BSD より前の BSD と"
18418 #~ "は互換性がない。また Linux でも(古いバージョン では)利用できないかもしれな"
18419 #~ "い。4.2BSD および 4.3BSD のシステムでは B<setbuf>() は必ず追加のバッ"
18420 #~ "ファーのサイズを使用するので、これも使うべきでない。"
18422 #~ msgid "2014-05-05"
18423 #~ msgstr "2014-05-05"
18425 #~ msgid "2014-02-21"
18426 #~ msgstr "2014-02-21"
18428 #~ msgid "2012-04-17"
18429 #~ msgstr "2012-04-17"
18431 #~ msgid "B<int >I<errno>B<;>"
18432 #~ msgstr "B<int >I<errno>B<;>"
18434 #~ msgid "2014-04-20"
18435 #~ msgstr "2014-04-20"
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)."
18443 #~ "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディス"
18444 #~ "クリプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
18445 #~ "(B<open>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
18446 #~ "ワーキングディレクトリに対する相対パスではない)。"
18448 #~ msgid "2014-03-24"
18449 #~ msgstr "2014-03-24"
18451 #~ msgid "2013-02-12"
18452 #~ msgstr "2013-02-12"
18454 #~ msgid "2013-01-27"
18455 #~ msgstr "2013-01-27"
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)."
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 #~ "を避けるのには十分ではないからである。"
18475 #~ msgid "SYMBOLIC LINK HANDLING"
18476 #~ msgstr "シンボリックリンクの取り扱い"
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."
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 #~ "は、仕様が変更され、 どちらの動作の実装も認められるようになる。"
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."
18518 #~ "もし削除する名前がファイルへの最後のリンクだが、どれかのプロセスが その"
18519 #~ "ファイルをまだオープンしている場合は、 そのファイルを参照している最後の"
18520 #~ "ファイルディスクリプタ (file descriptor) がクローズ (close) されるまで"
18523 #~ msgid "If the name referred to a symbolic link the link is removed."
18525 #~ "もしその名前がシンボリックリンク (symbolic link) を参照していれば、 リンク"
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."
18532 #~ "もし名前がソケット (socket) や fifo やデバイス (device) を参照していれば "
18533 #~ "名前は削除されるがそのオブジェクトをオープンしていたプロセスは それを使い"
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 "
18542 #~ "ファイルは同期 (synchronous) I/O モードでオープンされる。 B<open>() が返"
18543 #~ "したファイルディスクリプタに対して B<write>(2) を行うと、必ず呼び出したプ"
18544 #~ "ロセスをブロックし、 該当ハードウェアに物理的に書き込まれるまで返らない。 "
18545 #~ "I<以下の「注意」の章も参照。>"
18548 #~ "Some of these optional flags can be altered using B<fcntl>(2) after the "
18549 #~ "file has been opened."
18551 #~ "これらの選択フラグのいくつかはファイルをオープンした後でも B<fcntl>(2) を"
18552 #~ "使用して変更することができる。"
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."
18558 #~ "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。 または "
18559 #~ "B<O_NOFOLLOW> が指定されており、 I<pathname> がシンボリックリンクだった。"
18562 #~ "The B<O_CLOEXEC> flag is not specified in POSIX.1-2001, but is specified "
18563 #~ "in POSIX.1-2008."
18565 #~ "B<O_CLOEXEC> フラグは POSIX.1-2001 では規定されていないが、 POSIX.1-2008 "
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."
18572 #~ "B<O_DIRECT> は POSIX では規定されていない。 B<O_DIRECT> の定義を得るには "
18573 #~ "(「どの」ヘッダファイルをインクルードするよりも前に) B<_GNU_SOURCE> を定"
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."
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 #~ "に 必要なメタデータだけがディスクに書き込まれていればよい。"