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: 2014-06-03 01:29+0900\n"
10 "PO-Revision-Date: 2014-06-06 00:55+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:92 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:781
210 #: build/C/man2/open_by_handle_at.2:245 build/C/man2/pipe.2:129
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:104 build/C/man3/getline.3:139 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:1019
247 #: build/C/man2/open_by_handle_at.2:352 build/C/man3/perror.3:111
248 #: build/C/man2/pipe.2:155 build/C/man3/popen.3:172 build/C/man3/printf.3:807
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:143 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:110 build/C/man3/getline.3:173 build/C/man3/gets.3:90
282 #: build/C/man3/getw.3:87 build/C/man2/link.2:391 build/C/man2/llseek.2:87
283 #: build/C/man2/lseek.2:262 build/C/man3/lseek64.3:164
284 #: build/C/man2/open.2:1459 build/C/man2/open_by_handle_at.2:720
285 #: build/C/man3/perror.3:139 build/C/man2/pipe.2:228 build/C/man3/popen.3:201
286 #: build/C/man3/printf.3:1085 build/C/man3/puts.3:112 build/C/man2/read.2:226
287 #: build/C/man2/readlink.2:313 build/C/man2/readv.2:284
288 #: build/C/man3/remove.3:86 build/C/man2/rename.2:425 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:247 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:284
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:145 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:112 build/C/man3/getline.3:179
315 #: build/C/man3/gets.3:108 build/C/man3/getw.3:93 build/C/man2/link.2:400
316 #: build/C/man2/llseek.2:90 build/C/man2/lseek.2:269
317 #: build/C/man3/lseek64.3:167 build/C/man2/open.2:1481
318 #: build/C/man2/open_by_handle_at.2:736 build/C/man3/perror.3:144
319 #: build/C/man2/pipe.2:235 build/C/man3/popen.3:211 build/C/man3/printf.3:1094
320 #: build/C/man3/puts.3:124 build/C/man2/read.2:239 build/C/man2/readlink.2:320
321 #: build/C/man2/readv.2:288 build/C/man3/remove.3:97 build/C/man2/rename.2:433
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:258
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:296 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:153
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:120
343 #: build/C/man3/getline.3:187 build/C/man3/gets.3:116 build/C/man3/getw.3:101
344 #: build/C/man2/link.2:408 build/C/man2/llseek.2:98 build/C/man2/lseek.2:277
345 #: build/C/man3/lseek64.3:175 build/C/man2/open.2:1489
346 #: build/C/man2/open_by_handle_at.2:744 build/C/man3/perror.3:152
347 #: build/C/man2/pipe.2:243 build/C/man3/popen.3:219 build/C/man3/printf.3:1102
348 #: build/C/man3/puts.3:132 build/C/man2/read.2:247 build/C/man2/readlink.2:328
349 #: build/C/man2/readv.2:296 build/C/man3/remove.3:105
350 #: build/C/man2/rename.2:441 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:266
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:304 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.67 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.67 の一部\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:159 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:160 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:385 build/C/man2/open.2:1440 build/C/man3/popen.3:178
485 #: build/C/man3/printf.3:930 build/C/man3/puts.3:105 build/C/man2/read.2:187
486 #: build/C/man2/readv.2:258 build/C/man3/remove.3:83 build/C/man2/rename.2:414
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:281 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:101
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:790
679 #: build/C/man2/open_by_handle_at.2:256 build/C/man2/pipe.2:134
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:1005
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:106 build/C/man2/link.2:347 build/C/man2/llseek.2:84
730 #: build/C/man2/lseek.2:227 build/C/man2/open.2:1063
731 #: build/C/man2/open_by_handle_at.2:359 build/C/man3/perror.3:124
732 #: build/C/man3/printf.3:868 build/C/man2/read.2:175
733 #: build/C/man2/readlink.2:225 build/C/man2/readv.2:226
734 #: build/C/man3/remove.3:77 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/man3/wprintf.3:213 build/C/man2/write.2:194
743 #: build/C/man3/fclose.3:102
745 "Note that B<fclose>() only flushes the user-space buffers provided by the C "
746 "library. To ensure that the data is physically stored on disk the kernel "
747 "buffers must be flushed too, for example, with B<sync>(2) or B<fsync>(2)."
749 "B<fclose>() は C ライブラリで提供されたユーザー空間バッファをフラッシュする"
750 "だけで ある点に注意すること。 データを確実に物理的にディスクに記録するために"
751 "は カーネルバッファも (B<sync>(2) や B<fsync>(2) を用いて) フラッシュしなけ"
755 #: build/C/man3/fclose.3:108
756 msgid "B<close>(2), B<fcloseall>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
757 msgstr "B<close>(2), B<fcloseall>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
760 #: build/C/man3/fcloseall.3:25
766 #: build/C/man3/fcloseall.3:28
767 msgid "fcloseall - close all open streams"
768 msgstr "fcloseall - 開いているすべてのストリームを閉じる"
771 #: build/C/man3/fcloseall.3:32 build/C/man3/fopencookie.3:33
774 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
775 "B<#include E<lt>stdio.hE<gt>>\n"
777 "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
778 "B<#include E<lt>stdio.hE<gt>>\n"
781 #: build/C/man3/fcloseall.3:34
783 msgid "B<int fcloseall(void);>\n"
784 msgstr "B<int fcloseall(void);>\n"
787 #: build/C/man3/fcloseall.3:43
789 "The B<fcloseall>() function closes all of the calling process's open "
790 "streams. Buffered output for each stream is written before it is closed (as "
791 "for B<fflush>(3)); buffered input is discarded."
793 "B<fcloseall>() 関数は、呼び出し元プロセスが開いているすべてのストリームを閉"
794 "じる。 ストリームを閉じる前に、 (B<fflush>(3) と同じように) 各ストリームの"
795 "バッファに溜っている出力データは書き出される。 入力バッファ内のデータは破棄さ"
799 #: build/C/man3/fcloseall.3:50
801 "The standard streams, I<stdin>, I<stdout>, and I<stderr> are also closed."
802 msgstr "標準入出力 I<stdin>, I<stdout>, I<stderr> も閉じられる。"
805 #: build/C/man3/fcloseall.3:55
807 "This function returns 0 if all files were successfully closed; on error, "
808 "B<EOF> is returned."
810 "この関数は、すべてのファイルが正常に閉じられた場合 0 を返す。 エラーの場合、 "
814 #: build/C/man3/fcloseall.3:60
816 "The B<fcloseall>() function does not lock the streams, so it is not thread-"
819 "B<fcloseall>() 関数はストリームのロックを行わない。そのため、スレッドセーフで"
823 #: build/C/man3/fcloseall.3:62
824 msgid "This function is a GNU extension."
825 msgstr "この関数は GNU 拡張である。"
828 #: build/C/man3/fcloseall.3:68
829 msgid "B<close>(2), B<fclose>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
830 msgstr "B<close>(2), B<fclose>(3), B<fflush>(3), B<fopen>(3), B<setbuf>(3)"
833 #: build/C/man3/ferror.3:44
839 #: build/C/man3/ferror.3:44
845 #: build/C/man3/ferror.3:47
846 msgid "clearerr, feof, ferror, fileno - check and reset stream status"
848 "clearerr, feof, ferror, fileno - ストリームステータスのチェックとリセット"
851 #: build/C/man3/ferror.3:51
852 msgid "B<void clearerr(FILE *>I<stream>B<);>"
853 msgstr "B<void clearerr(FILE *>I<stream>B<);>"
856 #: build/C/man3/ferror.3:53
857 msgid "B<int feof(FILE *>I<stream>B<);>"
858 msgstr "B<int feof(FILE *>I<stream>B<);>"
861 #: build/C/man3/ferror.3:55
862 msgid "B<int ferror(FILE *>I<stream>B<);>"
863 msgstr "B<int ferror(FILE *>I<stream>B<);>"
866 #: build/C/man3/ferror.3:57
867 msgid "B<int fileno(FILE *>I<stream>B<);>"
868 msgstr "B<int fileno(FILE *>I<stream>B<);>"
871 #: build/C/man3/ferror.3:65
873 "B<fileno>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
875 "B<fileno>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
878 #: build/C/man3/ferror.3:70
880 "The function B<clearerr>() clears the end-of-file and error indicators for "
881 "the stream pointed to by I<stream>."
883 "関数 B<clearerr>() は I<stream> で示されるストリームの EOF(end-of-file) 指示"
887 #: build/C/man3/ferror.3:78
889 "The function B<feof>() tests the end-of-file indicator for the stream "
890 "pointed to by I<stream>, returning nonzero if it is set. The end-of-file "
891 "indicator can be cleared only by the function B<clearerr>()."
893 "関数 B<feof>() は I<stream> で示されるストリームの EOF 指示子をテストし、 "
894 "セットされていれば 0 以外の数を返す。 EOF 指示子は、関数 B<clearerr>() に"
898 #: build/C/man3/ferror.3:87
900 "The function B<ferror>() tests the error indicator for the stream pointed "
901 "to by I<stream>, returning nonzero if it is set. The error indicator can be "
902 "reset only by the B<clearerr>() function."
904 "関数 B<ferror>() は I<stream> で示されるストリームのエラー指示子をテスト"
905 "し、 セットされていれば 0 以外の数を返す。 エラー指示子は、関数 "
906 "B<clearerr>() によってのみリセットすることができる。"
909 #: build/C/man3/ferror.3:93
911 "The function B<fileno>() examines the argument I<stream> and returns its "
912 "integer descriptor."
914 "関数 B<fileno>() は、引数 I<stream> を調べ、その整数のディスクリプタを返す。"
917 #: build/C/man3/ferror.3:96 build/C/man3/fgetc.3:99 build/C/man3/fgetwc.3:55
918 #: build/C/man3/fputwc.3:54 build/C/man3/fread.3:83 build/C/man3/puts.3:84
919 msgid "For nonlocking counterparts, see B<unlocked_stdio>(3)."
921 "これらの処理を停止せずに行いたいときは、 B<unlocked_stdio>(3) を参照のこと。"
924 #: build/C/man3/ferror.3:106
926 "These functions should not fail and do not set the external variable "
927 "I<errno>. (However, in case B<fileno>() detects that its argument is not a "
928 "valid stream, it must return -1 and set I<errno> to B<EBADF>.)"
930 "これらの関数は失敗すべきではなく、また、外部変数 I<errno> に値をセットしな"
931 "い。 (しかし、 B<fileno>() 関数の場合で、引数が有効なストリームでなかった場"
932 "合、 関数は -1 を返し、 I<errno> に B<EBADF> を設定しなければならない。)"
935 #: build/C/man3/ferror.3:115
937 "The B<clearerr>(), B<feof>(), B<ferror>(), and B<fileno>() functions are "
940 "関数 B<clearerr>(), B<feof>(), B<ferror>(), B<fileno>() はスレッドセーフであ"
944 #: build/C/man3/ferror.3:122
946 "The functions B<clearerr>(), B<feof>(), and B<ferror>() conform to C89, "
947 "C99, POSIX.1-2001, and POSIX.1-2008."
949 "関数 B<clearerr>(), B<feof>(), B<ferror>() は C89, C99, POSIX.1-2001, "
950 "POSIX.1-2008 に準拠している。"
953 #: build/C/man3/ferror.3:126
954 msgid "The function B<fileno>() conforms to POSIX.1-2001 and POSIX.1-2008."
955 msgstr "関数 B<fileno>() は POSIX.1-2001 と POSIX.1-2008 に準拠している。"
958 #: build/C/man3/ferror.3:131
959 msgid "B<open>(2), B<fdopen>(3), B<stdio>(3), B<unlocked_stdio>(3)"
960 msgstr "B<open>(2), B<fdopen>(3), B<stdio>(3), B<unlocked_stdio>(3)"
963 #: build/C/man3/fflush.3:45
969 #: build/C/man3/fflush.3:45
975 #: build/C/man3/fflush.3:48
976 msgid "fflush - flush a stream"
977 msgstr "fflush - ストリームの内容を強制的に出力(フラッシュ)する"
980 #: build/C/man3/fflush.3:52
981 msgid "B<int fflush(FILE *>I<stream>B<);>"
982 msgstr "B<int fflush(FILE *>I<stream>B<);>"
985 #: build/C/man3/fflush.3:63
987 "For output streams, B<fflush>() forces a write of all user-space buffered "
988 "data for the given output or update I<stream> via the stream's underlying "
989 "write function. For input streams, B<fflush>() discards any buffered data "
990 "that has been fetched from the underlying file, but has not been consumed by "
991 "the application. The open status of the stream is unaffected."
993 "出力ストリームに関しては、 B<fflush>() は、ユーザー空間でバッファリングされ"
994 "ているすべてのデータを 指定された出力に書き出す (フラッシュする)、 もしくはス"
995 "トリーム I<stream> の下位にある書き込み関数を用いてこのストリームを更新す"
996 "る。 入力ストリームに関しては、 B<fflush>() は、対応するファイルから取得され"
997 "たが、アプリケーションからは 読み出されていないバッファデータを全て破棄す"
998 "る。 ストリームは開いた状態のままであり、 この関数によって何の影響も受けな"
1002 #: build/C/man3/fflush.3:71
1004 "If the I<stream> argument is NULL, B<fflush>() flushes I<all> open output "
1007 "I<stream> 引数が NULL ならば、 B<fflush>() は開いているI<すべての>出力スト"
1011 #: build/C/man3/fflush.3:74
1012 msgid "For a nonlocking counterpart, see B<unlocked_stdio>(3)."
1014 "これらの処理をロックせずに行いたいときは、 B<unlocked_stdio>(3) を参照のこ"
1018 #: build/C/man3/fflush.3:81
1020 "Upon successful completion 0 is returned. Otherwise, B<EOF> is returned and "
1021 "I<errno> is set to indicate the error."
1023 "成功すると 0 が返される。 その他の場合には B<EOF> が返され、 I<errno> が、エ"
1027 #: build/C/man3/fflush.3:86
1028 msgid "I<Stream> is not an open stream, or is not open for writing."
1030 "I<Stream> は開いているストリームではない。 あるいはストリームは書き込み用では"
1034 #: build/C/man3/fflush.3:93
1036 "The function B<fflush>() may also fail and set I<errno> for any of the "
1037 "errors specified for B<write>(2)."
1039 "B<fflush>() 関数は B<write>(2) に関して規定されているエラーで失敗することも"
1040 "ある。 この場合 I<errno> もその値に設定される。"
1043 #: build/C/man3/fflush.3:98
1044 msgid "The B<fflush>() function is thread-safe."
1045 msgstr "関数 B<fflush>() はスレッドセーフである。"
1048 #: build/C/man3/fflush.3:100
1049 msgid "C89, C99, POSIX.1-2001, POSIX.1-2008."
1050 msgstr "C89, C99, POSIX.1-2001, POSIX.1-2008."
1052 #. Verified on: Solaris 8.
1054 #: build/C/man3/fflush.3:104
1056 "The standards do not specify the behavior for input streams. Most other "
1057 "implementations behave the same as Linux."
1059 "標準では、入力ストリームに対する動作は規定されていない。 他のほとんどの実装"
1063 #: build/C/man3/fflush.3:113
1065 "Note that B<fflush>() only flushes the user-space buffers provided by the C "
1066 "library. To ensure that the data is physically stored on disk the kernel "
1067 "buffers must be flushed too, for example, with B<sync>(2) or B<fsync>(2)."
1069 "B<fflush>() は、 C ライブラリが与えているユーザー空間のバッファしかフラッ"
1070 "シュしない。 データが物理的にディスクに保存されることを保証したければ、 カー"
1071 "ネルバッファもフラッシュしなければならない。 これには例えば B<sync>(2) や "
1075 #: build/C/man3/fflush.3:121
1077 "B<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), "
1078 "B<setbuf>(3), B<unlocked_stdio>(3)"
1080 "B<fsync>(2), B<sync>(2), B<write>(2), B<fclose>(3), B<fopen>(3), "
1081 "B<setbuf>(3), B<unlocked_stdio>(3)"
1084 #: build/C/man3/fgetc.3:27
1090 #: build/C/man3/fgetc.3:27
1096 #: build/C/man3/fgetc.3:30
1097 msgid "fgetc, fgets, getc, getchar, ungetc - input of characters and strings"
1098 msgstr "fgetc, fgets, getc, getchar, ungetc - 文字と文字列の入力"
1101 #: build/C/man3/fgetc.3:35
1103 msgid "B<int fgetc(FILE *>I<stream>B<);>\n"
1104 msgstr "B<int fgetc(FILE *>I<stream>B<);>\n"
1107 #: build/C/man3/fgetc.3:37
1109 msgid "B<char *fgets(char *>I<s>B<, int >I<size>B<, FILE *>I<stream>B<);>\n"
1110 msgstr "B<char *fgets(char *>I<s>B<, int >I<size>B<, FILE *>I<stream>B<);>\n"
1113 #: build/C/man3/fgetc.3:39
1115 msgid "B<int getc(FILE *>I<stream>B<);>\n"
1116 msgstr "B<int getc(FILE *>I<stream>B<);>\n"
1119 #: build/C/man3/fgetc.3:41
1121 msgid "B<int getchar(void);>\n"
1122 msgstr "B<int getchar(void);>\n"
1125 #: build/C/man3/fgetc.3:43
1127 msgid "B<int ungetc(int >I<c>B<, FILE *>I<stream>B<);>\n"
1128 msgstr "B<int ungetc(int >I<c>B<, FILE *>I<stream>B<);>\n"
1131 #: build/C/man3/fgetc.3:55
1133 "B<fgetc>() reads the next character from I<stream> and returns it as an "
1134 "I<unsigned char> cast to an I<int>, or B<EOF> on end of file or error."
1136 "B<fgetc>() は、 I<stream> から次の文字を I<unsigned char> として読み、 "
1137 "I<int> にキャストして返す。ファイルの終わりやエラーとなった場合は B<EOF> を返"
1141 #: build/C/man3/fgetc.3:62
1143 "B<getc>() is equivalent to B<fgetc>() except that it may be implemented as "
1144 "a macro which evaluates I<stream> more than once."
1146 "B<getc>() は B<fgetc>() と同様だが、 I<stream> を複数回評価するマクロとして"
1150 #: build/C/man3/fgetc.3:66
1151 msgid "B<getchar>() is equivalent to B<getc(>I<stdin>B<)>."
1152 msgstr "B<getchar>() は B<getc(>I<stdin>B<)> と同じである。"
1155 #: build/C/man3/fgetc.3:80
1157 "B<fgets>() reads in at most one less than I<size> characters from I<stream> "
1158 "and stores them into the buffer pointed to by I<s>. Reading stops after an "
1159 "B<EOF> or a newline. If a newline is read, it is stored into the buffer. A "
1160 "terminating null byte (\\(aq\\e0\\(aq) is stored after the last character "
1163 "B<fgets>() は I<stream> から最大で I<size> - 1 個の文字を読み込み、 I<s> が"
1164 "指すバッファに格納する。読み込みは B<EOF> または改行文字を読み込んだ後で停止"
1165 "する。 読み込まれた改行文字はバッファに格納される。 終端のヌルバイト (\\(aq"
1166 "\\e0\\(aq) が一つバッファの中の最後の文字の後に書き込まれる。"
1169 #: build/C/man3/fgetc.3:91
1171 "B<ungetc>() pushes I<c> back to I<stream>, cast to I<unsigned char>, where "
1172 "it is available for subsequent read operations. Pushed-back characters will "
1173 "be returned in reverse order; only one pushback is guaranteed."
1175 "B<ungetc>() は、後の read 操作で読めるように、 I<c> を I<unsigned char> に"
1176 "キャストして I<stream> に書き戻す。 書き戻された文字は逆順に戻される; 書き戻"
1177 "しとして保証されているのは、一文字だけである。"
1180 #: build/C/man3/fgetc.3:96
1182 "Calls to the functions described here can be mixed with each other and with "
1183 "calls to other input functions from the I<stdio> library for the same input "
1186 "ここで述べた関数や I<stdio> ライブラリの入力関数を同じ入力ストリームに対して"
1190 #: build/C/man3/fgetc.3:111
1192 "B<fgetc>(), B<getc>() and B<getchar>() return the character read as an "
1193 "I<unsigned char> cast to an I<int> or B<EOF> on end of file or error."
1195 "B<fgetc>(), B<getc>(), B<getchar>() は、文字を I<unsigned char> として読ん"
1196 "で I<int> にキャストして返す。ファイルの終わりやエラーの場合は B<EOF> を返"
1200 #: build/C/man3/fgetc.3:117
1202 "B<fgets>() returns I<s> on success, and NULL on error or when end of file "
1203 "occurs while no characters have been read."
1205 "B<fgets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込んでいないのに"
1206 "ファイルの終わりになった 場合に NULL を返す。"
1209 #: build/C/man3/fgetc.3:124
1210 msgid "B<ungetc>() returns I<c> on success, or B<EOF> on error."
1211 msgstr "B<ungetc>() は成功すると I<c> を返し、エラーの場合は B<EOF> を返す。"
1214 #: build/C/man3/fgetc.3:126 build/C/man3/gets.3:60
1215 msgid "C89, C99, POSIX.1-2001."
1216 msgstr "C89, C99, POSIX.1-2001."
1219 #: build/C/man3/fgetc.3:133
1221 "It is not advisable to mix calls to input functions from the I<stdio> "
1222 "library with low-level calls to B<read>(2) for the file descriptor "
1223 "associated with the input stream; the results will be undefined and very "
1224 "probably not what you want."
1226 "入力ストリームのファイルディスクリプタに対して、 I<stdio> ライブラリの入力関"
1227 "数と、低レベル呼び出しの B<read>(2) を混ぜて呼び出す事は勧められない。 結果"
1228 "がどうなるかは分からず、おそらくあなたの 望んでいる結果にはならないだろう。"
1231 #: build/C/man3/fgetc.3:150
1233 "B<read>(2), B<write>(2), B<ferror>(3), B<fgetwc>(3), B<fgetws>(3), "
1234 "B<fopen>(3), B<fread>(3), B<fseek>(3), B<getline>(3), B<gets>(3), "
1235 "B<getwchar>(3), B<puts>(3), B<scanf>(3), B<ungetwc>(3), "
1236 "B<unlocked_stdio>(3), B<feature_test_macros>(7)"
1238 "B<read>(2), B<write>(2), B<ferror>(3), B<fgetwc>(3), B<fgetws>(3), "
1239 "B<fopen>(3), B<fread>(3), B<fseek>(3), B<getline>(3), B<gets>(3), "
1240 "B<getwchar>(3), B<puts>(3), B<scanf>(3), B<ungetwc>(3), "
1241 "B<unlocked_stdio>(3), B<feature_test_macros>(7)"
1244 #: build/C/man3/fgetwc.3:18
1250 #: build/C/man3/fgetwc.3:18 build/C/man3/fputwc.3:16 build/C/man3/popen.3:40
1256 #: build/C/man3/fgetwc.3:21
1257 msgid "fgetwc, getwc - read a wide character from a FILE stream"
1258 msgstr "fgetwc, getwc - ワイド文字を FILE ストリームから読み込む"
1261 #: build/C/man3/fgetwc.3:26 build/C/man3/fmemopen.3:22
1262 #: build/C/man3/fputwc.3:24 build/C/man3/unlocked_stdio.3:54
1264 msgid "B<#include E<lt>wchar.hE<gt>>\n"
1265 msgstr "B<#include E<lt>wchar.hE<gt>>\n"
1268 #: build/C/man3/fgetwc.3:29
1271 "B<wint_t fgetwc(FILE *>I<stream>B<);>\n"
1272 "B<wint_t getwc(FILE *>I<stream>B<);>\n"
1274 "B<wint_t fgetwc(FILE *>I<stream>B<);>\n"
1275 "B<wint_t getwc(FILE *>I<stream>B<);>\n"
1278 #: build/C/man3/fgetwc.3:44
1280 "The B<fgetwc>() function is the wide-character equivalent of the "
1281 "B<fgetc>(3) function. It reads a wide character from I<stream> and returns "
1282 "it. If the end of stream is reached, or if I<ferror(stream)> becomes true, "
1283 "it returns B<WEOF>. If a wide-character conversion error occurs, it sets "
1284 "I<errno> to B<EILSEQ> and returns B<WEOF>."
1286 "B<fgetwc>() 関数は、 B<fgetc>(3) に対応するワイド文字関数である。 この関数"
1287 "は I<stream> からワイド文字を 1 文字読み込み、これを返す。 ストリームの終端に"
1288 "達するか、I<ferror(stream)> が真になった場合には、 この関数は B<WEOF> を返"
1289 "す。 ワイド文字変換でエラーが発生した場合は、 I<errno> に B<EILSEQ> をセット"
1293 #: build/C/man3/fgetwc.3:52
1295 "The B<getwc>() function or macro functions identically to B<fgetwc>(). It "
1296 "may be implemented as a macro, and may evaluate its argument more than "
1297 "once. There is no reason ever to use it."
1299 "B<getwc>() 関数あるいはマクロは、 B<fgetwc>() と全く同じ動作をする。 この関"
1300 "数はマクロとして実装されるかもしれないので、引き数が複数回評価さ れるかもしれ"
1301 "ない。この関数を使う理由はもはや存在しない。"
1304 #: build/C/man3/fgetwc.3:64
1306 "The B<fgetwc>() function returns the next wide-character from the stream, "
1307 "or B<WEOF>. In the event of an error, I<errno> is set to indicate the cause."
1309 "B<fgetwc>() 関数はストリームの次のワイド文字か、あるいは B<WEOF> を返す。 エ"
1310 "ラーが起こった場合、 I<errno> にエラーの原因を示す値が設定される。"
1313 #: build/C/man3/fgetwc.3:66 build/C/man3/fputwc.3:65
1314 msgid "Apart from the usual ones, there is"
1315 msgstr "通常のエラーに加えて、以下のエラーがある:"
1318 #: build/C/man3/fgetwc.3:66 build/C/man3/fputwc.3:65 build/C/man3/scanf.3:558
1324 #: build/C/man3/fgetwc.3:70
1326 "The data obtained from the input stream does not form a valid character."
1327 msgstr "入力ストリームから取得したデータが、正しい文字でない。"
1330 #: build/C/man3/fgetwc.3:72 build/C/man3/fputwc.3:70
1331 msgid "C99, POSIX.1-2001."
1332 msgstr "C99, POSIX.1-2001."
1335 #: build/C/man3/fgetwc.3:79
1337 "The behavior of B<fgetwc>() depends on the B<LC_CTYPE> category of the "
1340 "B<fgetwc>() の動作は、現在のロケールの B<LC_CTYPE> カテゴリに依存する。"
1343 #: build/C/man3/fgetwc.3:87
1345 "In the absence of additional information passed to the B<fopen>(3) call, it "
1346 "is reasonable to expect that B<fgetwc>() will actually read a multibyte "
1347 "sequence from the stream and then convert it to a wide character."
1349 "B<fopen>(3) システムコールに渡す追加情報がない場合には、 B<fgetwc>() が実"
1350 "際 にはマルチバイトシーケンスをストリームから読み込み、これをワイド文字に 変"
1354 #: build/C/man3/fgetwc.3:92
1355 msgid "B<fgetws>(3), B<fputwc>(3), B<ungetwc>(3), B<unlocked_stdio>(3)"
1356 msgstr "B<fgetws>(3), B<fputwc>(3), B<ungetwc>(3), B<unlocked_stdio>(3)"
1359 #: build/C/man3/flockfile.3:25
1365 #: build/C/man3/flockfile.3:25
1371 #: build/C/man3/flockfile.3:28
1372 msgid "flockfile, ftrylockfile, funlockfile - lock FILE for stdio"
1373 msgstr "flockfile, ftrylockfile, funlockfile - 標準入出力 FILE のロックを行う"
1376 #: build/C/man3/flockfile.3:33
1378 msgid "B<void flockfile(FILE *>I<filehandle>B<);>\n"
1379 msgstr "B<void flockfile(FILE *>I<filehandle>B<);>\n"
1382 #: build/C/man3/flockfile.3:35
1384 msgid "B<int ftrylockfile(FILE *>I<filehandle>B<);>\n"
1385 msgstr "B<int ftrylockfile(FILE *>I<filehandle>B<);>\n"
1388 #: build/C/man3/flockfile.3:37
1390 msgid "B<void funlockfile(FILE *>I<filehandle>B<);>\n"
1391 msgstr "B<void funlockfile(FILE *>I<filehandle>B<);>\n"
1394 #: build/C/man3/flockfile.3:46 build/C/man3/wprintf.3:43
1395 msgid "All functions shown above:"
1399 #: build/C/man3/flockfile.3:49
1401 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE "
1404 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE "
1408 #: build/C/man3/flockfile.3:63
1410 "The stdio functions are thread-safe. This is achieved by assigning to each "
1411 "I<FILE> object a lockcount and (if the lockcount is nonzero) an owning "
1412 "thread. For each library call, these functions wait until the I<FILE> "
1413 "object is no longer locked by a different thread, then lock it, do the "
1414 "requested I/O, and unlock the object again."
1416 "標準入出力関数はスレッドセーフである。これは、各 I<FILE> オブジェクトに対し、"
1417 "ロック数 (lockcount) と (ロック数が 0 でない場合は) 所有者スレッド (owner "
1418 "thread) を管理することで実現される。 ライブラリの呼び出しが行われる毎に、標"
1419 "準入出力関数は I<FILE> オブジェクトが他のスレッドによってロックされていない状"
1420 "態になるまで待ち、 I<FILE> オブジェクトをロックし、要求されて入出力を行い、 "
1424 #: build/C/man3/flockfile.3:69
1426 "(Note: this locking has nothing to do with the file locking done by "
1427 "functions like B<flock>(2) and B<lockf>(3).)"
1429 "(注: このロックは、 B<flock>(2) や B<lockf>(3) といった関数が行うロックとは"
1433 #: build/C/man3/flockfile.3:77
1435 "All this is invisible to the C-programmer, but there may be two reasons to "
1436 "wish for more detailed control. On the one hand, maybe a series of I/O "
1437 "actions by one thread belongs together, and should not be interrupted by the "
1438 "I/O of some other thread. On the other hand, maybe the locking overhead "
1439 "should be avoided for greater efficiency."
1441 "これらのことはすべて C プログラマには見えない部分で行われるが、 より細かい制"
1442 "御ができた方がよい理由が2つあるだろう。一つは、一つのスレッドが 行う一連の入"
1443 "出力動作は一緒に行われ、他のスレッドの入出力によって中断されない 方がよいとい"
1444 "うことであろう。もう一つは、効率を大きく上げるためには ロックのオーバヘッドを"
1445 "避ける必要があるということであろう。"
1448 #: build/C/man3/flockfile.3:94
1450 "To this end, a thread can explicitly lock the I<FILE> object, then do its "
1451 "series of I/O actions, then unlock. This prevents other threads from coming "
1452 "in between. If the reason for doing this was to achieve greater efficiency, "
1453 "one does the I/O with the nonlocking versions of the stdio functions: with "
1454 "B<getc_unlocked>(3) and B<putc_unlocked>(3) instead of B<getc>(3) and "
1457 "この目的を実現するために、 I<FILE> オブジェクトのロック、一連の入出力動作の実"
1458 "行、 ロックの解除をスレッドが明示的に指示することができる。 これにより、他の"
1459 "スレッドが途中で入出力を行うのを防止する。 このようなことを行う理由が効率の向"
1460 "上であるならば、 ロックを行わないバージョンの標準入出力関数を使うこともでき"
1461 "る。 例えば、 B<getc>(3) や B<putc>(3) の代わりに B<getc_unlocked>(3) や "
1462 "B<putc_unlocked>(3) を使用する。"
1465 #: build/C/man3/flockfile.3:105
1467 "The B<flockfile>() function waits for I<*filehandle> to be no longer locked "
1468 "by a different thread, then makes the current thread owner of "
1469 "I<*filehandle>, and increments the lockcount."
1471 "B<flockfile>() 関数は、I<*filehandle> が他のスレッドにロックされていな い状"
1472 "態になるまで待ったのち、現在のスレッドを I<*filehandle> のオーナに設 定し、"
1476 #: build/C/man3/flockfile.3:109
1477 msgid "The B<funlockfile>() function decrements the lock count."
1478 msgstr "B<funlockfile>() 関数は、ロック数を減算する。"
1481 #: build/C/man3/flockfile.3:120
1483 "The B<ftrylockfile>() function is a nonblocking version of B<flockfile>(). "
1484 "It does nothing in case some other thread owns I<*filehandle>, and it "
1485 "obtains ownership and increments the lockcount otherwise."
1487 "B<ftrylockfile>() 関数は B<flockfile>() のブロッキングを行わない バージョン"
1488 "である。他のスレッドが I<*filehandle> をロックしている時は 何も行わず、そうで"
1489 "ない場合は I<*filehandle> の所有権を獲得し、 ロック数を加算する。"
1492 #: build/C/man3/flockfile.3:125
1494 "The B<ftrylockfile>() function returns zero for success (the lock was "
1495 "obtained), and nonzero for failure."
1497 "B<ftrylockfile>() 関数はロックに成功すると 0 を返し、 失敗した場合は 0 以外"
1501 #: build/C/man3/flockfile.3:127
1506 #: build/C/man3/flockfile.3:135
1508 "The B<flockfile>(), B<ftrylockfile>(), and B<funlockfile>() functions are "
1511 "関数 B<flockfile>(), B<ftrylockfile>(), B<funlockfile>() はスレッドセーフであ"
1515 #: build/C/man3/flockfile.3:137 build/C/man3/popen.3:174
1516 msgid "POSIX.1-2001."
1517 msgstr "POSIX.1-2001."
1520 #: build/C/man3/flockfile.3:137
1522 msgid "AVAILABILITY"
1526 #: build/C/man3/flockfile.3:143
1528 "These functions are available when B<_POSIX_THREAD_SAFE_FUNCTIONS> is "
1529 "defined. They are in libc since libc 5.1.1 and in glibc since glibc 2.0."
1531 "B<_POSIX_THREAD_SAFE_FUNCTIONS> が定義されているときにこれらの関数を使用する"
1532 "ことができる。 5.1.1 以降の libc と 2.0 以降の glibc に存在する。"
1535 #: build/C/man3/flockfile.3:145
1536 msgid "B<unlocked_stdio>(3)"
1537 msgstr "B<unlocked_stdio>(3)"
1540 #: build/C/man3/fmemopen.3:10
1546 #: build/C/man3/fmemopen.3:10 build/C/man3/getline.3:26
1547 #: build/C/man7/symlink.7:37
1553 #: build/C/man3/fmemopen.3:13
1554 msgid "fmemopen, open_memstream, open_wmemstream - open memory as stream"
1556 "fmemopen, open_memstream, open_wmemstream - メモリをストリームとしてオープン"
1560 #: build/C/man3/fmemopen.3:18
1562 msgid "B<FILE *fmemopen(void *>I<buf>B<, size_t >I<size>B<, const char *>I<mode>B<);>\n"
1563 msgstr "B<FILE *fmemopen(void *>I<buf>B<, size_t >I<size>B<, const char *>I<mode>B<);>\n"
1566 #: build/C/man3/fmemopen.3:20
1568 msgid "B<FILE *open_memstream(char **>I<ptr>B<, size_t *>I<sizeloc>B<);>\n"
1569 msgstr "B<FILE *open_memstream(char **>I<ptr>B<, size_t *>I<sizeloc>B<);>\n"
1572 #: build/C/man3/fmemopen.3:24
1574 msgid "B<FILE *open_wmemstream(wchar_t **>I<ptr>B<, size_t *>I<sizeloc>B<);>\n"
1575 msgstr "B<FILE *open_wmemstream(wchar_t **>I<ptr>B<, size_t *>I<sizeloc>B<);>\n"
1578 #: build/C/man3/fmemopen.3:34
1579 msgid "B<fmemopen>(), B<open_memstream>(), B<open_wmemstream>():"
1580 msgstr "B<fmemopen>(), B<open_memstream>(), B<open_wmemstream>():"
1583 #: build/C/man3/fmemopen.3:57
1585 "The B<fmemopen>() function opens a stream that permits the access specified "
1586 "by I<mode>. The stream allows I/O to be performed on the string or memory "
1587 "buffer pointed to by I<buf>. This buffer must be at least I<size> bytes "
1590 "B<fmemopen>() 関数は、ストリームをオープンし、そのストリームに I<mode> で指"
1591 "定されたアクセス許可を設定する。 そのストリームを通じて、 I<buf> で指定された"
1592 "文字列やメモリバッファへの読み書きができる。 このバッファは少なくとも "
1593 "I<size> バイトの長さでなければならない。"
1596 #: build/C/man3/fmemopen.3:77
1598 "The argument I<mode> is the same as for B<fopen>(3). If I<mode> specifies "
1599 "an append mode, then the initial file position is set to the location of the "
1600 "first null byte (\\(aq\\e0\\(aq) in the buffer; otherwise the initial file "
1601 "position is set to the start of the buffer. Since glibc 2.9, the letter "
1602 "\\(aqb\\(aq may be specified as the second character in I<mode>. This "
1603 "provides \"binary\" mode: writes don't implicitly add a terminating null "
1604 "byte, and B<fseek>(3) B<SEEK_END> is relative to the end of the buffer (i."
1605 "e., the value specified by the I<size> argument), rather than the current "
1608 "引き数 I<mode> は B<fopen>(3) の場合と同じである。 I<mode> で追記モード\n"
1609 "(append mode) が指定された場合、ファイル位置の初期値は バッファ中の\n"
1610 "最初のヌルバイト (\\(aq\\e0\\(aq) の位置に設定される。\n"
1611 "それ以外の場合は、ファイル位置の初期値はバッファの先頭になる。 \n"
1612 "glibc 2.9 以降では、文字 \\(aqb\\(aq を I<mode> の二番目の文字として指定\n"
1613 "することができる。 この文字は「バイナリ」モードを指定するものである。\n"
1614 "このモードでは、書き込み時に文字列終端のヌルバイトが黙って追加 される\n"
1615 "ことはない。また、 B<fseek>(3) B<SEEK_END> は、文字列の長さからの相対値\n"
1616 "ではなく、バッファの末尾 (I<size> で指定した値) からの相対値となる。"
1619 #: build/C/man3/fmemopen.3:89
1621 "When a stream that has been opened for writing is flushed (B<fflush>(3)) or "
1622 "closed (B<fclose>(3)), a null byte is written at the end of the buffer if "
1623 "there is space. The caller should ensure that an extra byte is available in "
1624 "the buffer (and that I<size> counts that byte) to allow for this."
1626 "書き込み用にオープンされたストリームをフラッシュ (B<fflush>(3)) やクローズ "
1627 "(B<fclose>(3)) した時に、 (バッファに空きがあれば) ヌルバイトがバッファの末"
1628 "尾に書き込まれる。 このようにするためには、呼び出し元は バッファに 1バイト余"
1629 "裕を作る (I<size> にこの 1バイトを含めた値を指定する) 必要がある。"
1631 #. See http://sourceware.org/bugzilla/show_bug.cgi?id=1995
1633 #. http://sources.redhat.com/ml/libc-alpha/2006-04/msg00064.html
1635 #: build/C/man3/fmemopen.3:107
1637 "Attempts to write more than I<size> bytes to the buffer result in an error. "
1638 "(By default, such errors will be visible only when the I<stdio> buffer is "
1639 "flushed. Disabling buffering with I<setbuf(fp,\\ NULL)> may be useful to "
1640 "detect errors at the time of an output operation. Alternatively, the caller "
1641 "can explicitly set I<buf> as the stdio stream buffer, at the same time "
1642 "informing stdio of the buffer's size, using I<setbuffer(fp, buf, size)>.)"
1644 "バッファに I<size> バイトよりたくさん書き込もうとした場合には、エラーとな"
1645 "る。 (デフォルトでは、このようなエラーが見えるのは I<stdio> バッファがフラッ"
1646 "シュされた時だけである。 I<setbuf(fp,\\ NULL)> を使ってバッファリングを無効に"
1647 "する方法は、 出力操作を行った時点でエラーを検出するのに役立つ。 別の方法とし"
1648 "ては、 I<setbuffer(fp, buf, size)> を使って、呼び出し側が明示的に stdio スト"
1649 "リームバッファとして I<buf> を指定し、バッファの指定時にバッファのサイズを "
1653 #: build/C/man3/fmemopen.3:115
1655 "In a stream opened for reading, null bytes (\\(aq\\e0\\(aq) in the buffer do "
1656 "not cause read operations to return an end-of-file indication. A read from "
1657 "the buffer will only indicate end-of-file when the file pointer advances "
1658 "I<size> bytes past the start of the buffer."
1660 "読み出し用にオープンされたストリームでは、 バッファ内にヌルバイト (\\(aq"
1661 "\\e0\\(aq) があっても 読み出し操作がファイル末尾 (end-of-file) を返すことはな"
1662 "い。 バッファからの読み出しでファイル末尾が返るのは、 ファイルポインタがバッ"
1663 "ファの先頭から I<size> バイトを越えて先に進もうとした場合だけである。"
1666 #: build/C/man3/fmemopen.3:130
1668 "If I<buf> is specified as NULL, then B<fmemopen>() dynamically allocates a "
1669 "buffer I<size> bytes long. This is useful for an application that wants to "
1670 "write data to a temporary buffer and then read it back again. The buffer is "
1671 "automatically freed when the stream is closed. Note that the caller has no "
1672 "way to obtain a pointer to the temporary buffer allocated by this call (but "
1673 "see B<open_memstream>() below)."
1675 "I<buf> に NULL が指定された場合、 B<fmemopen>() は動的に I<size> バイトの長"
1676 "さのバッファを確保する。 この方法は、一時バッファにデータの書き込みを行ってか"
1677 "ら、 その内容を再度読み出すようなアプリケーションで有用である。 このバッファ"
1678 "はストリームがクローズされるときに自動的に解放される。 呼び出し元からはこの関"
1679 "数が割り当てた一時バッファへのポインタ値を 知る方法は存在しない点に注意 (下記"
1680 "の B<open_memstream>() も参照)。"
1683 #: build/C/man3/fmemopen.3:141
1685 "The B<open_memstream>() function opens a stream for writing to a buffer. "
1686 "The buffer is dynamically allocated (as with B<malloc>(3)), and "
1687 "automatically grows as required. After closing the stream, the caller "
1688 "should B<free>(3) this buffer."
1690 "B<open_memstream>() 関数は、バッファへの書き込み用にストリームをオープンす"
1691 "る。 バッファは (B<malloc>(3) を使って) 動的に割り当てられ、必要に応じて自動"
1692 "的に伸長する。 ストリームをクローズした後で、呼び出し元はこのバッファを "
1693 "B<free>(3) すべきである。"
1696 #: build/C/man3/fmemopen.3:156
1698 "When the stream is closed (B<fclose>(3)) or flushed (B<fflush>(3)), the "
1699 "locations pointed to by I<ptr> and I<sizeloc> are updated to contain, "
1700 "respectively, a pointer to the buffer and the current size of the buffer. "
1701 "These values remain valid only as long as the caller performs no further "
1702 "output on the stream. If further output is performed, then the stream must "
1703 "again be flushed before trying to access these variables."
1705 "このストリームが クローズ (B<fclose>(3)) されたりフラッシュ (B<fflush>(3)) "
1706 "された時に、 I<ptr> と I<sizeloc> の値はそれぞれバッファへのポインタとそのサ"
1707 "イズに更新される。 これらの値は、呼び出し元がそのストリームに新たな書き込み"
1708 "を 行わない場合に限り有効である。 ストリームに書き込みを行った際には、これら"
1709 "の変数を参照する前に ストリームを再度フラッシュしなければならない。"
1712 #: build/C/man3/fmemopen.3:162
1714 "A null byte is maintained at the end of the buffer. This byte is I<not> "
1715 "included in the size value stored at I<sizeloc>."
1717 "バッファ末尾のヌルバイトは保持される。 このヌルバイトは I<sizeloc> に格納され"
1721 #: build/C/man3/fmemopen.3:170
1723 "The stream's file position can be changed with B<fseek>(3) or "
1724 "B<fseeko>(3). Moving the file position past the end of the data already "
1725 "written fills the intervening space with zeros."
1727 "ストリームのファイル位置は B<fseek>(3) や B<fseeko>(3) で変更できる。 すで"
1728 "にデータが書き込まれた領域の末尾より先にファイル位置を動かすと、 その間の領域"
1732 #: build/C/man3/fmemopen.3:176
1734 "The B<open_wmemstream>() is similar to B<open_memstream>(), but operates on "
1735 "wide characters instead of bytes."
1737 "B<open_wmemstream>() は B<open_memstream>() と同様だが、バイトではなくワイ"
1738 "ド文字に対して操作を行う点が異なる。"
1741 #: build/C/man3/fmemopen.3:188
1743 "Upon successful completion B<fmemopen>(), B<open_memstream>() and "
1744 "B<open_wmemstream>() return a I<FILE> pointer. Otherwise, NULL is returned "
1745 "and I<errno> is set to indicate the error."
1747 "成功して終了した場合には、 B<fmemopen>(), B<open_memstream>(), "
1748 "B<open_wmemstream>() は I<FILE> ポインタを返す。 失敗した場合は、 NULL を返"
1749 "し、 I<errno> にエラーを示す値をセットする。"
1752 #: build/C/man3/fmemopen.3:188 build/C/man3/fmtmsg.3:222
1753 #: build/C/man3/getline.3:137 build/C/man2/link.2:334 build/C/man2/open.2:1015
1754 #: build/C/man2/open_by_handle_at.2:349 build/C/man2/pipe.2:150
1755 #: build/C/man2/readlink.2:212 build/C/man2/readv.2:209
1756 #: build/C/man2/rename.2:397 build/C/man2/symlink.2:224
1757 #: build/C/man2/unlink.2:269
1763 #: build/C/man3/fmemopen.3:195
1765 "B<fmemopen>() and B<open_memstream>() were already available in glibc 1.0."
1766 "x. B<open_wmemstream>() is available since glibc 2.4."
1768 "B<fmemopen>() と B<open_memstream>() は glibc 1.0.x ですでに利用可能であっ"
1769 "た。 B<open_wmemstream>() は glibc 2.4 以降で利用可能である。"
1772 #: build/C/man3/fmemopen.3:199
1774 "POSIX.1-2008. These functions are not specified in POSIX.1-2001, and are "
1775 "not widely available on other systems."
1777 "POSIX.1-2008. これらの関数は POSIX.1-2001 では規定れていないが、 Linux 以外"
1780 #. http://austingroupbugs.net/view.php?id=396
1782 #: build/C/man3/fmemopen.3:207
1784 "POSIX.1-2008 specifies that \\(aqb\\(aq in I<mode> shall be ignored. "
1785 "However, Technical Corrigendum 1 adjusts the standard to allow "
1786 "implementation-specific treatment for this case, thus permitting the glibc "
1787 "treatment of \\(aqb\\(aq."
1789 "POSIX.1-2008 では I<mode> の \\(aqb\\(aq は無視されるべきだと規定されて\n"
1790 "いる。一方、Technical Corrigendum (正誤表) 1 では、I<mode> の\n"
1791 "\\(aqb\\(aq が指定された場合の扱いは実装依存であることを許容するように\n"
1792 "標準規格が修正されており、glibc の \\(aqb\\(aq の扱いは許されている。"
1795 #: build/C/man3/fmemopen.3:213
1797 "There is no file descriptor associated with the file stream returned by "
1798 "these functions (i.e., B<fileno>(3) will return an error if called on the "
1801 "これらの関数が返すファイルストリームに対応するファイル ディスクリプタはない "
1802 "(つまり、返されたストリームに対して B<fileno>(3) を呼び出すとエラーが返るこ"
1805 #. http://sourceware.org/bugzilla/show_bug.cgi?id=1996
1807 #: build/C/man3/fmemopen.3:220
1809 "In glibc before version 2.7, seeking past the end of a stream created by "
1810 "B<open_memstream>() does not enlarge the buffer; instead the B<fseek>(3) "
1811 "call fails, returning -1."
1813 "バージョン 2.7 より前の glibc では、 B<open_memstream>() で作成されたスト"
1814 "リームの末尾より先にファイル位置を動かしても、 バッファが伸長されず、 "
1815 "B<fseek>(3) が失敗し -1 が返る。"
1817 #. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=11216
1819 #: build/C/man3/fmemopen.3:231
1821 "If I<size> is specified as zero, B<fmemopen>() fails with the error "
1822 "B<EINVAL>. It would be more consistent if this case successfully created a "
1823 "stream that then returned end of file on the first attempt at reading. "
1824 "Furthermore, POSIX.1-2008 does not specify a failure for this case."
1826 "I<size> に 0 が指定された場合、 B<fmemopen>() はエラー B<EINVAL> で失敗\n"
1827 "する。この場合にはストリームの作成に成功して、最初の読み出しを行った際に\n"
1828 "EOF (end of file) が返される方が、ストリームの扱いの一貫性が増すだろう。\n"
1829 "また、 POSIX.1-2008 ではこの場合のエラーは規定されていない。"
1831 #. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=13152
1833 #: build/C/man3/fmemopen.3:239
1835 "Specifying append mode (\"a\" or \"a+\") for B<fmemopen>() sets the initial "
1836 "file position to the first null byte, but (if the file offset is reset to a "
1837 "location other than the end of the stream) does not force subsequent writes "
1838 "to append at the end of the stream."
1840 "B<fmemopen>() に追記モード (\"a\" や \"a+\") を指定すると、\n"
1841 "ファイル位置の初期値は最初のヌルバイトに設定されるが、(ファイル\n"
1842 "オフセットをストリームの末尾以外の位置に再設定した場合)それ以降の\n"
1843 "書き込みではストリームの末尾への追記が行われる訳ではない。"
1845 #. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=13151
1847 #: build/C/man3/fmemopen.3:255
1849 "If the I<mode> argument to B<fmemopen>() specifies append (\"a\" or \"a+"
1850 "\"), and the I<size> argument does not cover a null byte in I<buf>, then, "
1851 "according to POSIX.1-2008, the initial file position should be set to the "
1852 "next byte after the end of the buffer. However, in this case the glibc "
1853 "B<fmemopen>() sets the file position to -1."
1855 "B<fmemopen>() の I<mode> 引き数に追記モード (\"a\" や \"a+\") を指定し、\n"
1856 "I<size> 引き数で指定した範囲の I<buf> 内にヌルバイトがない場合、\n"
1857 "POSIX.1-2008 では、ファイル位置の初期値はバッファの末尾の直後の\n"
1858 "バイトに設定すべきとされている。しかし、glibc の B<fmemopen>() では\n"
1859 "この場合ファイル位置は -1 に設定される。"
1861 #. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12836
1863 #: build/C/man3/fmemopen.3:268
1865 "To specify binary mode for B<fmemopen>() the \\(aqb\\(aq must be the "
1866 "I<second> character in I<mode>. Thus, for example, \"wb+\" has the desired "
1867 "effect, but \"w+b\" does not. This is inconsistent with the treatment of "
1868 "I<mode> by B<fopen>(3)."
1870 "B<fmemopen>() でバイナリモードを指定するには、\n"
1871 "\\(aqb\\(aq は I<mode> の I<2 文字目> でなければならない。\n"
1872 "例えば、 \"wb+\" は意図通りの効果になるが、 \"w+b\" はそうではない。\n"
1873 "これは B<fopen>(3) の I<mode> の扱いとは異なる。"
1875 #. http://sourceware.org/bugzilla/show_bug.cgi?id=6544
1877 #: build/C/man3/fmemopen.3:276
1879 "The glibc 2.9 addition of \"binary\" mode for B<fmemopen>() silently "
1880 "changed the ABI: previously, B<fmemopen>() ignored \\(aqb\\(aq in I<mode>."
1882 "glibc 2.9 での B<fmemopen>() の「バイナリ」モードの追加は、\n"
1883 "ABI (Application Binary Interface) が黙って変更された。\n"
1884 "それ以前の B<fmemopen>() では I<mode> 内の \\(aqb\\(aq は無視されていた。"
1887 #: build/C/man3/fmemopen.3:276 build/C/man3/fmtmsg.3:256
1888 #: build/C/man3/fopencookie.3:247 build/C/man3/getline.3:146
1889 #: build/C/man2/open_by_handle_at.2:439 build/C/man2/pipe.2:161
1890 #: build/C/man3/printf.3:974 build/C/man2/readlink.2:256
1891 #: build/C/man2/readv.2:265 build/C/man3/scanf.3:704
1897 #: build/C/man3/fmemopen.3:286
1899 "The program below uses B<fmemopen>() to open an input buffer, and "
1900 "B<open_memstream>() to open a dynamically sized output buffer. The program "
1901 "scans its input string (taken from the program's first command-line "
1902 "argument) reading integers, and writes the squares of these integers to the "
1903 "output buffer. An example of the output produced by this program is the "
1906 "このプログラムは B<fmemopen>() を使って出力バッファをオープンし、 "
1907 "B<open_memstream>() を使って動的にサイズが変化する出力バッファをオープンして"
1908 "いる。 (プログラムの第一コマンドライン引き数から取った) 入力文字列を スキャン"
1909 "して整数を読み込み、これらの整数の二乗を出力バッファに書き出す。 このプログラ"
1913 #: build/C/man3/fmemopen.3:291
1916 "$B< ./a.out \\(aq1 23 43\\(aq>\n"
1917 "size=11; ptr=1 529 1849\n"
1919 "$B< ./a.out \\(aq1 23 43\\(aq>\n"
1920 "size=11; ptr=1 529 1849\n"
1923 #: build/C/man3/fmemopen.3:293 build/C/man3/fopencookie.3:271
1924 #: build/C/man2/pipe.2:177
1926 msgid "Program source"
1930 #: build/C/man3/fmemopen.3:300
1933 "#define _GNU_SOURCE\n"
1934 "#include E<lt>string.hE<gt>\n"
1935 "#include E<lt>stdio.hE<gt>\n"
1936 "#include E<lt>stdlib.hE<gt>\n"
1938 "#define _GNU_SOURCE\n"
1939 "#include E<lt>string.hE<gt>\n"
1940 "#include E<lt>stdio.hE<gt>\n"
1941 "#include E<lt>stdlib.hE<gt>\n"
1944 #: build/C/man3/fmemopen.3:303
1947 "#define handle_error(msg) \\e\n"
1948 " do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1950 "#define handle_error(msg) \\e\n"
1951 " do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
1954 #: build/C/man3/fmemopen.3:311
1958 "main(int argc, char *argv[])\n"
1960 " FILE *out, *in;\n"
1966 "main(int argc, char *argv[])\n"
1968 " FILE *out, *in;\n"
1974 #: build/C/man3/fmemopen.3:316
1977 " if (argc != 2) {\n"
1978 " fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
1979 " exit(EXIT_FAILURE);\n"
1982 " if (argc != 2) {\n"
1983 " fprintf(stderr, \"Usage: %s E<lt>fileE<gt>\\en\", argv[0]);\n"
1984 " exit(EXIT_FAILURE);\n"
1988 #: build/C/man3/fmemopen.3:320
1991 " in = fmemopen(argv[1], strlen(argv[1]), \"r\");\n"
1992 " if (in == NULL)\n"
1993 " handle_error(\"fmemopen\");\n"
1995 " in = fmemopen(argv[1], strlen(argv[1]), \"r\");\n"
1996 " if (in == NULL)\n"
1997 " handle_error(\"fmemopen\");\n"
2000 #: build/C/man3/fmemopen.3:324
2003 " out = open_memstream(&ptr, &size);\n"
2004 " if (out == NULL)\n"
2005 " handle_error(\"open_memstream\");\n"
2007 " out = open_memstream(&ptr, &size);\n"
2008 " if (out == NULL)\n"
2009 " handle_error(\"open_memstream\");\n"
2012 #: build/C/man3/fmemopen.3:329
2016 " s = fscanf(in, \"%d\", &v);\n"
2017 " if (s E<lt>= 0)\n"
2021 " s = fscanf(in, \"%d\", &v);\n"
2022 " if (s E<lt>= 0)\n"
2026 #: build/C/man3/fmemopen.3:340
2029 " s = fprintf(out, \"%d \", v * v);\n"
2031 " handle_error(\"fprintf\");\n"
2035 " printf(\"size=%zu; ptr=%s\\en\", size, ptr);\n"
2037 " exit(EXIT_SUCCESS);\n"
2040 " s = fprintf(out, \"%d \", v * v);\n"
2042 " handle_error(\"fprintf\");\n"
2046 " printf(\"size=%zu; ptr=%s\\en\", size, ptr);\n"
2048 " exit(EXIT_SUCCESS);\n"
2052 #: build/C/man3/fmemopen.3:344
2053 msgid "B<fopen>(3), B<fopencookie>(3)"
2054 msgstr "B<fopen>(3), B<fopencookie>(3)"
2057 #: build/C/man3/fmtmsg.3:13
2063 #: build/C/man3/fmtmsg.3:16
2064 msgid "fmtmsg - print formatted error messages"
2065 msgstr "fmtmsg - 整形されたエラーメッセージを表示する"
2068 #: build/C/man3/fmtmsg.3:19
2070 msgid "B<#include E<lt>fmtmsg.hE<gt>>\n"
2071 msgstr "B<#include E<lt>fmtmsg.hE<gt>>\n"
2074 #: build/C/man3/fmtmsg.3:21
2076 msgid "B<int fmtmsg(long >I<classification>B<, const char *>I<label>B<,>\n"
2077 msgstr "B<int fmtmsg(long >I<classification>B<, const char *>I<label>B<,>\n"
2080 #: build/C/man3/fmtmsg.3:23
2082 msgid "B< int >I<severity>B<, const char *>I<text>B<,>\n"
2083 msgstr "B< int >I<severity>B<, const char *>I<text>B<,>\n"
2086 #: build/C/man3/fmtmsg.3:25
2088 msgid "B< const char *>I<action>B<, const char *>I<tag>B<);>\n"
2089 msgstr "B< const char *>I<action>B<, const char *>I<tag>B<);>\n"
2092 #: build/C/man3/fmtmsg.3:36
2094 "This function displays a message described by its arguments on the "
2095 "device(s) specified in the I<classification> argument. For messages "
2096 "written to I<stderr>, the format depends on the B<MSGVERB> environment "
2099 "この関数は、引き数で記述されたメッセージを、 I<classification> 引き数で指定さ"
2100 "れたデバイス上に表示する。 I<stderr> に書き出されるメッセージのフォーマット"
2101 "は、 B<MSGVERB> 環境変数に依存する。"
2104 #: build/C/man3/fmtmsg.3:43
2106 "The I<label> argument identifies the source of the message. The string must "
2107 "consist of two colon separated parts where the first part has not more than "
2108 "10 and the second part not more than 14 characters."
2110 "I<label> 引き数はメッセージの発生源を識別する。 この文字列はコロンで区切られ"
2111 "た 2 つの部分から構成されていなければならない。 1 つ目の部分は 10 文字以内で"
2112 "なければならず、 2 つ目の部分は 14 文字以内でなければならない。"
2115 #: build/C/man3/fmtmsg.3:47
2116 msgid "The I<text> argument describes the condition of the error."
2117 msgstr "I<text> 引き数にはエラー条件を記述する。"
2120 #: build/C/man3/fmtmsg.3:52
2122 "The I<action> argument describes possible steps to recover from the error. "
2123 "If it is printed, it is prefixed by \"TO FIX: \"."
2125 "I<action> 引き数にはエラーから回復するために利用可能なステップを記述する。 こ"
2126 "れが表示される場合、\"TO FIX: \" が前に付く。"
2129 #: build/C/man3/fmtmsg.3:60
2131 "The I<tag> argument is a reference to the online documentation where more "
2132 "information can be found. It should contain the I<label> value and a unique "
2133 "identification number."
2135 "I<tag> 引き数はより多くの情報を見つけるためのオンラインドキュメントへの参照で"
2136 "ある。 これは I<label> 値とユニークな識別番号を含んでいるべきである。"
2139 #: build/C/man3/fmtmsg.3:60
2141 msgid "Dummy arguments"
2145 #: build/C/man3/fmtmsg.3:79
2147 "Each of the arguments can have a dummy value. The dummy classification "
2148 "value B<MM_NULLMC> (0L) does not specify any output, so nothing is printed. "
2149 "The dummy severity value B<NO_SEV> (0) says that no severity is supplied. "
2150 "The values B<MM_NULLLBL>, B<MM_NULLTXT>, B<MM_NULLACT>, B<MM_NULLTAG> are "
2151 "synonyms for I<((char\\ *)\\ 0)>, the empty string, and B<MM_NULLSEV> is a "
2152 "synonym for B<NO_SEV>."
2154 "各引き数にはダミーの値を入れることができる。 ダミーの I<classification> 値 "
2155 "B<MM_NULLMC> (0L) は出力を何も指定しない。そのため何も表示されない。 ダミー"
2156 "の I<severity> 値 B<NO_SEV> (0) は重大度 (severity) が与えられていないことを"
2157 "表す。 値 B<MM_NULLLBL>, B<MM_NULLTXT>, B<MM_NULLACT>, B<MM_NULLTAG> は "
2158 "I<((char\\ *)\\ 0)> と空文字列の別名であり、 B<MM_NULLSEV> は B<NO_SEV> の別"
2162 #: build/C/man3/fmtmsg.3:79
2164 msgid "The classification argument"
2165 msgstr "classification 引き数"
2168 #: build/C/man3/fmtmsg.3:83
2170 "The I<classification> argument is the sum of values describing 4 types of "
2172 msgstr "I<classification> 引き数は 4 種類の情報を記述する値の和である。"
2175 #: build/C/man3/fmtmsg.3:86
2176 msgid "The first value defines the output channel."
2177 msgstr "最初の値は出力チャンネルを定義する。"
2180 #: build/C/man3/fmtmsg.3:86
2183 msgstr "B<MM_PRINT>"
2186 #: build/C/man3/fmtmsg.3:90
2187 msgid "Output to I<stderr>."
2188 msgstr "I<stderr> に出力する。"
2191 #: build/C/man3/fmtmsg.3:90
2193 msgid "B<MM_CONSOLE>"
2194 msgstr "B<MM_CONSOLE>"
2197 #: build/C/man3/fmtmsg.3:93
2198 msgid "Output to the system console."
2199 msgstr "システムコンソールに出力する。"
2202 #: build/C/man3/fmtmsg.3:93
2204 msgid "B<MM_PRINT | MM_CONSOLE>"
2205 msgstr "B<MM_PRINT | MM_CONSOLE>"
2208 #: build/C/man3/fmtmsg.3:96
2209 msgid "Output to both."
2213 #: build/C/man3/fmtmsg.3:98
2214 msgid "The second value is the source of the error:"
2215 msgstr "2 番目の値はエラーの発生源である:"
2218 #: build/C/man3/fmtmsg.3:98
2224 #: build/C/man3/fmtmsg.3:101
2225 msgid "A hardware error occurred."
2226 msgstr "ハードウェアエラーが起こった。"
2229 #: build/C/man3/fmtmsg.3:101
2235 #: build/C/man3/fmtmsg.3:104
2236 msgid "A firmware error occurred."
2237 msgstr "ファームウェアエラーが起こった。"
2240 #: build/C/man3/fmtmsg.3:104
2246 #: build/C/man3/fmtmsg.3:107
2247 msgid "A software error occurred."
2248 msgstr "ソフトウェアエラーが起こった。"
2251 #: build/C/man3/fmtmsg.3:109
2252 msgid "The third value encodes the detector of the problem:"
2253 msgstr "3 番目の値は問題の検知を行ったものをエンコードする:"
2256 #: build/C/man3/fmtmsg.3:109
2262 #: build/C/man3/fmtmsg.3:112
2263 msgid "It is detected by an application."
2264 msgstr "アプリケーションによって検知された。"
2267 #: build/C/man3/fmtmsg.3:112
2273 #: build/C/man3/fmtmsg.3:115
2274 msgid "It is detected by a utility."
2275 msgstr "ユーティリティによって検知された。"
2278 #: build/C/man3/fmtmsg.3:115
2281 msgstr "B<MM_OPSYS>"
2284 #: build/C/man3/fmtmsg.3:118
2285 msgid "It is detected by the operating system."
2286 msgstr "オペレーティングシステムによって検知された。"
2289 #: build/C/man3/fmtmsg.3:120
2290 msgid "The fourth value shows the severity of the incident:"
2291 msgstr "4 番目の値は問題の重大度を表す:"
2294 #: build/C/man3/fmtmsg.3:120
2296 msgid "B<MM_RECOVER>"
2297 msgstr "B<MM_RECOVER>"
2300 #: build/C/man3/fmtmsg.3:123
2301 msgid "It is a recoverable error."
2302 msgstr "回復可能なエラーである。"
2305 #: build/C/man3/fmtmsg.3:123
2307 msgid "B<MM_NRECOV>"
2308 msgstr "B<MM_NRECOV>"
2311 #: build/C/man3/fmtmsg.3:126
2312 msgid "It is a nonrecoverable error."
2313 msgstr "回復不可能なエラーである。"
2316 #: build/C/man3/fmtmsg.3:126
2318 msgid "The severity argument"
2319 msgstr "severity 引き数"
2322 #: build/C/man3/fmtmsg.3:130
2323 msgid "The I<severity> argument can take one of the following values:"
2324 msgstr "I<severity> 引き数は以下の 1 つの値をとることができる。"
2327 #: build/C/man3/fmtmsg.3:130
2330 msgstr "B<MM_NOSEV>"
2333 #: build/C/man3/fmtmsg.3:133
2334 msgid "No severity is printed."
2335 msgstr "重大度は表示されない。"
2338 #: build/C/man3/fmtmsg.3:133
2344 #: build/C/man3/fmtmsg.3:136
2345 msgid "This value is printed as HALT."
2346 msgstr "この値は HALT として表示される。"
2349 #: build/C/man3/fmtmsg.3:136
2352 msgstr "B<MM_ERROR>"
2355 #: build/C/man3/fmtmsg.3:139
2356 msgid "This value is printed as ERROR."
2357 msgstr "この値は ERROR として表示される。"
2360 #: build/C/man3/fmtmsg.3:139
2362 msgid "B<MM_WARNING>"
2363 msgstr "B<MM_WARNING>"
2366 #: build/C/man3/fmtmsg.3:142
2367 msgid "This value is printed as WARNING."
2368 msgstr "この値は WARNING として表示される。"
2371 #: build/C/man3/fmtmsg.3:142
2377 #: build/C/man3/fmtmsg.3:145
2378 msgid "This value is printed as INFO."
2379 msgstr "この値は INFO として表示される。"
2382 #: build/C/man3/fmtmsg.3:152
2384 "The numeric values are between 0 and 4. Using B<addseverity>(3) or the "
2385 "environment variable B<SEV_LEVEL> you can add more levels and strings to "
2388 "数値の場合は 0 から 4 である。 B<addseverity>(3) または環境変数 "
2389 "B<SEV_LEVEL> を使うことにより、表示するレベルと文字列を更に追加できる。"
2392 #: build/C/man3/fmtmsg.3:154
2393 msgid "The function can return 4 values:"
2394 msgstr "関数は 4 つの値を返す:"
2397 #: build/C/man3/fmtmsg.3:154
2403 #: build/C/man3/fmtmsg.3:157
2404 msgid "Everything went smooth."
2408 #: build/C/man3/fmtmsg.3:157
2411 msgstr "B<MM_NOTOK>"
2414 #: build/C/man3/fmtmsg.3:160
2415 msgid "Complete failure."
2419 #: build/C/man3/fmtmsg.3:160
2422 msgstr "B<MM_NOMSG>"
2425 #: build/C/man3/fmtmsg.3:164
2426 msgid "Error writing to I<stderr>."
2427 msgstr "I<stderr> に書き込むときにエラーが起こった。"
2430 #: build/C/man3/fmtmsg.3:164
2433 msgstr "B<MM_NOCON>"
2436 #: build/C/man3/fmtmsg.3:167
2437 msgid "Error writing to the console."
2438 msgstr "コンソールに書き込むときにエラーが起こった。"
2441 #: build/C/man3/fmtmsg.3:167
2447 #: build/C/man3/fmtmsg.3:178
2449 "The environment variable B<MSGVERB> (\"message verbosity\") can be used to "
2450 "suppress parts of the output to I<stderr>. (It does not influence output to "
2451 "the console.) When this variable is defined, is non-NULL, and is a colon-"
2452 "separated list of valid keywords, then only the parts of the message "
2453 "corresponding to these keywords is printed. Valid keywords are \"label\", "
2454 "\"severity\", \"text\", \"action\" and \"tag\"."
2456 "環境変数 B<MSGVERB> (\"message verbosity\") は I<stderr> への出力の一部を抑制"
2457 "するのに使うことができる。 (コンソールへの出力には影響しない。) この変数が定"
2458 "義されて、NULL でなく、 コロンで区切られた有効なキーワードのリストである場"
2459 "合、 キーワードに対応するメッセージの一部のみが表示される。 有効なキーワード"
2460 "は \"label\", \"severity\", \"text\", \"action\", \"tag\" である。"
2463 #: build/C/man3/fmtmsg.3:190
2465 "The environment variable B<SEV_LEVEL> can be used to introduce new severity "
2466 "levels. By default, only the five severity levels described above are "
2467 "available. Any other numeric value would make B<fmtmsg>() print nothing. "
2468 "If the user puts B<SEV_LEVEL> with a format like"
2470 "環境変数 B<SEV_LEVEL> は新しい重大度レベルを導入するのに使用できる。 デフォル"
2471 "トでは、上記の 5 つの重大度レベルのみが利用可能である。 他の数値の場合、 "
2472 "B<fmtmsg>() は何も表示しない。 B<fmtmsg>() を初めて呼び出す前に、ユーザが "
2476 #: build/C/man3/fmtmsg.3:193
2477 msgid "SEV_LEVEL=[description[:description[:...]]]"
2478 msgstr "SEV_LEVEL=[description[:description[:...]]]"
2481 #: build/C/man3/fmtmsg.3:198
2483 "in the environment of the process before the first call to B<fmtmsg>(), "
2484 "where each description is of the form"
2486 "のような形式でプロセスの環境に設定すると、 B<fmtmsg>() は (標準のレベル 0-4 "
2487 "に加えて) level に指定された値も受け付け、 そのようなレベルの問題が発生すると"
2488 "指定された printstring を表示する。 各 description は"
2491 #: build/C/man3/fmtmsg.3:201
2492 msgid "severity-keyword,level,printstring"
2493 msgstr "severity-keyword,level,printstring"
2496 #: build/C/man3/fmtmsg.3:208
2498 "then B<fmtmsg>() will also accept the indicated values for the level (in "
2499 "addition to the standard levels 0-4), and use the indicated printstring when "
2500 "such a level occurs."
2504 #: build/C/man3/fmtmsg.3:222
2506 "The severity-keyword part is not used by B<fmtmsg>() but it has to be "
2507 "present. The level part is a string representation of a number. The "
2508 "numeric value must be a number greater than 4. This value must be used in "
2509 "the severity argument of B<fmtmsg>() to select this class. It is not "
2510 "possible to overwrite any of the predefined classes. The printstring is the "
2511 "string printed when a message of this class is processed by B<fmtmsg>()."
2513 "severity-keyword 部は B<fmtmsg>() に使用されないが、存在しなければならな"
2514 "い。 level 部は数値を文字列で表したものである。 数値は 4 より大きい値でなけれ"
2515 "ばならない。 この値は B<fmtmsg>() の severity 引き数で使用されなければなら"
2516 "ず、この重大度を選択する。 前もって宣言された重大度を上書きすることはできな"
2517 "い。 printstring は、 この重大度のメッセージが B<fmtmsg>() によって生成され"
2521 #: build/C/man3/fmtmsg.3:225
2522 msgid "B<fmtmsg>() is provided in glibc since version 2.1."
2523 msgstr "B<fmtmsg>() は、バージョン 2.1 以降の glibc で提供されている。"
2526 #: build/C/man3/fmtmsg.3:231
2528 "Before glibc 2.16, the B<fmtmsg>() function uses a static variable that is "
2529 "not protected, so it is not thread-safe."
2531 "glibc 2.16 より前のバージョンでは、 B<fmtmsg>() 関数は、 保護されていない静的"
2532 "な変数を使うため、 スレッドセーフではない。"
2534 #. Modified in commit 7724defcf8873116fe4efab256596861eef21a94
2536 #: build/C/man3/fmtmsg.3:237
2538 "Since glibc 2.16, the B<fmtmsg>() function uses a lock to protect the "
2539 "static variable, so it is thread-safe."
2541 "glibc 2.16 以降では、 B<fmtmsg>() 関数はロックを使って静的な変数を保護してお"
2545 #: build/C/man3/fmtmsg.3:252
2547 "The functions B<fmtmsg>() and B<addseverity>(3), and environment variables "
2548 "B<MSGVERB> and B<SEV_LEVEL> come from System V. The function B<fmtmsg>() "
2549 "and the environment variable B<MSGVERB> are described in POSIX.1-2001."
2551 "関数 B<fmtmsg>() と B<addseverity>(3) と環境変数 B<MSGVERB> と "
2552 "B<SEV_LEVEL> は System V に由来している。 関数 B<fmtmsg>() と環境変数 "
2553 "B<MSGVERB> は POSIX.1-2001 に記述されている。"
2556 #: build/C/man3/fmtmsg.3:256
2558 "System V and UnixWare man pages tell us that these functions have been "
2559 "replaced by \"pfmt() and addsev()\" or by \"pfmt(), vpfmt(), lfmt(), and "
2560 "vlfmt()\", and will be removed later."
2562 "System V と UnixWare の man ページには、 「これらの関数は \"pfmt() と "
2563 "addsev()\" または \"pfmt(), vpfmt(), lfmt(), vlfmt()\" で置き換えられてお"
2564 "り、 将来は削除される予定である」と書かれている。"
2567 #: build/C/man3/fmtmsg.3:261
2570 "#include E<lt>stdio.hE<gt>\n"
2571 "#include E<lt>stdlib.hE<gt>\n"
2572 "#include E<lt>fmtmsg.hE<gt>\n"
2574 "#include E<lt>stdio.hE<gt>\n"
2575 "#include E<lt>stdlib.hE<gt>\n"
2576 "#include E<lt>fmtmsg.hE<gt>\n"
2579 #: build/C/man3/fmtmsg.3:267
2585 " long class = MM_PRINT | MM_SOFT | MM_OPSYS | MM_RECOVER;\n"
2591 " long class = MM_PRINT | MM_SOFT | MM_OPSYS | MM_RECOVER;\n"
2595 #: build/C/man3/fmtmsg.3:288
2598 " err = fmtmsg(class, \"util-linux:mount\", MM_ERROR,\n"
2599 " \"unknown mount option\", \"See mount(8).\",\n"
2600 " \"util-linux:mount:017\");\n"
2605 " printf(\"Nothing printed\\en\");\n"
2608 " printf(\"Nothing printed to stderr\\en\");\n"
2611 " printf(\"No console output\\en\");\n"
2614 " printf(\"Unknown error from fmtmsg()\\en\");\n"
2616 " exit(EXIT_SUCCESS);\n"
2619 " err = fmtmsg(class, \"util-linux:mount\", MM_ERROR,\n"
2620 " \"unknown mount option\", \"See mount(8).\",\n"
2621 " \"util-linux:mount:017\");\n"
2626 " printf(\"Nothing printed\\en\");\n"
2629 " printf(\"Nothing printed to stderr\\en\");\n"
2632 " printf(\"No console output\\en\");\n"
2635 " printf(\"Unknown error from fmtmsg()\\en\");\n"
2637 " exit(EXIT_SUCCESS);\n"
2641 #: build/C/man3/fmtmsg.3:291
2642 msgid "The output should be:"
2646 #: build/C/man3/fmtmsg.3:295
2649 " util-linux:mount: ERROR: unknown mount option\n"
2650 " TO FIX: See mount(8). util-linux:mount:017\n"
2652 " util-linux:mount: ERROR: unknown mount option\n"
2653 " TO FIX: See mount(8). util-linux:mount:017\n"
2656 #: build/C/man3/fmtmsg.3:298
2661 #: build/C/man3/fmtmsg.3:301
2663 msgid " MSGVERB=text:action; export MSGVERB\n"
2664 msgstr " MSGVERB=text:action; export MSGVERB\n"
2667 #: build/C/man3/fmtmsg.3:304
2668 msgid "the output becomes:"
2669 msgstr "を実行すると、次のようになる。"
2672 #: build/C/man3/fmtmsg.3:308
2675 " unknown mount option\n"
2676 " TO FIX: See mount(8).\n"
2678 " unknown mount option\n"
2679 " TO FIX: See mount(8).\n"
2682 #: build/C/man3/fmtmsg.3:312
2683 msgid "B<addseverity>(3), B<perror>(3)"
2684 msgstr "B<addseverity>(3), B<perror>(3)"
2687 #: build/C/man3/fopen.3:44
2693 #: build/C/man3/fopen.3:44
2699 #: build/C/man3/fopen.3:47
2700 msgid "fopen, fdopen, freopen - stream open functions"
2701 msgstr "fopen, fdopen, freopen - ストリームを開く関数"
2704 #: build/C/man3/fopen.3:52
2706 msgid "B<FILE *fopen(const char *>I<path>B<, const char *>I<mode>B<);>\n"
2707 msgstr "B<FILE *fopen(const char *>I<path>B<, const char *>I<mode>B<);>\n"
2710 #: build/C/man3/fopen.3:54
2712 msgid "B<FILE *fdopen(int >I<fd>B<, const char *>I<mode>B<);>\n"
2713 msgstr "B<FILE *fdopen(int >I<fd>B<, const char *>I<mode>B<);>\n"
2716 #: build/C/man3/fopen.3:56
2718 msgid "B<FILE *freopen(const char *>I<path>B<, const char *>I<mode>B<, FILE *>I<stream>B<);>\n"
2719 msgstr "B<FILE *freopen(const char *>I<path>B<, const char *>I<mode>B<, FILE *>I<stream>B<);>\n"
2722 #: build/C/man3/fopen.3:65
2724 "B<fdopen>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
2726 "B<fdopen>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
2729 #: build/C/man3/fopen.3:71
2731 "The B<fopen>() function opens the file whose name is the string pointed to "
2732 "by I<path> and associates a stream with it."
2734 "B<fopen>() 関数は、 I<path> で指定された名前のファイルを開き、ストリームと結"
2738 #: build/C/man3/fopen.3:76
2740 "The argument I<mode> points to a string beginning with one of the following "
2741 "sequences (possibly followed by additional characters, as described below):"
2743 "引数 I<mode> は、以下に続く文字のひとつから始まる文字列へのポインタであ\n"
2744 "る (以下の述べる、追加の文字が後に続くこともある):"
2747 #: build/C/man3/fopen.3:76
2753 #: build/C/man3/fopen.3:80
2755 "Open text file for reading. The stream is positioned at the beginning of "
2758 "テキストファイルを読み出すために開く。 ストリームはファイルの先頭に位置され"
2762 #: build/C/man3/fopen.3:80
2768 #: build/C/man3/fopen.3:84
2770 "Open for reading and writing. The stream is positioned at the beginning of "
2773 "読み出しおよび書き込みするために開く。 ストリームはファイルの先頭に位置され"
2777 #: build/C/man3/fopen.3:84
2783 #: build/C/man3/fopen.3:88
2785 "Truncate file to zero length or create text file for writing. The stream is "
2786 "positioned at the beginning of the file."
2788 "ファイルを書き込みのために開く。 ファイルが既に存在する場合には長さゼロに切り"
2789 "詰める。 ファイルがなかった場合には新たに作成する。 ストリームはファイルの先"
2793 #: build/C/man3/fopen.3:88
2799 #: build/C/man3/fopen.3:94
2801 "Open for reading and writing. The file is created if it does not exist, "
2802 "otherwise it is truncated. The stream is positioned at the beginning of the "
2805 "読み出しおよび書き込みのために開く。 ファイルが存在していない場合には新たに作"
2806 "成する。 存在している場合には長さゼロに切り詰められる。 ストリームはファイル"
2810 #: build/C/man3/fopen.3:94 build/C/man3/scanf.3:447
2816 #: build/C/man3/fopen.3:99
2818 "Open for appending (writing at end of file). The file is created if it does "
2819 "not exist. The stream is positioned at the end of the file."
2821 "追加 (ファイルの最後に書き込む) のために開く。 ファイルが存在していない場合に"
2822 "は新たに作成する。 ストリームはファイルの最後に位置される。"
2825 #: build/C/man3/fopen.3:99
2831 #: build/C/man3/fopen.3:105
2833 "Open for reading and appending (writing at end of file). The file is "
2834 "created if it does not exist. The initial file position for reading is at "
2835 "the beginning of the file, but output is always appended to the end of the "
2838 "読み出しおよび追加 (ファイルの最後に書き込む) のために開く。 ファイルが存在し"
2839 "ていない場合には新たに作成する。 読み出しの初期ファイル位置はファイルの先頭で"
2840 "あるが、 書き込みは常にファイルの最後に追加される。"
2843 #: build/C/man3/fopen.3:118
2845 "The I<mode> string can also include the letter \\(aqb\\(aq either as a last "
2846 "character or as a character between the characters in any of the two-"
2847 "character strings described above. This is strictly for compatibility with "
2848 "C89 and has no effect; the \\(aqb\\(aq is ignored on all POSIX conforming "
2849 "systems, including Linux. (Other systems may treat text files and binary "
2850 "files differently, and adding the \\(aqb\\(aq may be a good idea if you do I/"
2851 "O to a binary file and expect that your program may be ported to non-UNIX "
2854 "I<mode> 文字列には文字 \\(aqb\\(aq を追加指定することができ、 I<mode> 文字列"
2855 "の最後の文字として指定する。 上記のうち 2 文字のモードの場合には 2 つの文字の"
2856 "間に指定することもできる。 これは C89 との互換性のためだけに用意された もので"
2857 "あり、関数の実行に対してはいかなる影響も持たない。 すなわち、Linux を含む全て"
2858 "の POSIX 準拠システムでは、 この \\(aqb\\(aq は無視される。 (その他のシステム"
2859 "ではテキストファイルとバイナリファイルを別々に扱うものもあるので、 もしバイナ"
2860 "リファイルの入出力を行い、 そのプログラムが非 UNIX 環境へ移植されると予測する"
2861 "なら、 \\(aqb\\(aqを付けておくのは良い考えである)"
2864 #: build/C/man3/fopen.3:121
2865 msgid "See NOTES below for details of glibc extensions for I<mode>."
2866 msgstr "I<mode> の glibc による拡張の詳細については下記の「注意」を参照。"
2869 #: build/C/man3/fopen.3:126
2871 "Any created files will have mode B<S_IRUSR> | B<S_IWUSR> | B<S_IRGRP> | "
2872 "B<S_IWGRP> | B<S_IROTH> | B<S_IWOTH> (0666), as modified by the process's "
2873 "umask value (see B<umask>(2))."
2875 "すべての生成されたファイルは、 B<S_IRUSR> | B<S_IWUSR> | B<S_IRGRP> | "
2876 "B<S_IWGRP> | B<S_IROTH> | B<S_IWOTH> (0666) のモードを そのプロセスの umask "
2877 "値によって修正したモードを持つ (B<umask>(2) を見よ)。"
2880 #: build/C/man3/fopen.3:141
2882 "Reads and writes may be intermixed on read/write streams in any order. Note "
2883 "that ANSI C requires that a file positioning function intervene between "
2884 "output and input, unless an input operation encounters end-of-file. (If "
2885 "this condition is not met, then a read is allowed to return the result of "
2886 "writes other than the most recent.) Therefore it is good practice (and "
2887 "indeed sometimes necessary under Linux) to put an B<fseek>(3) or "
2888 "B<fgetpos>(3) operation between write and read operations on such a "
2889 "stream. This operation may be an apparent no-op (as in I<fseek(..., 0L, "
2890 "SEEK_CUR)> called for its synchronizing side effect)."
2892 "読み出し/書き込みストリームに対しては任意の順序で読み書きを行うことができ"
2893 "る。 ただし ANSI C では、 (入力操作がファイルの末尾に到達した場合を除いて) "
2894 "出力と入力の間にはファイルの位置決め関数を 挟まなければならないことになってい"
2895 "ることに注意されたい (この条件を満足しない場合には、読み込み操作は、 最後に書"
2896 "き込まれたものでなく、以前に書き込まれた 値を返すことを許されている)。 した"
2897 "がって、このようなストリームでの読み書き操作の間には B<fseek>(3) または "
2898 "B<fgetpos>(3) 操作を挟んでおくと良いだろう (Linux では本当に必要となることも"
2899 "ときどきある)。 この操作は見かけ上何もしない操作 (no-op) でも良い (例えば "
2900 "I<fseek(..., 0L, SEEK_CUR)> を その副次的効果である同期のためだけに呼べば良"
2904 #: build/C/man3/fopen.3:146
2906 "Opening a file in append mode (B<a> as the first character of I<mode>) "
2907 "causes all subsequent write operations to this stream to occur at end-of-"
2908 "file, as if preceded the call:"
2910 "ファイルを追加モード (I<mode> の最初の文字を B<a> にする) で開くと、\n"
2911 "このストリームに対する書き込み操作は全て (先に以下の呼び出しを行った\n"
2912 "かのように) ファイルの末尾で行われる。"
2915 #: build/C/man3/fopen.3:149
2917 msgid " fseek(stream, 0, SEEK_END);\n"
2918 msgstr " fseek(stream, 0, SEEK_END);\n"
2921 #: build/C/man3/fopen.3:171
2923 "The B<fdopen>() function associates a stream with the existing file "
2924 "descriptor, I<fd>. The I<mode> of the stream (one of the values \"r\", \"r+"
2925 "\", \"w\", \"w+\", \"a\", \"a+\") must be compatible with the mode of the "
2926 "file descriptor. The file position indicator of the new stream is set to "
2927 "that belonging to I<fd>, and the error and end-of-file indicators are "
2928 "cleared. Modes \"w\" or \"w+\" do not cause truncation of the file. The "
2929 "file descriptor is not dup'ed, and will be closed when the stream created by "
2930 "B<fdopen>() is closed. The result of applying B<fdopen>() to a shared "
2931 "memory object is undefined."
2933 "B<fdopen>() 関数は、既存のファイル記述子 I<fd> にストリームを結びつける。 ス"
2934 "トリームの I<mode> (\"r\", \"r+\", \"w\", \"w+\", \"a\", \"a+\" のいずれか) "
2935 "は ファイル記述子のモードと互換のものでなければならない。 新しいストリームの"
2936 "ファイル位置指示子は I<fd> に属している値に設定される。 error と end-of-file "
2937 "の各指示子はクリアされる。 \"w\" および \"w+\" モードでのファイルの切り詰めは"
2938 "行われない。 ファイル記述子の複製は行なわれない。 B<fdopen>() で作成されたス"
2939 "トリームが閉じられたときにファイル記述子も 閉じられる。 共有メモリのオブジェ"
2940 "クトへ B<fdopen>() を行ったときの結果は定義されていない。"
2943 #: build/C/man3/fopen.3:189
2945 "The B<freopen>() function opens the file whose name is the string pointed "
2946 "to by I<path> and associates the stream pointed to by I<stream> with it. "
2947 "The original stream (if it exists) is closed. The I<mode> argument is used "
2948 "just as in the B<fopen>() function. The primary use of the B<freopen>() "
2949 "function is to change the file associated with a standard text stream "
2950 "(I<stderr>, I<stdin>, or I<stdout>)."
2952 "B<freopen>() 関数は I<path> で名前が指定されたファイルを開き、 I<stream> で"
2953 "指定されたストリームに、そのファイルを結びつける。 もとのストリームは (もし存"
2954 "在する場合には) 閉じられる。 I<mode> 引数は B<fopen>() 関数と同じ形で使われ"
2955 "る。 B<freopen>() 関数の主な用途は、標準テキストストリーム (I<stderr>, "
2956 "I<stdin>, I<stdout>) と対応付けられているファイルを変更することである。"
2959 #: build/C/man3/fopen.3:201
2961 "Upon successful completion B<fopen>(), B<fdopen>() and B<freopen>() return "
2962 "a I<FILE> pointer. Otherwise, NULL is returned and I<errno> is set to "
2963 "indicate the error."
2965 "B<fopen>(), B<fdopen>(), B<freopen>() は成功すると I<FILE> 型のポインタを返"
2966 "す。 失敗すると NULL が返され、 I<errno> がエラーを示す値にセットされる。"
2969 #: build/C/man3/fopen.3:202 build/C/man3/fseek.3:142
2970 #: build/C/man3/getline.3:128 build/C/man2/link.2:282 build/C/man2/llseek.2:77
2971 #: build/C/man2/lseek.2:192 build/C/man2/open.2:832 build/C/man2/open.2:840
2972 #: build/C/man2/open.2:845 build/C/man2/open_by_handle_at.2:273
2973 #: build/C/man2/open_by_handle_at.2:277 build/C/man2/open_by_handle_at.2:325
2974 #: build/C/man2/pipe.2:139 build/C/man2/read.2:126 build/C/man2/read.2:137
2975 #: build/C/man2/readlink.2:169 build/C/man2/readlink.2:178
2976 #: build/C/man2/readv.2:200 build/C/man2/rename.2:251
2977 #: build/C/man2/rename.2:376 build/C/man2/rename.2:385 build/C/man2/rmdir.2:67
2978 #: build/C/man3/scanf.3:565 build/C/man2/unlink.2:252 build/C/man2/write.2:154
2984 #: build/C/man3/fopen.3:212
2986 "The I<mode> provided to B<fopen>(), B<fdopen>(), or B<freopen>() was "
2989 "B<fopen>(), B<fdopen>(), B<freopen>() で与えられた I<mode> が不適切である。"
2992 #: build/C/man3/fopen.3:222
2994 "The B<fopen>(), B<fdopen>() and B<freopen>() functions may also fail and "
2995 "set I<errno> for any of the errors specified for the routine B<malloc>(3)."
2997 "B<fopen>(), B<fdopen>(), B<freopen>() 関数は B<malloc>(3) ルーチンで規定さ"
2998 "れているエラーでも失敗することがあり、 その時は対応する値に I<errno> をセット"
3002 #: build/C/man3/fopen.3:229
3004 "The B<fopen>() function may also fail and set I<errno> for any of the "
3005 "errors specified for the routine B<open>(2)."
3007 "B<fopen>() 関数は B<open>(2) ルーチンで規定されているエラーでも失敗すること"
3008 "があり、 その時は対応する値に I<errno> をセットする。"
3011 #: build/C/man3/fopen.3:236
3013 "The B<fdopen>() function may also fail and set I<errno> for any of the "
3014 "errors specified for the routine B<fcntl>(2)."
3016 "B<fdopen>() 関数は B<fcntl>(2) ルーチンで規定されているエラーでも失敗するこ"
3017 "とがあり、 その時は対応する値に I<errno> をセットする。"
3020 #: build/C/man3/fopen.3:246
3022 "The B<freopen>() function may also fail and set I<errno> for any of the "
3023 "errors specified for the routines B<open>(2), B<fclose>(3) and B<fflush>(3)."
3025 "B<freopen>() 関数は B<open>(2), B<fclose>(3), B<fflush>(3) 各ルーチンで規定"
3026 "されているエラーでも失敗することがあり、 その時は対応する値に I<errno> をセッ"
3030 #: build/C/man3/fopen.3:255
3032 "The B<fopen>() and B<freopen>() functions conform to C89. The "
3033 "B<fdopen>() function conforms to POSIX.1-1990."
3035 "B<fopen>() 関数と B<freopen>() 関数は C89に準拠している。 B<fdopen>() 関数"
3036 "は POSIX.1-1990 に準拠している。"
3039 #: build/C/man3/fopen.3:256
3045 #: build/C/man3/fopen.3:259
3047 "The GNU C library allows the following extensions for the string specified "
3050 "GNU C ライブラリでは、 I<mode> に指定できる文字列として、以下の拡張が行われて"
3054 #: build/C/man3/fopen.3:259
3056 msgid "B<c> (since glibc 2.3.3)"
3057 msgstr "B<c> (glibc 2.3.3 以降)"
3060 #: build/C/man3/fopen.3:266
3062 "Do not make the open operation, or subsequent read and write operations, "
3063 "thread cancellation points. This flag is ignored for B<fdopen>()."
3065 "open 操作、それに続く read/write 操作の、 スレッドの取り消しポイント\n"
3066 "(cancellation points) を作成しない。\n"
3067 "このフラグは B<fdopen>() では無視される。"
3070 #: build/C/man3/fopen.3:266
3072 msgid "B<e> (since glibc 2.7)"
3073 msgstr "B<e> (glibc 2.7 以降)"
3076 #: build/C/man3/fopen.3:276
3078 "Open the file with the B<O_CLOEXEC> flag. See B<open>(2) for more "
3079 "information. This flag is ignored for B<fdopen>()."
3081 "B<O_CLOEXEC> フラグを有効にしてファイルをオープンする。詳細は\n"
3082 "B<open>(2) を参照。このフラグは B<fdopen>() では無視される。"
3085 #: build/C/man3/fopen.3:276
3087 msgid "B<m> (since glibc 2.3)"
3088 msgstr "B<m> (glibc 2.3 以降)"
3092 #: build/C/man3/fopen.3:288
3094 "Attempt to access the file using B<mmap>(2), rather than I/O system calls "
3095 "(B<read>(2), B<write>(2)). Currently, use of B<mmap>(2) is attempted only "
3096 "for a file opened for reading."
3098 "I/O システムコール (B<read>(2), B<write>(2)) ではなく、 B<mmap>(2) を使って"
3099 "ファイルにアクセスしようとする。 B<mmap>(2) を使おうとするのは、読み出し用に"
3100 "オープンするファイルについてだけである。"
3103 #: build/C/man3/fopen.3:288 build/C/man3/scanf.3:421
3109 #. FIXME C11 specifies this flag
3111 #: build/C/man3/fopen.3:305
3113 "Open the file exclusively (like the B<O_EXCL> flag of B<open>(2)). If the "
3114 "file already exists, B<fopen>() fails, and sets I<errno> to B<EEXIST>. "
3115 "This flag is ignored for B<fdopen>()."
3117 "ファイルを排他的にオープンする (B<open>(2) の B<O_EXCL> フラグと同様)。 ファ"
3118 "イルがすでに存在する場合、 B<fopen>() は失敗し、 I<errno> に B<EEXIST> が"
3119 "セットされる。 このフラグは B<fdopen>() では無視される。"
3122 #: build/C/man3/fopen.3:313
3124 "In addition to the above characters, B<fopen>() and B<freopen>() support "
3125 "the following syntax in I<mode>:"
3128 "B<fopen>() と B<freopen>() では I<mode> に\n"
3129 "以下の書式を 指定することができる。"
3132 #: build/C/man3/fopen.3:315
3133 msgid "B< ,ccs=>I<string>"
3134 msgstr "B< ,ccs=>I<string>"
3137 #: build/C/man3/fopen.3:331
3139 "The given I<string> is taken as the name of a coded character set and the "
3140 "stream is marked as wide-oriented. Thereafter, internal conversion "
3141 "functions convert I/O to and from the character set I<string>. If the B<,"
3142 "ccs=>I<string> syntax is not specified, then the wide-orientation of the "
3143 "stream is determined by the first file operation. If that operation is a "
3144 "wide-character operation, the stream is marked wide-oriented, and functions "
3145 "to convert to the coded character set are loaded."
3147 "指定された I<string> は、符号化文字集合の名前と解釈され、\n"
3148 "ストリームではワイド文字のストリームとして扱われる。\n"
3149 "内部変換関数で入出力時に文字集合 I<string> との変換が行われる。\n"
3150 "書式 B<,ccs=>I<string> が指定されない場合は、\n"
3151 "ストリームをワイド文字のストリームとして扱うかは\n"
3152 "最初のファイル操作時に決定される。\n"
3153 "最初のファイル操作がワイド文字操作であった場合は、\n"
3154 "そのストリームはワイド文字のストリームとして扱われ、\n"
3155 "符号化文字集合との変換を行う関数が読み込まれる。"
3157 #. FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=12685
3159 #: build/C/man3/fopen.3:348
3161 "When parsing for individual flag characters in I<mode> (i.e., the characters "
3162 "preceding the \"ccs\" specification), the glibc implementation of "
3163 "B<fopen>() and B<freopen>() limits the number of characters examined in "
3164 "I<mode> to 7 (or, in glibc versions before 2.14, to 6, which was not enough "
3165 "to include possible specifications such as \"rb+cmxe\"). The current "
3166 "implementation of B<fdopen>() parses at most 5 characters in I<mode>."
3168 "I<mode> の個々のフラグ文字 (\"ccs\" 指定の前の文字) を解釈する際に、\n"
3169 "glibc の B<fopen>() と B<freopen>() の実装では、\n"
3170 "I<mode> の確認を最大 7 文字しか行わないという制限がある\n"
3171 "(バージョン 2.14 より前の glibc では最大 6 文字だが、\n"
3172 "6 文字では \"rb+cmxe\" などの指定を行うには不十分であった)。\n"
3173 "B<fdopen>() の現在の実装では最大 5 文字の I<mode> しか解釈されない。"
3176 #: build/C/man3/fopen.3:354
3178 "B<open>(2), B<fclose>(3), B<fileno>(3), B<fmemopen>(3), B<fopencookie>(3)"
3180 "B<open>(2), B<fclose>(3), B<fileno>(3), B<fmemopen>(3), B<fopencookie>(3)"
3183 #: build/C/man3/fopencookie.3:26
3186 msgstr "FOPENCOOKIE"
3189 #: build/C/man3/fopencookie.3:26
3195 #: build/C/man3/fopencookie.3:26 build/C/man2/link.2:32
3196 #: build/C/man2/llseek.2:28 build/C/man2/lseek.2:47 build/C/man3/lseek64.3:25
3197 #: build/C/man2/open.2:51 build/C/man2/open_by_handle_at.2:25
3198 #: build/C/man2/pipe.2:36 build/C/man2/read.2:35 build/C/man2/readlink.2:44
3199 #: build/C/man2/readv.2:32 build/C/man2/rename.2:33 build/C/man2/rmdir.2:30
3200 #: build/C/man3/setbuf.3:48 build/C/man3/stdin.3:13 build/C/man2/symlink.2:33
3201 #: build/C/man7/symlink.7:37 build/C/man2/unlink.2:33 build/C/man2/write.2:39
3207 #: build/C/man3/fopencookie.3:29
3208 msgid "fopencookie - opening a custom stream"
3212 #: build/C/man3/fopencookie.3:36
3215 "B<FILE *fopencookie(void *>I<cookie>B<, const char *>I<mode>B<,>\n"
3216 "B< cookie_io_functions_t >I<io_funcs>B<);>\n"
3218 "B<FILE *fopencookie(void *>I<cookie>B<, const char *>I<mode>B<,>\n"
3219 "B< cookie_io_functions_t >I<io_funcs>B<);>\n"
3222 #: build/C/man3/fopencookie.3:49
3224 "The B<fopencookie>() function allows the programmer to create a custom "
3225 "implementation for a standard I/O stream. This implementation can store the "
3226 "stream's data at a location of its own choosing; for example, "
3227 "B<fopencookie>() is used to implement B<fmemopen>(3), which provides a "
3228 "stream interface to data that is stored in a buffer in memory."
3232 #: build/C/man3/fopencookie.3:51
3233 msgid "In order to create a custom stream the programmer must:"
3237 #: build/C/man3/fopencookie.3:51 build/C/man3/fopencookie.3:54
3238 #: build/C/man3/fopencookie.3:65 build/C/man2/lseek.2:168
3239 #: build/C/man2/lseek.2:170 build/C/man2/lseek.2:173 build/C/man2/lseek.2:175
3240 #: build/C/man2/lseek.2:177 build/C/man2/open.2:535 build/C/man2/open.2:543
3241 #: build/C/man2/open.2:549 build/C/man2/open.2:555 build/C/man2/open.2:561
3242 #: build/C/man2/open.2:574 build/C/man2/open.2:695 build/C/man2/open.2:703
3243 #: build/C/man2/open_by_handle_at.2:138 build/C/man2/open_by_handle_at.2:146
3244 #: build/C/man2/open_by_handle_at.2:157 build/C/man2/open_by_handle_at.2:170
3245 #: build/C/man2/pipe.2:95 build/C/man2/pipe.2:101 build/C/man2/pipe.2:111
3246 #: build/C/man3/scanf.3:658 build/C/man3/scanf.3:663
3247 #: build/C/man7/symlink.7:290 build/C/man7/symlink.7:300
3248 #: build/C/man7/symlink.7:330 build/C/man7/symlink.7:390
3249 #: build/C/man7/symlink.7:419 build/C/man7/symlink.7:448
3250 #: build/C/man7/symlink.7:479 build/C/man7/symlink.7:492
3256 #: build/C/man3/fopencookie.3:54
3258 "Implement four \"hook\" functions that are used internally by the standard I/"
3259 "O library when performing I/O on the stream."
3263 #: build/C/man3/fopencookie.3:65
3265 "Define a \"cookie\" data type, a structure that provides bookkeeping "
3266 "information (e.g., where to store data) used by the aforementioned hook "
3267 "functions. The standard I/O package knows nothing about the contents of "
3268 "this cookie (thus it is typed as I<void\\ *> when passed to "
3269 "B<fopencookie>()), but automatically supplies the cookie as the first "
3270 "argument when calling the hook functions."
3274 #: build/C/man3/fopencookie.3:70
3276 "Call B<fopencookie>() to open a new stream and associate the cookie and "
3277 "hook functions with that stream."
3281 #: build/C/man3/fopencookie.3:78
3283 "The B<fopencookie>() function serves a purpose similar to B<fopen>(3): it "
3284 "opens a new stream and returns a pointer to a I<FILE> object that is used to "
3285 "operate on that stream."
3289 #: build/C/man3/fopencookie.3:85
3291 "The I<cookie> argument is a pointer to the caller's cookie structure that is "
3292 "to be associated with the new stream. This pointer is supplied as the first "
3293 "argument when the standard I/O library invokes any of the hook functions "
3298 #: build/C/man3/fopencookie.3:101
3300 "The I<mode> argument serves the same purpose as for B<fopen>(3). The "
3301 "following modes are supported: I<r>, I<w>, I<a>, I<r+>, I<w+>, and I<a+>. "
3302 "See B<fopen>(3) for details."
3306 #: build/C/man3/fopencookie.3:107
3308 "The I<io_funcs> argument is a structure that contains four fields pointing "
3309 "to the programmer-defined hook functions that are used to implement this "
3310 "stream. The structure is defined as follows"
3314 #: build/C/man3/fopencookie.3:116
3317 "typedef struct {\n"
3318 " cookie_read_function_t *read;\n"
3319 " cookie_write_function_t *write;\n"
3320 " cookie_seek_function_t *seek;\n"
3321 " cookie_close_function_t *close;\n"
3322 "} cookie_io_functions_t;\n"
3324 "typedef struct {\n"
3325 " cookie_read_function_t *read;\n"
3326 " cookie_write_function_t *write;\n"
3327 " cookie_seek_function_t *seek;\n"
3328 " cookie_close_function_t *close;\n"
3329 "} cookie_io_functions_t;\n"
3332 #: build/C/man3/fopencookie.3:120
3333 msgid "The four fields are as follows:"
3337 #: build/C/man3/fopencookie.3:120
3339 msgid "I<cookie_read_function_t *read>"
3340 msgstr "I<cookie_read_function_t *read>"
3343 #: build/C/man3/fopencookie.3:124
3345 "This function implements read operations for the stream. When called, it "
3346 "receives three arguments:"
3350 #: build/C/man3/fopencookie.3:126
3352 msgid " ssize_t read(void *cookie, char *buf, size_t size);\n"
3353 msgstr " ssize_t read(void *cookie, char *buf, size_t size);\n"
3356 #: build/C/man3/fopencookie.3:141
3358 "The I<buf> and I<size> arguments are, respectively, a buffer into which "
3359 "input data can be placed and the size of that buffer. As its function "
3360 "result, the I<read> function should return the number of bytes copied into "
3361 "I<buf>, 0 on end of file, or -1 on error. The I<read> function should "
3362 "update the stream offset appropriately."
3366 #: build/C/man3/fopencookie.3:146
3368 "If I<*read> is a null pointer, then reads from the custom stream always "
3369 "return end of file."
3373 #: build/C/man3/fopencookie.3:146
3375 msgid "I<cookie_write_function_t *write>"
3376 msgstr "I<cookie_write_function_t *write>"
3379 #: build/C/man3/fopencookie.3:150
3381 "This function implements write operations for the stream. When called, it "
3382 "receives three arguments:"
3386 #: build/C/man3/fopencookie.3:152
3388 msgid " ssize_t write(void *cookie, const char *buf, size_t size);\n"
3389 msgstr " ssize_t write(void *cookie, const char *buf, size_t size);\n"
3392 #: build/C/man3/fopencookie.3:168
3394 "The I<buf> and I<size> arguments are, respectively, a buffer of data to be "
3395 "output to the stream and the size of that buffer. As its function result, "
3396 "the I<write> function should return the number of bytes copied from I<buf>, "
3397 "or 0 on error. (The function must not return a negative value.) The "
3398 "I<write> function should update the stream offset appropriately."
3402 #: build/C/man3/fopencookie.3:173
3403 msgid "If I<*write> is a null pointer, then output to the stream is discarded."
3407 #: build/C/man3/fopencookie.3:173
3409 msgid "I<cookie_seek_function_t *seek>"
3410 msgstr "I<cookie_seek_function_t *seek>"
3413 #: build/C/man3/fopencookie.3:177
3415 "This function implements seek operations on the stream. When called, it "
3416 "receives three arguments:"
3420 #: build/C/man3/fopencookie.3:179
3422 msgid " int seek(void *cookie, off64_t *offset, int whence);\n"
3423 msgstr " int seek(void *cookie, off64_t *offset, int whence);\n"
3426 #: build/C/man3/fopencookie.3:185
3428 "The I<*offset> argument specifies the new file offset depending on which of "
3429 "the following three values is supplied in I<whence>:"
3433 #: build/C/man3/fopencookie.3:186 build/C/man2/lseek.2:67
3436 msgstr "B<SEEK_SET>"
3439 #: build/C/man3/fopencookie.3:191
3441 "The stream offset should be set I<*offset> bytes from the start of the "
3446 #: build/C/man3/fopencookie.3:191 build/C/man2/lseek.2:72
3449 msgstr "B<SEEK_CUR>"
3452 #: build/C/man3/fopencookie.3:195
3453 msgid "I<*offset> should be added to the current stream offset."
3457 #: build/C/man3/fopencookie.3:195 build/C/man2/lseek.2:77
3460 msgstr "B<SEEK_END>"
3463 #: build/C/man3/fopencookie.3:199
3465 "The stream offset should be set to the size of the stream plus I<*offset>."
3469 #: build/C/man3/fopencookie.3:206
3471 "Before returning, the I<seek> function should update I<*offset> to indicate "
3472 "the new stream offset."
3476 #: build/C/man3/fopencookie.3:210
3478 "As its function result, the I<seek> function should return 0 on success, and "
3483 #: build/C/man3/fopencookie.3:215
3485 "If I<*seek> is a null pointer, then it is not possible to perform seek "
3486 "operations on the stream."
3490 #: build/C/man3/fopencookie.3:215
3492 msgid "I<cookie_close_function_t *close>"
3493 msgstr "I<cookie_close_function_t *close>"
3496 #: build/C/man3/fopencookie.3:221
3498 "This function closes the stream. The hook function can do things such as "
3499 "freeing buffers allocated for the stream. When called, it receives one "
3504 #: build/C/man3/fopencookie.3:223
3506 msgid " int close(void *cookie);\n"
3507 msgstr " int close(void *cookie);\n"
3510 #: build/C/man3/fopencookie.3:228
3512 "The I<cookie> argument is the cookie that the programmer supplied when "
3513 "calling B<fopencookie>()."
3517 #: build/C/man3/fopencookie.3:234
3519 "As its function result, the I<close> function should return 0 on success, "
3520 "and B<EOF> on error."
3524 #: build/C/man3/fopencookie.3:238
3526 "If I<*close> is NULL, then no special action is performed when the stream is "
3531 #. It's not clear if errno ever gets set...
3533 #: build/C/man3/fopencookie.3:245
3535 "On success B<fopencookie>() returns a pointer to the new stream. On error, "
3540 #: build/C/man3/fopencookie.3:247
3541 msgid "This function is a nonstandard GNU extension."
3545 #: build/C/man3/fopencookie.3:256
3547 "The program below implements a custom stream whose functionality is similar "
3548 "(but not identical) to that available via B<fmemopen>(3). It implements a "
3549 "stream whose data is stored in a memory buffer. The program writes its "
3550 "command-line arguments to the stream, and then seeks through the stream "
3551 "reading two out of every five characters and writing them to standard "
3552 "output. The following shell session demonstrates the use of the program:"
3556 #: build/C/man3/fopencookie.3:264
3559 "$B< ./a.out \\(aqhello world\\(aq>\n"
3563 "Reached end of file\n"
3565 "$B< ./a.out \\(aqhello world\\(aq>\n"
3569 "Reached end of file\n"
3572 #: build/C/man3/fopencookie.3:271
3574 "Note that a more general version of the program below could be improved to "
3575 "more robustly handle various error situations (e.g., opening a stream with a "
3576 "cookie that already has an open stream; closing a stream that has already "
3581 #: build/C/man3/fopencookie.3:280
3584 "#define _GNU_SOURCE\n"
3585 "#include E<lt>sys/types.hE<gt>\n"
3586 "#include E<lt>stdio.hE<gt>\n"
3587 "#include E<lt>stdlib.hE<gt>\n"
3588 "#include E<lt>unistd.hE<gt>\n"
3589 "#include E<lt>string.hE<gt>\n"
3591 "#define _GNU_SOURCE\n"
3592 "#include E<lt>sys/types.hE<gt>\n"
3593 "#include E<lt>stdio.hE<gt>\n"
3594 "#include E<lt>stdlib.hE<gt>\n"
3595 "#include E<lt>unistd.hE<gt>\n"
3596 "#include E<lt>string.hE<gt>\n"
3599 #: build/C/man3/fopencookie.3:282
3601 msgid "#define INIT_BUF_SIZE 4\n"
3602 msgstr "#define INIT_BUF_SIZE 4\n"
3605 #: build/C/man3/fopencookie.3:289
3608 "struct memfile_cookie {\n"
3609 " char *buf; /* Dynamically sized buffer for data */\n"
3610 " size_t allocated; /* Size of buf */\n"
3611 " size_t endpos; /* Number of characters in buf */\n"
3612 " off_t offset; /* Current file offset in buf */\n"
3615 "struct memfile_cookie {\n"
3616 " char *buf; /* Dynamically sized buffer for data */\n"
3617 " size_t allocated; /* Size of buf */\n"
3618 " size_t endpos; /* Number of characters in buf */\n"
3619 " off_t offset; /* Current file offset in buf */\n"
3623 #: build/C/man3/fopencookie.3:295
3627 "memfile_write(void *c, const char *buf, size_t size)\n"
3629 " char *new_buff;\n"
3630 " struct memfile_cookie *cookie = c;\n"
3633 "memfile_write(void *c, const char *buf, size_t size)\n"
3635 " char *new_buff;\n"
3636 " struct memfile_cookie *cookie = c;\n"
3639 #: build/C/man3/fopencookie.3:297
3641 msgid " /* Buffer too small? Keep doubling size until big enough */\n"
3642 msgstr " /* Buffer too small? Keep doubling size until big enough */\n"
3645 #: build/C/man3/fopencookie.3:307
3648 " while (size + cookie-E<gt>offset E<gt> cookie-E<gt>allocated) {\n"
3649 " new_buff = realloc(cookie-E<gt>buf, cookie-E<gt>allocated * 2);\n"
3650 " if (new_buff == NULL) {\n"
3653 " cookie-E<gt>allocated *= 2;\n"
3654 " cookie-E<gt>buf = new_buff;\n"
3658 " while (size + cookie-E<gt>offset E<gt> cookie-E<gt>allocated) {\n"
3659 " new_buff = realloc(cookie-E<gt>buf, cookie-E<gt>allocated * 2);\n"
3660 " if (new_buff == NULL) {\n"
3663 " cookie-E<gt>allocated *= 2;\n"
3664 " cookie-E<gt>buf = new_buff;\n"
3669 #: build/C/man3/fopencookie.3:309
3671 msgid " memcpy(cookie-E<gt>buf + cookie-E<gt>offset, buf, size);\n"
3672 msgstr " memcpy(cookie-E<gt>buf + cookie-E<gt>offset, buf, size);\n"
3675 #: build/C/man3/fopencookie.3:313
3678 " cookie-E<gt>offset += size;\n"
3679 " if (cookie-E<gt>offset E<gt> cookie-E<gt>endpos)\n"
3680 " cookie-E<gt>endpos = cookie-E<gt>offset;\n"
3682 " cookie-E<gt>offset += size;\n"
3683 " if (cookie-E<gt>offset E<gt> cookie-E<gt>endpos)\n"
3684 " cookie-E<gt>endpos = cookie-E<gt>offset;\n"
3687 #: build/C/man3/fopencookie.3:316
3697 #: build/C/man3/fopencookie.3:322
3701 "memfile_read(void *c, char *buf, size_t size)\n"
3703 " ssize_t xbytes;\n"
3704 " struct memfile_cookie *cookie = c;\n"
3707 "memfile_read(void *c, char *buf, size_t size)\n"
3709 " ssize_t xbytes;\n"
3710 " struct memfile_cookie *cookie = c;\n"
3713 #: build/C/man3/fopencookie.3:324
3715 msgid " /* Fetch minimum of bytes requested and bytes available */\n"
3716 msgstr " /* Fetch minimum of bytes requested and bytes available */\n"
3719 #: build/C/man3/fopencookie.3:330
3723 " if (cookie-E<gt>offset + size E<gt> cookie-E<gt>endpos)\n"
3724 " xbytes = cookie-E<gt>endpos - cookie-E<gt>offset;\n"
3725 " if (xbytes E<lt> 0) /* offset may be past endpos */\n"
3729 " if (cookie-E<gt>offset + size E<gt> cookie-E<gt>endpos)\n"
3730 " xbytes = cookie-E<gt>endpos - cookie-E<gt>offset;\n"
3731 " if (xbytes E<lt> 0) /* offset may be past endpos */\n"
3735 #: build/C/man3/fopencookie.3:332
3737 msgid " memcpy(buf, cookie-E<gt>buf + cookie-E<gt>offset, xbytes);\n"
3738 msgstr " memcpy(buf, cookie-E<gt>buf + cookie-E<gt>offset, xbytes);\n"
3741 #: build/C/man3/fopencookie.3:336
3744 " cookie-E<gt>offset += xbytes;\n"
3748 " cookie-E<gt>offset += xbytes;\n"
3753 #: build/C/man3/fopencookie.3:342
3757 "memfile_seek(void *c, off64_t *offset, int whence)\n"
3759 " off64_t new_offset;\n"
3760 " struct memfile_cookie *cookie = c;\n"
3763 "memfile_seek(void *c, off64_t *offset, int whence)\n"
3765 " off64_t new_offset;\n"
3766 " struct memfile_cookie *cookie = c;\n"
3769 #: build/C/man3/fopencookie.3:351
3772 " if (whence == SEEK_SET)\n"
3773 " new_offset = *offset;\n"
3774 " else if (whence == SEEK_END)\n"
3775 " new_offset = cookie-E<gt>endpos + *offset;\n"
3776 " else if (whence == SEEK_CUR)\n"
3777 " new_offset = cookie-E<gt>offset + *offset;\n"
3781 " if (whence == SEEK_SET)\n"
3782 " new_offset = *offset;\n"
3783 " else if (whence == SEEK_END)\n"
3784 " new_offset = cookie-E<gt>endpos + *offset;\n"
3785 " else if (whence == SEEK_CUR)\n"
3786 " new_offset = cookie-E<gt>offset + *offset;\n"
3791 #: build/C/man3/fopencookie.3:354
3794 " if (new_offset E<lt> 0)\n"
3797 " if (new_offset E<lt> 0)\n"
3801 #: build/C/man3/fopencookie.3:359
3804 " cookie-E<gt>offset = new_offset;\n"
3805 " *offset = new_offset;\n"
3809 " cookie-E<gt>offset = new_offset;\n"
3810 " *offset = new_offset;\n"
3815 #: build/C/man3/fopencookie.3:364
3819 "memfile_close(void *c)\n"
3821 " struct memfile_cookie *cookie = c;\n"
3824 "memfile_close(void *c)\n"
3826 " struct memfile_cookie *cookie = c;\n"
3829 #: build/C/man3/fopencookie.3:368
3832 " free(cookie-E<gt>buf);\n"
3833 " cookie-E<gt>allocated = 0;\n"
3834 " cookie-E<gt>buf = NULL;\n"
3836 " free(cookie-E<gt>buf);\n"
3837 " cookie-E<gt>allocated = 0;\n"
3838 " cookie-E<gt>buf = NULL;\n"
3841 #: build/C/man3/fopencookie.3:371
3851 #: build/C/man3/fopencookie.3:387
3855 "main(int argc, char *argv[])\n"
3857 " cookie_io_functions_t memfile_func = {\n"
3858 " .read = memfile_read,\n"
3859 " .write = memfile_write,\n"
3860 " .seek = memfile_seek,\n"
3861 " .close = memfile_close\n"
3864 " struct memfile_cookie mycookie;\n"
3868 " char buf[1000];\n"
3871 "main(int argc, char *argv[])\n"
3873 " cookie_io_functions_t memfile_func = {\n"
3874 " .read = memfile_read,\n"
3875 " .write = memfile_write,\n"
3876 " .seek = memfile_seek,\n"
3877 " .close = memfile_close\n"
3880 " struct memfile_cookie mycookie;\n"
3884 " char buf[1000];\n"
3887 #: build/C/man3/fopencookie.3:389
3889 msgid " /* Set up the cookie before calling fopencookie() */\n"
3890 msgstr " /* Set up the cookie before calling fopencookie() */\n"
3893 #: build/C/man3/fopencookie.3:395
3896 " mycookie.buf = malloc(INIT_BUF_SIZE);\n"
3897 " if (mycookie.buf == NULL) {\n"
3898 " perror(\"malloc\");\n"
3899 " exit(EXIT_FAILURE);\n"
3902 " mycookie.buf = malloc(INIT_BUF_SIZE);\n"
3903 " if (mycookie.buf == NULL) {\n"
3904 " perror(\"malloc\");\n"
3905 " exit(EXIT_FAILURE);\n"
3909 #: build/C/man3/fopencookie.3:399
3912 " mycookie.allocated = INIT_BUF_SIZE;\n"
3913 " mycookie.offset = 0;\n"
3914 " mycookie.endpos = 0;\n"
3916 " mycookie.allocated = INIT_BUF_SIZE;\n"
3917 " mycookie.offset = 0;\n"
3918 " mycookie.endpos = 0;\n"
3921 #: build/C/man3/fopencookie.3:405
3924 " fp = fopencookie(&mycookie,\"w+\", memfile_func);\n"
3925 " if (fp == NULL) {\n"
3926 " perror(\"fopencookie\");\n"
3927 " exit(EXIT_FAILURE);\n"
3930 " fp = fopencookie(&mycookie,\"w+\", memfile_func);\n"
3931 " if (fp == NULL) {\n"
3932 " perror(\"fopencookie\");\n"
3933 " exit(EXIT_FAILURE);\n"
3937 #: build/C/man3/fopencookie.3:407
3939 msgid " /* Write command-line arguments to our file */\n"
3940 msgstr " /* Write command-line arguments to our file */\n"
3943 #: build/C/man3/fopencookie.3:413
3946 " for (j = 1; j E<lt> argc; j++)\n"
3947 " if (fputs(argv[j], fp) == EOF) {\n"
3948 " perror(\"fputs\");\n"
3949 " exit(EXIT_FAILURE);\n"
3952 " for (j = 1; j E<lt> argc; j++)\n"
3953 " if (fputs(argv[j], fp) == EOF) {\n"
3954 " perror(\"fputs\");\n"
3955 " exit(EXIT_FAILURE);\n"
3959 #: build/C/man3/fopencookie.3:415
3961 msgid " /* Read two bytes out of every five, until EOF */\n"
3962 msgstr " /* Read two bytes out of every five, until EOF */\n"
3965 #: build/C/man3/fopencookie.3:430
3968 " for (p = 0; ; p += 5) {\n"
3969 " if (fseek(fp, p, SEEK_SET) == -1) {\n"
3970 " perror(\"fseek\");\n"
3971 " exit(EXIT_FAILURE);\n"
3973 " nread = fread(buf, 1, 2, fp);\n"
3974 " if (nread == -1) {\n"
3975 " perror(\"fread\");\n"
3976 " exit(EXIT_FAILURE);\n"
3978 " if (nread == 0) {\n"
3979 " printf(\"Reached end of file\\en\");\n"
3983 " for (p = 0; ; p += 5) {\n"
3984 " if (fseek(fp, p, SEEK_SET) == -1) {\n"
3985 " perror(\"fseek\");\n"
3986 " exit(EXIT_FAILURE);\n"
3988 " nread = fread(buf, 1, 2, fp);\n"
3989 " if (nread == -1) {\n"
3990 " perror(\"fread\");\n"
3991 " exit(EXIT_FAILURE);\n"
3993 " if (nread == 0) {\n"
3994 " printf(\"Reached end of file\\en\");\n"
3999 #: build/C/man3/fopencookie.3:433
4002 " printf(\"/%.*s/\\en\", nread, buf);\n"
4005 " printf(\"/%.*s/\\en\", nread, buf);\n"
4009 #: build/C/man3/fopencookie.3:436 build/C/man2/open_by_handle_at.2:579
4010 #: build/C/man2/open_by_handle_at.2:719 build/C/man2/readlink.2:312
4013 " exit(EXIT_SUCCESS);\n"
4016 " exit(EXIT_SUCCESS);\n"
4020 #: build/C/man3/fopencookie.3:442
4021 msgid "B<fclose>(3), B<fmemopen>(3), B<fopen>(3), B<fseek>(3)"
4022 msgstr "B<fclose>(3), B<fmemopen>(3), B<fopen>(3), B<fseek>(3)"
4025 #: build/C/man3/fpurge.3:25
4031 #: build/C/man3/fpurge.3:25
4037 #: build/C/man3/fpurge.3:28
4038 msgid "fpurge, __fpurge - purge a stream"
4039 msgstr "fpurge, __fpurge - ストリームを一掃 (purge) する"
4042 #: build/C/man3/fpurge.3:32
4045 "/* unsupported */\n"
4046 "B<#include E<lt>stdio.hE<gt>>\n"
4048 "/* unsupported */\n"
4049 "B<#include E<lt>stdio.hE<gt>>\n"
4052 #: build/C/man3/fpurge.3:34
4054 msgid "B<int fpurge(FILE *>I<stream>B<);>\n"
4055 msgstr "B<int fpurge(FILE *>I<stream>B<);>\n"
4058 #: build/C/man3/fpurge.3:37
4062 "B<#include E<lt>stdio.hE<gt>>\n"
4065 "B<#include E<lt>stdio.hE<gt>>\n"
4068 #: build/C/man3/fpurge.3:39
4070 msgid "B<#include E<lt>stdio_ext.hE<gt>>\n"
4071 msgstr "B<#include E<lt>stdio_ext.hE<gt>>\n"
4074 #: build/C/man3/fpurge.3:41
4076 msgid "B<void __fpurge(FILE *>I<stream>B<);>\n"
4077 msgstr "B<void __fpurge(FILE *>I<stream>B<);>\n"
4080 #: build/C/man3/fpurge.3:54
4082 "The function B<fpurge>() clears the buffers of the given stream. For "
4083 "output streams this discards any unwritten output. For input streams this "
4084 "discards any input read from the underlying object but not yet obtained via "
4085 "B<getc>(3); this includes any text pushed back via B<ungetc>(3). See also "
4088 "B<fpurge>() 関数は、与えられたストリームのバッファをクリアする。 出力スト"
4089 "リームでこれを行うと、書き出されていない出力は捨てられる。 入力ストリームでこ"
4090 "れを行うと、 下層にあるオブジェクトから読み込まれ B<getc>(3) による取得を"
4091 "待っている入力が、すべて捨てられる。 これには B<ungetc>(3) によって戻された"
4092 "テキストも含まれる。 B<fflush>(3) も参照のこと。"
4095 #: build/C/man3/fpurge.3:58
4097 "The function B<__fpurge>() does precisely the same, but without returning a "
4099 msgstr "B<__fpurge>() 関数も全く同じことを行うが、ただし返り値を返さない。"
4102 #: build/C/man3/fpurge.3:65
4104 "Upon successful completion B<fpurge>() returns 0. On error, it returns -1 "
4105 "and sets I<errno> appropriately."
4107 "成功すると B<fpurge>() は 0 を返す。 エラーが起こると -1 を返し、 I<errno> "
4111 #: build/C/man3/fpurge.3:70
4112 msgid "I<stream> is not an open stream."
4113 msgstr "I<stream> がオープンされていない。"
4116 #: build/C/man3/fpurge.3:78
4118 "These functions are nonstandard and not portable. The function B<fpurge>() "
4119 "was introduced in 4.4BSD and is not available under Linux. The function "
4120 "B<__fpurge>() was introduced in Solaris, and is present in glibc 2.1.95 and "
4123 "これらの関数は標準ではなく、よって移植性もない。 B<fpurge>() 関数は 4.4BSD "
4124 "で導入されたが、Linux では利用できない。 B<__fpurge>() 関数は Solaris で導入"
4125 "され、glibc 2.1.95 以降には存在している。"
4128 #: build/C/man3/fpurge.3:80
4129 msgid "Usually it is a mistake to want to discard input buffers."
4130 msgstr "通常は入力バッファを捨てようとするのは間違っている。"
4134 #: build/C/man3/fpurge.3:85
4135 msgid "B<fflush>(3), B<setbuf>(3), B<stdio_ext>(3)"
4136 msgstr "B<fflush>(3), B<setbuf>(3), B<stdio_ext>(3)"
4139 #: build/C/man3/fputwc.3:16
4145 #: build/C/man3/fputwc.3:19
4146 msgid "fputwc, putwc - write a wide character to a FILE stream"
4147 msgstr "fputwc, putwc - ワイド文字を FILE ストリームに書き込む"
4150 #: build/C/man3/fputwc.3:27
4153 "B<wint_t fputwc(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
4154 "B<wint_t putwc(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
4156 "B<wint_t fputwc(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
4157 "B<wint_t putwc(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
4160 #: build/C/man3/fputwc.3:43
4162 "The B<fputwc>() function is the wide-character equivalent of the "
4163 "B<fputc>(3) function. It writes the wide character I<wc> to I<stream>. If "
4164 "I<ferror(stream)> becomes true, it returns B<WEOF>. If a wide-character "
4165 "conversion error occurs, it sets I<errno> to B<EILSEQ> and returns B<WEOF>. "
4166 "Otherwise, it returns I<wc>."
4168 "B<fputwc>() 関数は、 B<fputc>(3) に対応するワイド文字関数である。この 関数"
4169 "は、ワイド文字 I<wc> を I<stream> に書き込む。 I<ferror(stream)> が真になる"
4170 "と、この関数は B<WEOF> を返す。 ワイド文字変換でエラーが発生した場合は、 "
4171 "I<errno> に B<EILSEQ> をセットし、 B<WEOF> を返す。 それ以外の場合では、この"
4175 #: build/C/man3/fputwc.3:51
4177 "The B<putwc>() function or macro functions identically to B<fputwc>(). It "
4178 "may be implemented as a macro, and may evaluate its argument more than "
4179 "once. There is no reason ever to use it."
4181 "B<putwc>() 関数あるいはマクロは、 B<fputwc>() と全く同じ動作をする。 この関"
4182 "数はマクロとして実装されるかもしれないので、引き数が複数回評価さ れるかもしれ"
4183 "ない。この関数を使う理由はもはや存在しない。"
4186 #: build/C/man3/fputwc.3:63
4188 "The B<fputwc>() function returns I<wc> if no error occurred, or B<WEOF> to "
4189 "indicate an error. In the event of an error, I<errno> is set to indicate "
4192 "B<fputwc>() 関数は、エラーが起きなければ I<wc> を返す。エラーの場合には "
4193 "B<WEOF> が返り、 I<errno> にエラーの原因を示す値が設定される。"
4196 #: build/C/man3/fputwc.3:68
4197 msgid "Conversion of I<wc> to the stream's encoding fails."
4198 msgstr "I<wc> からストリームの符号への変換に失敗した。"
4201 #: build/C/man3/fputwc.3:77
4203 "The behavior of B<fputwc>() depends on the B<LC_CTYPE> category of the "
4205 msgstr "B<fputwc>() の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存する。"
4208 #: build/C/man3/fputwc.3:85
4210 "In the absence of additional information passed to the B<fopen>(3) call, it "
4211 "is reasonable to expect that B<fputwc>() will actually write the multibyte "
4212 "sequence corresponding to the wide character I<wc>."
4214 "B<fopen>(3) システムコールに渡す追加情報がない場合には、 B<fputwc>() は 実"
4215 "際にはワイド文字 I<wc> に対応するマルチバイトシーケンスを書き込むと 期待して"
4219 #: build/C/man3/fputwc.3:89
4220 msgid "B<fgetwc>(3), B<fputws>(3), B<unlocked_stdio>(3)"
4221 msgstr "B<fgetwc>(3), B<fputws>(3), B<unlocked_stdio>(3)"
4224 #: build/C/man3/fread.3:45
4230 #: build/C/man3/fread.3:45
4236 #: build/C/man3/fread.3:48
4237 msgid "fread, fwrite - binary stream input/output"
4238 msgstr "fread, fwrite - バイナリストリームの入出力"
4241 #: build/C/man3/fread.3:54
4243 msgid "B<size_t fread(void *>I<ptr>B<, size_t >I<size>B<, size_t >I<nmemb>B<, FILE *>I<stream>B<);>\n"
4244 msgstr "B<size_t fread(void *>I<ptr>B<, size_t >I<size>B<, size_t >I<nmemb>B<, FILE *>I<stream>B<);>\n"
4247 #: build/C/man3/fread.3:57
4250 "B<size_t fwrite(const void *>I<ptr>B<, size_t >I<size>B<, size_t >I<nmemb>B<,>\n"
4251 "B< FILE *>I<stream>B<);>\n"
4253 "B<size_t fwrite(const void *>I<ptr>B<, size_t >I<size>B<, size_t >I<nmemb>B<,>\n"
4254 "B< FILE *>I<stream>B<);>\n"
4257 #: build/C/man3/fread.3:69
4259 "The function B<fread>() reads I<nmemb> elements of data, each I<size> bytes "
4260 "long, from the stream pointed to by I<stream>, storing them at the location "
4263 "B<fread>() 関数は I<stream> ポインタで指定されたストリームから I<nmemb> 個の"
4264 "データを読み込み、 I<ptr> で与えられた場所に格納する。 個々のデータは "
4265 "I<size> バイトの長さを持つ。"
4268 #: build/C/man3/fread.3:80
4270 "The function B<fwrite>() writes I<nmemb> elements of data, each I<size> "
4271 "bytes long, to the stream pointed to by I<stream>, obtaining them from the "
4272 "location given by I<ptr>."
4274 "B<fwrite>() 関数は I<ptr> で指定された場所から得た I<nmemb> 個のデータを、 "
4275 "I<stream> ポインタで指定されたストリームに書き込む。 個々のデータは I<size> "
4279 #: build/C/man3/fread.3:96
4281 "On success, B<fread>() and B<fwrite>() return the number of I<items> read "
4282 "or written. This number equals the number of bytes transferred only when "
4283 "I<size> is 1. If an error occurs, or the end of the file is reached, the "
4284 "return value is a short item count (or zero)."
4286 "成功すると、 B<fread>() と B<fwrite>() は読み書きを行った要素の個数を返す。\n"
4287 "I<size> が 1 の場合は、この数字は転送されたバイト数と等しい。\n"
4288 "エラーが生じた場合や、ファイルの末尾 (end-of-file) に達した場合、\n"
4289 "返り値は指定した個数よりも小さい値 (または 0) となる。"
4292 #: build/C/man3/fread.3:103
4294 "B<fread>() does not distinguish between end-of-file and error, and callers "
4295 "must use B<feof>(3) and B<ferror>(3) to determine which occurred."
4297 "B<fread>() は end-of-file とエラーを区別しないので、 どちらが生じたかを判断"
4298 "するためには、 呼び出し側で B<feof>(3) と B<ferror>(3) とを使用しなければな"
4302 #: build/C/man3/fread.3:105
4303 msgid "C89, POSIX.1-2001."
4304 msgstr "C89, POSIX.1-2001."
4307 #: build/C/man3/fread.3:111
4308 msgid "B<read>(2), B<write>(2), B<feof>(3), B<ferror>(3), B<unlocked_stdio>(3)"
4310 "B<read>(2), B<write>(2), B<feof>(3), B<ferror>(3), B<unlocked_stdio>(3)"
4313 #: build/C/man3/fseek.3:42
4319 #: build/C/man3/fseek.3:42
4325 #: build/C/man3/fseek.3:45
4326 msgid "fgetpos, fseek, fsetpos, ftell, rewind - reposition a stream"
4327 msgstr "fgetpos, fseek, fsetpos, ftell, rewind - ストリームの位置を変更する"
4330 #: build/C/man3/fseek.3:49
4331 msgid "B<int fseek(FILE *>I<stream>B<, long >I<offset>B<, int >I<whence>B<);>"
4332 msgstr "B<int fseek(FILE *>I<stream>B<, long >I<offset>B<, int >I<whence>B<);>"
4335 #: build/C/man3/fseek.3:51
4336 msgid "B<long ftell(FILE *>I<stream>B<);>"
4337 msgstr "B<long ftell(FILE *>I<stream>B<);>"
4340 #: build/C/man3/fseek.3:53
4341 msgid "B<void rewind(FILE *>I<stream>B<);>"
4342 msgstr "B<void rewind(FILE *>I<stream>B<);>"
4345 #: build/C/man3/fseek.3:55
4346 msgid "B<int fgetpos(FILE *>I<stream>B<, fpos_t *>I<pos>B<);>"
4347 msgstr "B<int fgetpos(FILE *>I<stream>B<, fpos_t *>I<pos>B<);>"
4350 #: build/C/man3/fseek.3:57
4351 msgid "B<int fsetpos(FILE *>I<stream>B<, fpos_t *>I<pos>B<);>"
4352 msgstr "B<int fsetpos(FILE *>I<stream>B<, fpos_t *>I<pos>B<);>"
4355 #: build/C/man3/fseek.3:81
4357 "The B<fseek>() function sets the file position indicator for the stream "
4358 "pointed to by I<stream>. The new position, measured in bytes, is obtained "
4359 "by adding I<offset> bytes to the position specified by I<whence>. If "
4360 "I<whence> is set to B<SEEK_SET>, B<SEEK_CUR>, or B<SEEK_END>, the offset is "
4361 "relative to the start of the file, the current position indicator, or end-of-"
4362 "file, respectively. A successful call to the B<fseek>() function clears "
4363 "the end-of-file indicator for the stream and undoes any effects of the "
4364 "B<ungetc>(3) function on the same stream."
4366 "B<fseek>() 関数は I<stream> によって指定されたストリームにおいて、ファイル位"
4367 "置表示子 (file position indicator) をセットする。新たな位置 (バイト単位) は "
4368 "I<whence> で指定された位置に I<offset> バイトを加えることによって与えられ"
4369 "る。 I<whence> が B<SEEK_SET>, B<SEEK_CUR>, B<SEEK_END> のどれかになっている"
4370 "場合は、それぞれファイルの先頭、現在の位置表示子、 ファイルの末尾からのオフ"
4371 "セットが取られる。 B<fseek>() 関数の呼び出しが成功すると、ストリームの end-"
4372 "of-file 表示子は クリアされ、それまでに B<ungetc>(3) 関数で戻したデータはな"
4376 #: build/C/man3/fseek.3:87
4378 "The B<ftell>() function obtains the current value of the file position "
4379 "indicator for the stream pointed to by I<stream>."
4381 "B<ftell>() 関数は I<stream> によって指定されたストリームにおける、ファイル位"
4385 #: build/C/man3/fseek.3:94
4387 "The B<rewind>() function sets the file position indicator for the stream "
4388 "pointed to by I<stream> to the beginning of the file. It is equivalent to:"
4390 "B<rewind>() 関数は I<stream> によって指定されたストリームにおいて、ファイル"
4391 "位置表示子 をファイルの先頭にセットする。この関数は以下と等価である。"
4394 #: build/C/man3/fseek.3:97
4395 msgid "(void) fseek(stream, 0L, SEEK_SET)"
4396 msgstr "(void) fseek(stream, 0L, SEEK_SET)"
4399 #: build/C/man3/fseek.3:101
4401 "except that the error indicator for the stream is also cleared (see "
4404 "ただし B<rewind>() ではストリームに対するエラー表示子 (error indicator) も同"
4405 "時に クリアされる ( B<clearerr>(3) を見よ)。"
4408 #: build/C/man3/fseek.3:121
4410 "The B<fgetpos>() and B<fsetpos>() functions are alternate interfaces "
4411 "equivalent to B<ftell>() and B<fseek>() (with I<whence> set to "
4412 "B<SEEK_SET>), setting and storing the current value of the file offset into "
4413 "or from the object referenced by I<pos>. On some non-UNIX systems, an "
4414 "I<fpos_t> object may be a complex object and these routines may be the only "
4415 "way to portably reposition a text stream."
4417 "B<fgetpos>() 関数と B<fsetpos>() 関数は、それぞれ B<ftell>() と "
4418 "B<fseek>() で I<whence> に B<SEEK_SET> を指定した場合と同様の機能を、異なる"
4419 "インターフェースで提供する。 B<fgetpos>() はファイルオフセットの現在の値を "
4420 "I<pos> が参照するオブジェクトに保存し、 B<fsetpos>() はファイルオフセットを "
4421 "I<pos> に設定する。 UNIX 以外のシステムにおいては、 I<fpos_t> が構造体などの"
4422 "複雑なオブジェクトになっていて、これらのルーチンがテキス トストリームでファイ"
4423 "ル位置を変更する方法のうち、移植性のある唯一のもの になっている場合もある。"
4426 #: build/C/man3/fseek.3:136
4428 "The B<rewind>() function returns no value. Upon successful completion, "
4429 "B<fgetpos>(), B<fseek>(), B<fsetpos>() return 0, and B<ftell>() returns "
4430 "the current offset. Otherwise, -1 is returned and I<errno> is set to "
4431 "indicate the error."
4433 "B<rewind>() は返り値を持たない。 B<fgetpos>(), B<fseek>(), B<fsetpos>() は"
4434 "成功すると 0 を返す。 B<ftell>() は現在のオフセットを返す。失敗した場合は返"
4435 "り値は -1 となり、 I<errno> にエラーを示す値がセットされる。"
4438 #: build/C/man3/fseek.3:142
4439 msgid "The I<stream> specified is not a seekable stream."
4440 msgstr "指定した I<stream> がシークできない。"
4443 #: build/C/man3/fseek.3:154
4445 "The I<whence> argument to B<fseek>() was not B<SEEK_SET>, B<SEEK_END>, or "
4446 "B<SEEK_CUR>. Or: the resulting file offset would be negative."
4448 "B<fseek>() 関数に対して与えた I<whence> 引数が B<SEEK_SET>, B<SEEK_END>, "
4449 "B<SEEK_CUR> 以外の値であった。 または、更新後のファイルオフセットが負になって"
4453 #: build/C/man3/fseek.3:169
4455 "The functions B<fgetpos>(), B<fseek>(), B<fsetpos>(), and B<ftell>() may "
4456 "also fail and set I<errno> for any of the errors specified for the routines "
4457 "B<fflush>(3), B<fstat>(2), B<lseek>(2), and B<malloc>(3)."
4459 "B<fgetpos>(), B<fseek>(), B<fsetpos>(), B<ftell>() は、それぞれ "
4460 "B<fflush>(3), B<fstat>(2), B<lseek>(2), B<malloc>(3) などのルーチンを呼び出"
4461 "す際に失敗する可能性がある。この場合は それぞれ対応した I<errno> が設定され"
4465 #: build/C/man3/fseek.3:174
4466 msgid "B<lseek>(2), B<fseeko>(3)"
4467 msgstr "B<lseek>(2), B<fseeko>(3)"
4470 #: build/C/man3/fseeko.3:25
4476 #: build/C/man3/fseeko.3:25
4482 #: build/C/man3/fseeko.3:28
4483 msgid "fseeko, ftello - seek to or report file position"
4484 msgstr "fseeko, ftello - ファイル位置を探す/報告する"
4487 #: build/C/man3/fseeko.3:33
4489 msgid "B<int fseeko(FILE *>I<stream>B<, off_t >I<offset>B<, int >I<whence>B<);>\n"
4490 msgstr "B<int fseeko(FILE *>I<stream>B<, off_t >I<offset>B<, int >I<whence>B<);>\n"
4493 #: build/C/man3/fseeko.3:36
4496 "B<off_t ftello(FILE *>I<stream>B<);>\n"
4499 "B<off_t ftello(FILE *>I<stream>B<);>\n"
4503 #: build/C/man3/fseeko.3:45
4504 msgid "B<fseeko>(), B<ftello>():"
4505 msgstr "B<fseeko>(), B<ftello>():"
4508 #: build/C/man3/fseeko.3:50
4510 "_FILE_OFFSET_BITS\\ ==\\ 64 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || "
4511 "_XOPEN_SOURCE\\ E<gt>=\\ 600"
4513 "_FILE_OFFSET_BITS\\ ==\\ 64 || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || "
4514 "_XOPEN_SOURCE\\ E<gt>=\\ 600"
4517 #: build/C/man3/fseeko.3:52
4518 msgid "(defining the obsolete _LARGEFILE_SOURCE macro also works)"
4519 msgstr "(廃止予定のマクロ _LARGEFILE_SOURCE を指定しても動作する)"
4522 #: build/C/man3/fseeko.3:75
4524 "The B<fseeko>() and B<ftello>() functions are identical to B<fseek>(3) "
4525 "and B<ftell>(3) (see B<fseek>(3)), respectively, except that the I<offset> "
4526 "argument of B<fseeko>() and the return value of B<ftello>() is of type "
4527 "I<off_t> instead of I<long>."
4529 "B<fseeko>() 関数および B<ftello>() 関数は、 それぞれ B<fseek>(3) および "
4530 "B<ftell>(3) と同一の機能を持つ (B<fseek>(3) を見よ) が、ただし "
4531 "B<fseeko>() 関数の I<offset> 引数と B<ftello>() の返り値が、 I<long> ではな"
4532 "く I<off_t> になっている。"
4535 #: build/C/man3/fseeko.3:82
4537 "On many architectures both I<off_t> and I<long> are 32-bit types, but "
4540 "多くのアーキテクチャでは I<off_t> も I<long> も共に 32 ビットの型であるが、"
4543 #: build/C/man3/fseeko.3:86 build/C/man3/lseek64.3:81
4545 msgid "#define _FILE_OFFSET_BITS 64\n"
4546 msgstr "#define _FILE_OFFSET_BITS 64\n"
4549 #: build/C/man3/fseeko.3:92
4550 msgid "will turn I<off_t> into a 64-bit type."
4551 msgstr "でコンパイルすると I<off_t> は 64 ビット型となる。"
4554 #: build/C/man3/fseeko.3:101
4556 "On successful completion, B<fseeko>() returns 0, while B<ftello>() returns "
4557 "the current offset. Otherwise, -1 is returned and I<errno> is set to "
4558 "indicate the error."
4560 "成功した場合、 B<fseeko>() は 0 を、 B<ftello>() は現在のオフセットを返"
4561 "す。 失敗した場合、-1 を返し、 I<errno> にエラーを示す値をセットする。"
4564 #: build/C/man3/fseeko.3:104
4565 msgid "See the ERRORS in B<fseek>(3)."
4566 msgstr "B<fseek>(3) の「エラー」の節を参照。"
4569 #: build/C/man3/fseeko.3:106
4570 msgid "SUSv2, POSIX.1-2001."
4571 msgstr "SUSv2, POSIX.1-2001."
4574 #: build/C/man3/fseeko.3:110
4576 "These functions are found on System V-like systems. They are not present in "
4577 "libc4, libc5, glibc 2.0 but are available since glibc 2.1."
4579 "これらの関数は System V 的なシステムにある。 libc4, libc5, glibc 2.0 にはな"
4580 "かったが、 glibc 2.1 から使えるようになった。"
4583 #: build/C/man3/fseeko.3:112
4585 msgstr "B<fseek>(3)"
4588 #: build/C/man3/getline.3:26
4594 #: build/C/man3/getline.3:29
4595 msgid "getline, getdelim - delimited string input"
4596 msgstr "getline, getdelim - 区切り文字までの文字列入力を読み込む"
4599 #: build/C/man3/getline.3:34
4601 msgid "B<ssize_t getline(char **>I<lineptr>B<, size_t *>I<n>B<, FILE *>I<stream>B<);>\n"
4602 msgstr "B<ssize_t getline(char **>I<lineptr>B<, size_t *>I<n>B<, FILE *>I<stream>B<);>\n"
4605 #: build/C/man3/getline.3:37
4607 msgid "B<ssize_t getdelim(char **>I<lineptr>B<, size_t *>I<n>B<, int >I<delim>B<, FILE *>I<stream>B<);>\n"
4608 msgstr "B<ssize_t getdelim(char **>I<lineptr>B<, size_t *>I<n>B<, int >I<delim>B<, FILE *>I<stream>B<);>\n"
4611 #: build/C/man3/getline.3:47
4612 msgid "B<getline>(), B<getdelim>():"
4613 msgstr "B<getline>(), B<getdelim>():"
4616 #: build/C/man3/getline.3:52
4617 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700"
4618 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700"
4621 #: build/C/man3/getline.3:65
4623 "B<getline>() reads an entire line from I<stream>, storing the address of "
4624 "the buffer containing the text into I<*lineptr>. The buffer is null-"
4625 "terminated and includes the newline character, if one was found."
4627 "B<getline>() は I<stream> から 1 行全てを読み込み、テキストが含まれている"
4628 "バッファのアドレスを I<*lineptr> に格納する。 バッファはヌル文字 (\\e0) で終"
4629 "端される。 改行文字が見つかった場合は、改行文字もバッファに格納される。"
4632 #: build/C/man3/getline.3:77
4634 "If I<*lineptr> is set to NULL and I<*n> is set 0 before the call, then "
4635 "B<getline>() will allocate a buffer for storing the line. This buffer "
4636 "should be freed by the user program even if B<getline>() failed."
4638 "I<*lineptr> が NULL にセットされ、 I<*n> が呼び出し前に 0 にセットされた場"
4639 "合、 B<getline>() は行の内容を格納するためのバッファを確保する。 このバッ"
4640 "ファは、 B<getline>() が失敗した場合であっても、ユーザーのプログラムで解放す"
4644 #: build/C/man3/getline.3:95
4646 "Alternatively, before calling B<getline>(), I<*lineptr> can contain a "
4647 "pointer to a B<malloc>(3)-allocated buffer I<*n> bytes in size. If the "
4648 "buffer is not large enough to hold the line, B<getline>() resizes it with "
4649 "B<realloc>(3), updating I<*lineptr> and I<*n> as necessary."
4651 "別の方法として、 B<getline>() を呼び出す際に、 I<*lineptr> に B<malloc>(3) "
4652 "で確保した大きさ I<*n> バイトのバッファへのポインタを入れて渡すこともでき"
4653 "る。 読み込んだ行を保持するのに十分なバッファがない場合、 B<getline>() は "
4654 "B<realloc>(3) を使ってバッファのサイズを変更し、必要に応じて I<*lineptr> と "
4658 #: build/C/man3/getline.3:101
4660 "In either case, on a successful call, I<*lineptr> and I<*n> will be updated "
4661 "to reflect the buffer address and allocated size respectively."
4663 "どちらの場合でも、呼び出しに成功したときには、 I<*lineptr> と I<*n> がバッ"
4664 "ファのアドレスと割り当てたサイズを反映した値に更新される。"
4667 #: build/C/man3/getline.3:112
4669 "B<getdelim>() works like B<getline>(), except that a line delimiter other "
4670 "than newline can be specified as the I<delimiter> argument. As with "
4671 "B<getline>(), a delimiter character is not added if one was not present in "
4672 "the input before end of file was reached."
4674 "B<getdelim>() は B<getline>() と同じように動作するが、改行文字以外の区切り"
4675 "文字を引き数 I<delim> に指定することができる。 B<getline>() と同様に、ファイ"
4676 "ル終端に達するまでに入力行に区切り文字が見付からない場合は、 区切り文字をバッ"
4680 #: build/C/man3/getline.3:121
4682 "On success, B<getline>() and B<getdelim>() return the number of characters "
4683 "read, including the delimiter character, but not including the terminating "
4684 "null byte (\\(aq\\e0\\(aq). This value can be used to handle embedded null "
4685 "bytes in the line read."
4687 "成功した場合、 B<getline>() と B<getdelim>() は読み込んだ文字数を返す。 文"
4688 "字数には区切り文字は含まれるが、終端に使うヌルバイト (\\(aq\\e0\\(aq) は含ま"
4689 "れない。 この値によって、読み込んだ行に含まれるヌルバイトを操作することができ"
4693 #: build/C/man3/getline.3:127
4695 "Both functions return -1 on failure to read a line (including end-of-file "
4696 "condition). In the event of an error, I<errno> is set to indicate the cause."
4698 "どちらの関数も、行の読み込みに失敗した場合には -1 を返す (ファイルの終端に達"
4699 "した場合にも -1 を返す)。 エラーが発生した場合には、 I<errno> にエラーの原因"
4703 #: build/C/man3/getline.3:137
4704 msgid "Bad arguments (I<n> or I<lineptr> is NULL, or I<stream> is not valid)."
4706 "引き数が不正である (I<n> または I<lineptr> が NULL である。 もしくは "
4707 "I<stream> が有効でない)。"
4710 #: build/C/man3/getline.3:139
4711 msgid "These functions are available since libc 4.6.27."
4712 msgstr "これらの関数は libc 4.6.27 以降で利用可能である。"
4715 #: build/C/man3/getline.3:146
4717 "Both B<getline>() and B<getdelim>() were originally GNU extensions. They "
4718 "were standardized in POSIX.1-2008."
4720 "B<getline>() と B<getdelim>() は、どちらも元は GNU による拡張であったが、 "
4721 "POSIX.1-2008 で標準化された。"
4724 #: build/C/man3/getline.3:151
4727 "#define _GNU_SOURCE\n"
4728 "#include E<lt>stdio.hE<gt>\n"
4729 "#include E<lt>stdlib.hE<gt>\n"
4731 "#define _GNU_SOURCE\n"
4732 "#include E<lt>stdio.hE<gt>\n"
4733 "#include E<lt>stdlib.hE<gt>\n"
4736 #: build/C/man3/getline.3:159
4743 " char *line = NULL;\n"
4744 " size_t len = 0;\n"
4751 " char *line = NULL;\n"
4752 " size_t len = 0;\n"
4756 #: build/C/man3/getline.3:163
4759 " fp = fopen(\"/etc/motd\", \"r\");\n"
4760 " if (fp == NULL)\n"
4761 " exit(EXIT_FAILURE);\n"
4763 " fp = fopen(\"/etc/motd\", \"r\");\n"
4764 " if (fp == NULL)\n"
4765 " exit(EXIT_FAILURE);\n"
4768 #: build/C/man3/getline.3:168
4771 " while ((read = getline(&line, &len, fp)) != -1) {\n"
4772 " printf(\"Retrieved line of length %zu :\\en\", read);\n"
4773 " printf(\"%s\", line);\n"
4776 " while ((read = getline(&line, &len, fp)) != -1) {\n"
4777 " printf(\"Retrieved line of length %zu :\\en\", read);\n"
4778 " printf(\"%s\", line);\n"
4782 #: build/C/man3/getline.3:172
4786 " exit(EXIT_SUCCESS);\n"
4790 " exit(EXIT_SUCCESS);\n"
4794 #: build/C/man3/getline.3:179
4795 msgid "B<read>(2), B<fgets>(3), B<fopen>(3), B<fread>(3), B<scanf>(3)"
4796 msgstr "B<read>(2), B<fgets>(3), B<fopen>(3), B<fread>(3), B<scanf>(3)"
4799 #: build/C/man3/gets.3:29
4805 #: build/C/man3/gets.3:29
4811 #: build/C/man3/gets.3:32
4812 msgid "gets - get a string from standard input (DEPRECATED)"
4813 msgstr "gets - 標準入力からの文字列を取得する (非推奨)"
4816 #: build/C/man3/gets.3:37
4818 msgid "B<char *gets(char *>I<s>B<);>\n"
4819 msgstr "B<char *gets(char *>I<s>B<);>\n"
4822 #: build/C/man3/gets.3:40
4823 msgid "I<Never use this function>."
4824 msgstr "I<この関数は使用しないこと>。"
4827 #: build/C/man3/gets.3:50
4829 "B<gets>() reads a line from I<stdin> into the buffer pointed to by I<s> "
4830 "until either a terminating newline or B<EOF>, which it replaces with a null "
4831 "byte (\\(aq\\e0\\(aq). No check for buffer overrun is performed (see BUGS "
4834 "B<gets>() は、改行文字か B<EOF> までの 1行を I<stdin> から読み込み I<s> が指"
4835 "すバッファに格納する (末尾の改行文字や B<EOF> はヌルバイト (\\(aq\\e0\\(aq) "
4836 "に置き換えられる)。 バッファオーバーランのチェックは行われない (下記の「バ"
4840 #: build/C/man3/gets.3:58
4842 "B<gets>() returns I<s> on success, and NULL on error or when end of file "
4843 "occurs while no characters have been read. However, given the lack of "
4844 "buffer overrun checking, there can be no guarantees that the function will "
4847 "B<gets>() は、成功すると I<s> を返し、エラーや 1 文字も読み込んでいないのに"
4848 "ファイルの終わりになった 場合に NULL を返す。 しかし、バッファの行き過ぎの"
4849 "チェックが行われないため、この関数が返るという保証はない。"
4852 #: build/C/man3/gets.3:72
4854 "LSB deprecates B<gets>(). POSIX.1-2008 marks B<gets>() obsolescent. ISO "
4855 "C11 removes the specification of B<gets>() from the C language, and since "
4856 "version 2.16, glibc header files don't expose the function declaration if "
4857 "the B<_ISOC11_SOURCE> feature test macro is defined."
4859 "LSB は B<gets>() を非推奨としている。\n"
4860 "POSIX.1-2008 では B<gets>() に廃止予定の印が付けられている。\n"
4861 "ISO C11 では B<gets>)() の規定が C 言語から削除されている。\n"
4862 "glibc バージョン 2.16 以降では、機能検査マクロ B<_ISOC11_SOURCE> が定義され"
4864 "場合、glibc ヘッダファイルでは B<gets>)() の宣言が公開されない。"
4867 #: build/C/man3/gets.3:86
4869 "Never use B<gets>(). Because it is impossible to tell without knowing the "
4870 "data in advance how many characters B<gets>() will read, and because "
4871 "B<gets>() will continue to store characters past the end of the buffer, it "
4872 "is extremely dangerous to use. It has been used to break computer "
4873 "security. Use B<fgets>() instead."
4875 "B<gets>() は絶対に使用してはならない。 前もってデータを知ることなしに "
4876 "B<gets>() が何文字読むかを知ることはできず、 B<gets>() がバッファの終わりを"
4877 "越えて書き込み続けるため、 B<gets>() を使うのは極めて危険である。 これを利用"
4878 "してコンピュータのセキュリティが破られてきた。 代わりに B<fgets>() を使うこ"
4882 #: build/C/man3/gets.3:90
4884 "For more information, see CWE-242 (aka \"Use of Inherently Dangerous Function"
4885 "\") at http://cwe.mitre.org/data/definitions/242.html"
4887 "詳しい情報については、CWE-242 (別名 \"Use of Inherently Dangerous Function"
4888 "\" (「本質的に危険な関数を使う」)) を参照。 http://cwe.mitre.org/data/"
4889 "definitions/242.html で参照できる。"
4892 #: build/C/man3/gets.3:108
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)"
4899 "B<read>(2), B<write>(2), B<ferror>(3), B<fgetc>(3), B<fgets>(3), "
4900 "B<fgetwc>(3), B<fgetws>(3), B<fopen>(3), B<fread>(3), B<fseek>(3), "
4901 "B<getline>(3), B<getwchar>(3), B<puts>(3), B<scanf>(3), B<ungetwc>(3), "
4902 "B<unlocked_stdio>(3), B<feature_test_macros>(7)"
4905 #: build/C/man3/getw.3:25
4911 #: build/C/man3/getw.3:25
4917 #: build/C/man3/getw.3:28
4918 msgid "getw, putw - input and output of words (ints)"
4919 msgstr "getw, putw - ワード(int)の入出力"
4922 #: build/C/man3/getw.3:33
4924 msgid "B<int getw(FILE *>I<stream>B<);>\n"
4925 msgstr "B<int getw(FILE *>I<stream>B<);>\n"
4928 #: build/C/man3/getw.3:35
4930 msgid "B<int putw(int >I<w>B<, FILE *>I<stream>B<);>\n"
4931 msgstr "B<int putw(int >I<w>B<, FILE *>I<stream>B<);>\n"
4934 #: build/C/man3/getw.3:44
4935 msgid "B<getw>(), B<putw>():"
4936 msgstr "B<getw>(), B<putw>():"
4939 #: build/C/man3/getw.3:47
4941 msgid "Since glibc 2.3.3:"
4942 msgstr "glibc 2.3.3 以降:"
4945 #: build/C/man3/getw.3:50
4946 msgid "_SVID_SOURCE || _BSD_SOURCE ||"
4947 msgstr "_SVID_SOURCE || _BSD_SOURCE ||"
4950 #: build/C/man3/getw.3:53
4953 "(_XOPEN_SOURCE &&\n"
4954 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600))\n"
4956 "(_XOPEN_SOURCE &&\n"
4957 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600))\n"
4960 #: build/C/man3/getw.3:53
4962 msgid "Before glibc 2.3.3:"
4963 msgstr "glibc 2.3.3 より前:"
4966 #: build/C/man3/getw.3:56
4967 msgid "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE"
4968 msgstr "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE"
4971 #: build/C/man3/getw.3:66
4973 "B<getw>() reads a word (that is, an I<int>) from I<stream>. It's provided "
4974 "for compatibility with SVr4. We recommend you use B<fread>(3) instead."
4976 "B<getw>() は I<stream> からワード (I<int>型) を読み込む。 この関数は、SVr4 "
4977 "との互換性のために提供されている。 この関数の代わりに B<fread>(3) を使用する"
4981 #: build/C/man3/getw.3:73
4983 "B<putw>() writes the word I<w> (that is, an I<int>) to I<stream>. It is "
4984 "provided for compatibility with SVr4, but we recommend you use B<fwrite>(3) "
4987 "B<putw>() は I<stream> にワード I<w> (I<int>型) を書き込む。 この関数は "
4988 "SVr4 との互換性のために提供されているが、この関数の代わりに B<fwrite>(3) を"
4992 #: build/C/man3/getw.3:80
4994 "Normally, B<getw>() returns the word read, and B<putw>() returns 0. On "
4995 "error, they return B<EOF>."
4997 "通常、 B<getw>() は読み込んだワードを返し、 B<putw>() は 0 を返す。 エラー"
4998 "が発生した場合、これらの関数は B<EOF> を返す。"
5001 #: build/C/man3/getw.3:83
5002 msgid "SVr4, SUSv2. Not present in POSIX.1-2001."
5003 msgstr "SVr4, SUSv2. POSIX.1-2001 には存在しない。"
5006 #: build/C/man3/getw.3:87
5008 "The value returned on error is also a legitimate data value. B<ferror>(3) "
5009 "can be used to distinguish between the two cases."
5011 "エラーの時に返される値は、正しいデータとして返されることもある。 "
5012 "B<ferror>(3) を用いると、この二つの場合を区別することが出来る。"
5015 #: build/C/man3/getw.3:93
5016 msgid "B<ferror>(3), B<fread>(3), B<fwrite>(3), B<getc>(3), B<putc>(3)"
5017 msgstr "B<ferror>(3), B<fread>(3), B<fwrite>(3), B<getc>(3), B<putc>(3)"
5020 #: build/C/man2/link.2:32
5026 #: build/C/man2/link.2:32 build/C/man2/open.2:51 build/C/man2/readlink.2:44
5032 #: build/C/man2/link.2:35
5033 msgid "link, linkat - make a new name for a file"
5034 msgstr "link, linkat - ファイルの新しい名前を作成する"
5037 #: build/C/man2/link.2:38 build/C/man2/pipe.2:42 build/C/man2/read.2:41
5038 #: build/C/man2/readlink.2:50 build/C/man2/symlink.2:39
5039 #: build/C/man2/unlink.2:39
5041 msgid "B<#include E<lt>unistd.hE<gt>>\n"
5042 msgstr "B<#include E<lt>unistd.hE<gt>>\n"
5045 #: build/C/man2/link.2:40
5047 msgid "B<int link(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
5048 msgstr "B<int link(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
5051 #: build/C/man2/link.2:43 build/C/man2/readlink.2:56 build/C/man2/symlink.2:44
5052 #: build/C/man2/unlink.2:44
5055 "B<#include E<lt>fcntl.hE<gt> >/* Definition of AT_* constants */\n"
5056 "B<#include E<lt>unistd.hE<gt>>\n"
5058 "B<#include E<lt>fcntl.hE<gt> >/* AT_* 定数の定義 */\n"
5059 "B<#include E<lt>unistd.hE<gt>>\n"
5062 #: build/C/man2/link.2:46
5065 "B<int linkat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
5066 "B< int >I<newdirfd>B<, const char *>I<newpath>B<, int >I<flags>B<);>\n"
5068 "B<int linkat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
5069 "B< int >I<newdirfd>B<, const char *>I<newpath>B<, int >I<flags>B<);>\n"
5072 #: build/C/man2/link.2:54
5073 msgid "B<linkat>():"
5074 msgstr "B<linkat>():"
5077 #: build/C/man2/link.2:63 build/C/man2/open.2:85 build/C/man2/readlink.2:83
5078 #: build/C/man2/rename.2:69 build/C/man2/symlink.2:71 build/C/man2/unlink.2:63
5079 msgid "_ATFILE_SOURCE"
5080 msgstr "_ATFILE_SOURCE"
5083 #: build/C/man2/link.2:69
5085 "B<link>() creates a new link (also known as a hard link) to an existing "
5088 "B<link>() は存在するファイルへの新しいリンク (link) (ハードリンク (hard "
5089 "link) ともいう) を作成する。"
5092 #: build/C/man2/link.2:75
5093 msgid "If I<newpath> exists, it will I<not> be overwritten."
5094 msgstr "I<newpath> が存在する場合には、上書きはI<されない>。"
5097 #: build/C/man2/link.2:80
5099 "This new name may be used exactly as the old one for any operation; both "
5100 "names refer to the same file (and so have the same permissions and "
5101 "ownership) and it is impossible to tell which name was the \"original\"."
5103 "この新しい名前は全ての操作において古い名前と完全に同じように使用される; 両方"
5104 "の名前は同じファイルを参照しており (それで同じ許可 (permission) や所有者 "
5105 "(ownership) となるので)、 どちらの名前が本来のものであるか判別できない。"
5108 #: build/C/man2/link.2:80
5114 #: build/C/man2/link.2:86
5116 "The B<linkat>() system call operates in exactly the same way as B<link>(), "
5117 "except for the differences described here."
5119 "B<linkat>() システムコールは B<link>() と全く同様に動作するが、以下で説明する"
5123 #: build/C/man2/link.2:96
5125 "If the pathname given in I<oldpath> is relative, then it is interpreted "
5126 "relative to the directory referred to by the file descriptor I<olddirfd> "
5127 "(rather than relative to the current working directory of the calling "
5128 "process, as is done by B<link>() for a relative pathname)."
5130 "I<oldpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスクリ"
5131 "プター I<olddirfd> が参照するディレクトリに対する相対パスと解釈される "
5132 "(B<link>(2) に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
5133 "ワーキングディレクトリに対する相対パスではない)。"
5136 #: build/C/man2/link.2:108
5138 "If I<oldpath> is relative and I<olddirfd> is the special value B<AT_FDCWD>, "
5139 "then I<oldpath> is interpreted relative to the current working directory of "
5140 "the calling process (like B<link>())."
5142 "I<oldpath> で指定されたパス名が相対パスで、 I<olddirfd> が特別な値 "
5143 "B<AT_FDCWD> の場合、 (B<link>(2) と同様に) I<oldpath> は呼び出したプロセスの"
5144 "カレントワーキングディレクトリに対する相対パスと解釈される。"
5147 #: build/C/man2/link.2:114 build/C/man2/rename.2:158
5148 msgid "If I<oldpath> is absolute, then I<olddirfd> is ignored."
5150 "I<oldpath> で指定されたパス名が絶対パスの場合、 I<olddirfd> は無視される。"
5153 #: build/C/man2/link.2:122 build/C/man2/rename.2:166
5155 "The interpretation of I<newpath> is as for I<oldpath>, except that a "
5156 "relative pathname is interpreted relative to the directory referred to by "
5157 "the file descriptor I<newdirfd>."
5159 "I<newpath> の解釈は I<oldpath> と同じである。 相対パスのパス名がファイルディ"
5160 "スクリプター I<newdirfd> が参照するディレクトリと解釈される点だけが異なる。"
5163 #: build/C/man2/link.2:125
5164 msgid "The following values can be bitwise ORed in I<flags>:"
5165 msgstr "以下の値のビット単位の論理和を I<flags> に指定できる。"
5168 #: build/C/man2/link.2:125
5170 msgid "B<AT_EMPTY_PATH> (since Linux 2.6.39)"
5171 msgstr "B<AT_EMPTY_PATH> (Linux 2.6.39 以降)"
5173 #. commit 11a7b371b64ef39fc5fb1b6f2218eef7c4d035e3
5174 #. Before glibc 2.16, defining _ATFILE_SOURCE sufficed
5176 #: build/C/man2/link.2:152
5179 #| "If I<oldpath> is an empty string, create a link to the file referenced by "
5180 #| "I<olddirfd> (which may have been obtained using the B<open>(2) B<O_PATH> "
5181 #| "flag). In this case, I<olddirfd> must refer to a file other than a "
5182 #| "directory. The caller must have the B<CAP_DAC_READ_SEARCH> capability in "
5183 #| "order to use this flag; this prevents arbitrary users from creating hard "
5184 #| "links using file descriptors received via a UNIX domain socket (see the "
5185 #| "discussion of B<SCM_RIGHTS> in B<unix>(7)). This flag is Linux-specific; "
5186 #| "define B<_GNU_SOURCE> to obtain its definition."
5188 "If I<oldpath> is an empty string, create a link to the file referenced by "
5189 "I<olddirfd> (which may have been obtained using the B<open>(2) B<O_PATH> "
5190 "flag). In this case, I<olddirfd> can refer to any type of file, not just a "
5191 "directory. This will generally not work if the file has a link count of "
5192 "zero (files created with B<O_TMPFILE> and without B<O_EXCL> are an "
5193 "exception). The caller must have the B<CAP_DAC_READ_SEARCH> capability in "
5194 "order to use this flag. This flag is Linux-specific; define B<_GNU_SOURCE> "
5195 "to obtain its definition."
5197 "I<oldpath> が空文字列の場合、 I<olddirfd> が参照するファイルへのリンクを作成"
5198 "する (I<olddirfd> は B<open>(2) の B<O_PATH> フラグを使って取得する)。 この場"
5199 "合、 I<olddirfd> はディレクトリではなくファイルを参照していなければならな"
5200 "い。 このフラグを使用するためには、 呼び出し元は B<CAP_DAC_READ_SEARCH> ケー"
5201 "パビリティを持っていなければならない。 これにより、 任意のユーザーが UNIX ド"
5202 "メインソケット経由で受信したファイルディスクリプターを使ってハードリンクを作"
5203 "成することがないようになっている (B<unix>(7) の B<SCM_RIGHTS> の議論を参"
5204 "照)。 このフラグは Linux 固有で、 この定義を得るには B<_GNU_SOURCE> を定義す"
5208 #: build/C/man2/link.2:152
5210 msgid "B<AT_SYMLINK_FOLLOW> (since Linux 2.6.18)"
5211 msgstr "B<AT_SYMLINK_FOLLOW> (Linux 2.6.18 以降)"
5214 #: build/C/man2/link.2:171
5217 #| "By default, B<linkat>(), does not dereference I<oldpath> if it is a "
5218 #| "symbolic link (like B<link>()). The flag B<AT_SYMLINK_FOLLOW> can be "
5219 #| "specified in I<flags> to cause I<oldpath> to be dereferenced if it is a "
5222 "By default, B<linkat>(), does not dereference I<oldpath> if it is a symbolic "
5223 "link (like B<link>()). The flag B<AT_SYMLINK_FOLLOW> can be specified in "
5224 "I<flags> to cause I<oldpath> to be dereferenced if it is a symbolic link. "
5225 "If procfs is mounted, this can be used as an alternative to "
5226 "B<AT_EMPTY_PATH>, like this:"
5228 "B<linkat>() は (B<link>() 同様) デフォルトでは I<oldpath> がシンボリックリン"
5229 "クの場合リンクの展開を行わない。 フラグ B<AT_SYMLINK_FOLLOW> を I<flags> に指"
5230 "定することができ、指定した場合 I<oldpath> がシンボリックリンクの場合リンクの"
5234 #: build/C/man2/link.2:176
5237 "linkat(AT_FDCWD, \"/proc/self/fd/E<lt>fdE<gt>\", newdirfd,\n"
5238 " newname, AT_SYMLINK_FOLLOW);\n"
5240 "linkat(AT_FDCWD, \"/proc/self/fd/E<lt>fdE<gt>\", newdirfd,\n"
5241 " newname, AT_SYMLINK_FOLLOW);\n"
5244 #: build/C/man2/link.2:182
5246 "Before kernel 2.6.18, the I<flags> argument was unused, and had to be "
5249 "カーネル 2.6.18 より前では、 I<flags> 引き数は未使用で、 0 を指定しなければな"
5253 #: build/C/man2/link.2:187
5254 msgid "See B<openat>(2) for an explanation of the need for B<linkat>()."
5255 msgstr "B<linkat>() の必要性についての説明については B<openat>(2) を参照。"
5258 #: build/C/man2/link.2:192 build/C/man2/pipe.2:134 build/C/man3/remove.3:65
5259 #: build/C/man2/rename.2:208 build/C/man2/rmdir.2:45
5260 #: build/C/man2/symlink.2:145 build/C/man2/unlink.2:158
5262 "On success, zero is returned. On error, -1 is returned, and I<errno> is set "
5265 "成功した場合は 0 が返される。エラーの場合は -1 が返され、 I<errno> が適切に設"
5269 #: build/C/man2/link.2:193 build/C/man2/open.2:796 build/C/man2/readlink.2:160
5270 #: build/C/man2/rename.2:209 build/C/man2/rmdir.2:46
5271 #: build/C/man2/symlink.2:146 build/C/man3/tmpfile.3:57
5272 #: build/C/man2/unlink.2:159
5278 #: build/C/man2/link.2:204
5280 "Write access to the directory containing I<newpath> is denied, or search "
5281 "permission is denied for one of the directories in the path prefix of "
5282 "I<oldpath> or I<newpath>. (See also B<path_resolution>(7).)"
5284 "I<newpath> を含んでいるディレクトリへの書き込みが許されていないか、 "
5285 "I<oldpath> または I<newpath> へのディレクトリのどれかに検索許可がない "
5286 "(B<path_resolution>(7) を参照)。"
5289 #: build/C/man2/link.2:204 build/C/man2/open.2:805 build/C/man2/rename.2:245
5290 #: build/C/man2/symlink.2:155 build/C/man2/write.2:135
5296 #: build/C/man2/link.2:207 build/C/man2/rename.2:248
5297 msgid "The user's quota of disk blocks on the filesystem has been exhausted."
5299 "ディスクブロックか inode がそのファイルシステムのユーザクォータに達していた。"
5302 #: build/C/man2/link.2:207 build/C/man2/open.2:811 build/C/man2/rename.2:368
5303 #: build/C/man2/symlink.2:160 build/C/man3/tmpfile.3:60
5309 #: build/C/man2/link.2:211
5310 msgid "I<newpath> already exists."
5311 msgstr "I<newpath> が既に存在する。"
5314 #: build/C/man2/link.2:211 build/C/man2/llseek.2:74 build/C/man2/open.2:817
5315 #: build/C/man2/open_by_handle_at.2:266 build/C/man2/open_by_handle_at.2:321
5316 #: build/C/man2/pipe.2:135 build/C/man2/read.2:118 build/C/man2/readlink.2:165
5317 #: build/C/man2/rename.2:248 build/C/man2/rmdir.2:64
5318 #: build/C/man2/symlink.2:164 build/C/man2/unlink.2:178
5319 #: build/C/man2/write.2:141
5325 #: build/C/man2/link.2:214 build/C/man2/rename.2:251
5326 msgid "I<oldpath> or I<newpath> points outside your accessible address space."
5328 "I<oldpath> や I<newpath> がアクセス可能なアドレス空間の外を指している。"
5331 #: build/C/man2/link.2:214 build/C/man2/read.2:147 build/C/man2/readlink.2:181
5332 #: build/C/man2/symlink.2:167 build/C/man2/unlink.2:182
5333 #: build/C/man2/write.2:165
5339 #: build/C/man2/link.2:217 build/C/man2/symlink.2:170
5340 #: build/C/man2/unlink.2:185
5341 msgid "An I/O error occurred."
5342 msgstr "I/O エラーが発生した。"
5345 #: build/C/man2/link.2:217 build/C/man2/open.2:878 build/C/man2/open.2:882
5346 #: build/C/man2/open_by_handle_at.2:331 build/C/man2/readlink.2:184
5347 #: build/C/man2/rename.2:261 build/C/man2/rmdir.2:73
5348 #: build/C/man2/symlink.2:170 build/C/man2/unlink.2:190
5354 #: build/C/man2/link.2:221 build/C/man2/rename.2:265
5356 "Too many symbolic links were encountered in resolving I<oldpath> or "
5359 "I<oldpath> または I<newpath> を解決する際に遭遇したシンボリックリンクが多過ぎ"
5363 #: build/C/man2/link.2:221 build/C/man2/rename.2:265
5369 #: build/C/man2/link.2:226
5371 "The file referred to by I<oldpath> already has the maximum number of links "
5374 "I<oldpath> によって参照されるファイルは 既に最大数までのリンクを持っている。"
5377 #: build/C/man2/link.2:226 build/C/man2/open.2:894 build/C/man2/readlink.2:187
5378 #: build/C/man2/rename.2:272 build/C/man2/rmdir.2:77
5379 #: build/C/man2/symlink.2:174 build/C/man2/unlink.2:194
5381 msgid "B<ENAMETOOLONG>"
5382 msgstr "B<ENAMETOOLONG>"
5385 #: build/C/man2/link.2:229 build/C/man2/rename.2:275
5386 msgid "I<oldpath> or I<newpath> was too long."
5387 msgstr "I<oldpath> または I<newpath> が長過ぎる。"
5390 #: build/C/man2/link.2:229 build/C/man2/link.2:286 build/C/man2/link.2:294
5391 #: build/C/man2/link.2:304 build/C/man2/open.2:908 build/C/man2/open.2:915
5392 #: build/C/man2/open_by_handle_at.2:282 build/C/man2/readlink.2:190
5393 #: build/C/man2/rename.2:275 build/C/man2/rename.2:389 build/C/man2/rmdir.2:80
5394 #: build/C/man2/symlink.2:177 build/C/man2/symlink.2:212
5395 #: build/C/man2/unlink.2:197
5401 #: build/C/man2/link.2:234
5403 "A directory component in I<oldpath> or I<newpath> does not exist or is a "
5404 "dangling symbolic link."
5406 "I<oldpath> または I<newpath> のディレクトリ部分が存在しないか、 壊れた"
5407 "(dangling)シンボリックリンクである。"
5410 #: build/C/man2/link.2:234 build/C/man2/open.2:929 build/C/man2/readlink.2:193
5411 #: build/C/man2/rename.2:288 build/C/man2/rmdir.2:85 build/C/man3/scanf.3:570
5412 #: build/C/man2/symlink.2:184 build/C/man3/tempnam.3:102
5413 #: build/C/man2/unlink.2:204
5419 #: build/C/man2/link.2:237 build/C/man2/open.2:932 build/C/man2/readlink.2:196
5420 #: build/C/man2/rename.2:291 build/C/man2/rmdir.2:88
5421 #: build/C/man2/symlink.2:187 build/C/man2/unlink.2:207
5422 msgid "Insufficient kernel memory was available."
5423 msgstr "十分なカーネルメモリーがない。"
5426 #: build/C/man2/link.2:237 build/C/man2/open.2:932 build/C/man2/rename.2:291
5427 #: build/C/man2/symlink.2:187 build/C/man3/tmpfile.3:72
5428 #: build/C/man2/write.2:168
5434 #: build/C/man2/link.2:241 build/C/man2/rename.2:295
5435 #: build/C/man2/symlink.2:191
5436 msgid "The device containing the file has no room for the new directory entry."
5438 "そのファイルを含んでいるデバイスに新しいディレクトリエントリを 作成するための"
5442 #: build/C/man2/link.2:241 build/C/man2/link.2:315 build/C/man2/open.2:938
5443 #: build/C/man2/open.2:1009 build/C/man2/open_by_handle_at.2:289
5444 #: build/C/man2/readlink.2:196 build/C/man2/readlink.2:206
5445 #: build/C/man2/rename.2:295 build/C/man2/rename.2:355 build/C/man2/rmdir.2:88
5446 #: build/C/man2/symlink.2:191 build/C/man2/symlink.2:218
5447 #: build/C/man2/unlink.2:207 build/C/man2/unlink.2:263
5453 #: build/C/man2/link.2:246
5455 "A component used as a directory in I<oldpath> or I<newpath> is not, in fact, "
5458 "I<oldpath> または I<newpath> のディレクトリ部分が、実際には、ディレクトリでな"
5462 #: build/C/man2/link.2:246 build/C/man2/link.2:250 build/C/man2/link.2:325
5463 #: build/C/man2/open.2:977 build/C/man2/open_by_handle_at.2:338
5464 #: build/C/man2/rmdir.2:107 build/C/man2/rmdir.2:118
5465 #: build/C/man2/symlink.2:196 build/C/man2/unlink.2:212
5471 #: build/C/man2/link.2:250
5472 msgid "I<oldpath> is a directory."
5473 msgstr "I<oldpath> がディレクトリである。"
5476 #: build/C/man2/link.2:255
5478 "The filesystem containing I<oldpath> and I<newpath> does not support the "
5479 "creation of hard links."
5481 "I<oldpath> と I<newpath> を含んでいるファイルシステムがハードリンクをサポート"
5485 #: build/C/man2/link.2:255
5487 msgid "B<EPERM> (since Linux 3.6)"
5488 msgstr "B<EPERM> (Linux 3.6 以降)"
5491 #: build/C/man2/link.2:262
5493 "The caller does not have permission to create a hard link to this file (see "
5494 "the description of I</proc/sys/fs/protected_hardlinks> in B<proc>(5))."
5496 "呼び出し元にこのファイルへのハードリンクを作成する許可がなかった (B<proc>(5) "
5497 "の I</proc/sys/fs/protected_hardlinks> の説明を参照)。"
5500 #: build/C/man2/link.2:262 build/C/man2/open.2:985 build/C/man2/rename.2:333
5501 #: build/C/man2/rmdir.2:123 build/C/man2/symlink.2:201
5502 #: build/C/man3/tmpfile.3:75 build/C/man2/unlink.2:235
5508 #: build/C/man2/link.2:265 build/C/man2/rename.2:336
5509 msgid "The file is on a read-only filesystem."
5510 msgstr "ファイルが読み込み専用のファイルシステムに存在する。"
5513 #: build/C/man2/link.2:265 build/C/man2/rename.2:336
5519 #: build/C/man2/link.2:273
5521 "I<oldpath> and I<newpath> are not on the same mounted filesystem. (Linux "
5522 "permits a filesystem to be mounted at multiple points, but B<link>() does "
5523 "not work across different mount points, even if the same filesystem is "
5526 "I<oldpath> と I<newpath> が同じマウントされたファイルシステムに存在しない。 "
5527 "(Linux は 1 つのファイルシステムを複数のマウント位置に マウントすることを許可"
5528 "している。 しかし B<link>() は、たとえ同じファイルシステムであっても、 別々"
5529 "のマウント位置を跨いでは動作しない。)"
5532 #: build/C/man2/link.2:276
5533 msgid "The following additional errors can occur for B<linkat>():"
5534 msgstr "B<linkat>() では以下のエラーも発生する。"
5537 #: build/C/man2/link.2:282 build/C/man2/rename.2:355
5538 msgid "I<olddirfd> or I<newdirfd> is not a valid file descriptor."
5539 msgstr "I<olddirfd> か I<newdirfd> が有効なファイルディスクリプタでない。"
5542 #: build/C/man2/link.2:286 build/C/man2/unlink.2:256
5543 msgid "An invalid flag value was specified in I<flags>."
5544 msgstr "無効なフラグ値が I<flags> に指定された。"
5547 #: build/C/man2/link.2:294
5549 "B<AT_EMPTY_PATH> was specified in I<flags>, but the caller did not have the "
5550 "B<CAP_DAC_READ_SEARCH> capability."
5552 "B<AT_EMPTY_PATH> が I<flags> に指定されたが、呼び出し元が "
5553 "B<CAP_DAC_READ_SEARCH> ケーパビリティを持っていなかった。"
5556 #: build/C/man2/link.2:299
5558 "An attempt was made to link to the I</proc/self/fd/NN> file corresponding to "
5559 "a file descriptor created with"
5561 "以下の呼び出しで作成されたファイルディスクリプターに対応する I</proc/self/fd/"
5562 "NN> ファイルに対してリンクを行おおうとした。"
5565 #: build/C/man2/link.2:301
5567 msgid " open(path, O_TMPFILE | O_EXCL, mode);\n"
5568 msgstr " open(path, O_TMPFILE | O_EXCL, mode);\n"
5571 #: build/C/man2/link.2:304
5572 msgid "See B<open>(2)."
5573 msgstr "B<open>(2) 参照。"
5576 #: build/C/man2/link.2:315
5578 "I<oldpath> is a relative pathname and I<olddirfd> refers to a directory that "
5579 "has been deleted, or I<newpath> is a relative pathname and I<newdirfd> "
5580 "refers to a directory that has been deleted."
5584 #: build/C/man2/link.2:325 build/C/man2/rename.2:365
5586 "I<oldpath> is relative and I<olddirfd> is a file descriptor referring to a "
5587 "file other than a directory; or similar for I<newpath> and I<newdirfd>"
5589 "I<oldpath> が相対パスで、 I<olddirfd> がディレクトリ以外のファイルを参照して"
5590 "いる。または I<newpath> と I<newdirfd> に関して同じ状況である。"
5593 #: build/C/man2/link.2:334
5595 "B<AT_EMPTY_PATH> was specified in I<flags>, I<oldpath> is an empty string, "
5596 "and I<olddirfd> refers to a directory."
5598 "I<flags> に B<AT_EMPTY_PATH> が指定され、 I<oldpath> が空文字列で、 "
5599 "I<olddirfd> がディレクトリを参照している。"
5602 #: build/C/man2/link.2:338
5604 "B<linkat>() was added to Linux in kernel 2.6.16; library support was added "
5605 "to glibc in version 2.4."
5607 "B<linkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポー"
5608 "トはバージョン 2.4 で glibc に追加された。"
5610 #. SVr4 documents additional ENOLINK and
5611 #. EMULTIHOP error conditions; POSIX.1 does not document ELOOP.
5612 #. X/OPEN does not document EFAULT, ENOMEM or EIO.
5614 #: build/C/man2/link.2:344
5615 msgid "B<link>(): SVr4, 4.3BSD, POSIX.1-2001 (but see NOTES), POSIX.1-2008."
5617 "B<link>(): SVr4, 4.3BSD, POSIX.1-2001 (但し「注意」を参照), POSIX.1-2008."
5620 #: build/C/man2/link.2:347
5621 msgid "B<linkat>(): POSIX.1-2008."
5622 msgstr "B<linkat>(): POSIX.1-2008."
5625 #: build/C/man2/link.2:354
5627 "Hard links, as created by B<link>(), cannot span filesystems. Use "
5628 "B<symlink>(2) if this is required."
5630 "B<link>() でファイルシステムを超えてハードリンクを作成することはできない。 "
5631 "このような場合は B<symlink>(2) を使用すること。"
5633 #. more precisely: since kernel 1.3.56
5634 #. For example, the default Solaris compilation environment
5635 #. behaves like Linux, and contributors to a March 2005
5636 #. thread in the Austin mailing list reported that some
5637 #. other (System V) implementations did/do the same -- MTK, Apr 05
5639 #: build/C/man2/link.2:385
5641 "POSIX.1-2001 says that B<link>() should dereference I<oldpath> if it is a "
5642 "symbolic link. However, since kernel 2.0, Linux does not do so: if "
5643 "I<oldpath> is a symbolic link, then I<newpath> is created as a (hard) link "
5644 "to the same symbolic link file (i.e., I<newpath> becomes a symbolic link to "
5645 "the same file that I<oldpath> refers to). Some other implementations behave "
5646 "in the same manner as Linux. POSIX.1-2008 changes the specification of "
5647 "B<link>(), making it implementation-dependent whether or not I<oldpath> is "
5648 "dereferenced if it is a symbolic link. For precise control over the "
5649 "treatment of symbolic links when creating a link, use B<linkat>(2)."
5651 "POSIX.1-2001 では、 I<oldpath> がシンボリックリンクである場合、 B<link>() "
5652 "は I<oldpath> の参照を解決すべきであると記述されている。 しかし、カーネル "
5653 "2.0 以降の Linux ではそのようになっていない。 I<oldpath> がシンボリックリンク"
5654 "である場合、 I<newpath> は同じシンボリックリンクファイルへの (ハード) リンク"
5655 "として作成される (つまり I<newpath> は I<oldpath> が参照していた同じファイル"
5656 "へのシンボリックリンクになる)。 他のいくつかの実装でも Linux と同じように動作"
5657 "する。 POSIX.1-2008 では B<link>() の仕様が変更され、 I<oldpath> がシンボ"
5658 "リックリンクの場合にシンボリックリンクの参照を 解決するかどうかは実装依存と"
5659 "なった。 リンク作成時のシンボリックリンクの扱いについての詳細な制御を行う場合"
5660 "には B<linkat>(2) を使用すること。"
5663 #: build/C/man2/link.2:391
5665 "On NFS filesystems, the return code may be wrong in case the NFS server "
5666 "performs the link creation and dies before it can say so. Use B<stat>(2) "
5667 "to find out if the link got created."
5669 "NFS ファイルシステムでは、NFS サーバーがリンクを作成した後に、 それを伝える前"
5670 "に死んだ場合には返り値が不正な場合がある。 リンクが作成できたかどうか見つける"
5671 "ためには B<stat>(2) を使用すること。"
5674 #: build/C/man2/link.2:400
5676 "B<ln>(1), B<open>(2), B<rename>(2), B<stat>(2), B<symlink>(2), B<unlink>(2), "
5677 "B<path_resolution>(7), B<symlink>(7)"
5679 "B<ln>(1), B<open>(2), B<rename>(2), B<stat>(2), B<symlink>(2), B<unlink>(2), "
5680 "B<path_resolution>(7), B<symlink>(7)"
5683 #: build/C/man2/llseek.2:28
5689 #: build/C/man2/llseek.2:28
5695 #: build/C/man2/llseek.2:31
5696 msgid "_llseek - reposition read/write file offset"
5697 msgstr "_llseek - ファイルの読み書きオフセットの位置を変える"
5700 #: build/C/man2/llseek.2:35
5703 "B<#include E<lt>sys/types.hE<gt>>\n"
5704 "B<#include E<lt>unistd.hE<gt>>\n"
5706 "B<#include E<lt>sys/types.hE<gt>>\n"
5707 "B<#include E<lt>unistd.hE<gt>>\n"
5710 #: build/C/man2/llseek.2:39
5713 "B<int _llseek(unsigned int >I<fd>B<, unsigned long >I<offset_high>B<,>\n"
5714 "B< unsigned long >I<offset_low>B<, loff_t *>I<result>B<,>\n"
5715 "B< unsigned int >I<whence>B<);>\n"
5717 "B<int _llseek(unsigned int >I<fd>B<, unsigned long >I<offset_high>B<,>\n"
5718 "B< unsigned long >I<offset_low>B<, loff_t *>I<result>B<,>\n"
5719 "B< unsigned int >I<whence>B<);>\n"
5722 #: build/C/man2/llseek.2:43
5723 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
5725 "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
5729 #: build/C/man2/llseek.2:62
5731 "The B<_llseek>() function repositions the offset of the open file "
5732 "associated with the file descriptor I<fd> to I<(offset_highE<lt>E<lt>32) | "
5733 "offset_low> bytes relative to the beginning of the file, the current "
5734 "position in the file, or the end of the file, depending on whether I<whence> "
5735 "is B<SEEK_SET>, B<SEEK_CUR>, or B<SEEK_END>, respectively. It returns the "
5736 "resulting file position in the argument I<result>."
5738 "B<_llseek>() 関数は、ファイルディスクリプタ (descriptor) I<fd> に関連づけら"
5739 "れたオープンされたファイルのオフセットの位置を、相対的に "
5740 "I<(offset_highE<lt>E<lt>32) | offset_low> バイトだけ変更する。 基準となる位置"
5741 "を表す I<whence> には B<SEEK_SET>, B<SEEK_CUR>, B<SEEK_END> のいずれかを指定"
5742 "し、それぞれ ファイルの先頭、ファイルの現在位置、 ファイルの最後を表す。 結果"
5743 "のファイル位置を I<result> 引き数に返す。"
5746 #: build/C/man2/llseek.2:69
5748 "Upon successful completion, B<_llseek>() returns 0. Otherwise, a value of "
5749 "-1 is returned and I<errno> is set to indicate the error."
5751 "成功した場合は、 B<_llseek>() は 0 を返す。 そうでなれば -1 という値が返り、"
5752 "エラーを示す I<errno> が設定される。"
5755 #: build/C/man2/llseek.2:74 build/C/man2/lseek.2:192
5756 msgid "I<fd> is not an open file descriptor."
5757 msgstr "I<fd> がオープンされたファイルディスクリプタでない。"
5760 #: build/C/man2/llseek.2:77
5761 msgid "Problem with copying results to user space."
5762 msgstr "結果をユーザ空間にコピーするときに問題があった。"
5765 #: build/C/man2/llseek.2:81
5766 msgid "I<whence> is invalid."
5767 msgstr "I<whence> が不正である。"
5770 #: build/C/man2/llseek.2:84
5772 "This function is Linux-specific, and should not be used in programs intended "
5775 "この関数は Linux 特有であり、移植性の必要なプログラムでは使用してはいけない。"
5778 #: build/C/man2/llseek.2:87
5780 "Glibc does not provide a wrapper for this system call; call it using "
5783 "glibc はこのシステムコールに対するラッパー関数を提供していない。 "
5784 "B<syscall>(2) を使って呼び出すこと。"
5787 #: build/C/man2/llseek.2:90
5788 msgid "B<lseek>(2), B<lseek64>(3)"
5789 msgstr "B<lseek>(2), B<lseek64>(3)"
5792 #: build/C/man2/lseek.2:47
5798 #: build/C/man2/lseek.2:47
5804 #: build/C/man2/lseek.2:50
5805 msgid "lseek - reposition read/write file offset"
5806 msgstr "lseek - ファイルの読み書きオフセットの位置を変える"
5809 #: build/C/man2/lseek.2:52 build/C/man3/lseek64.3:32
5810 msgid "B<#include E<lt>sys/types.hE<gt>>"
5811 msgstr "B<#include E<lt>sys/types.hE<gt>>"
5814 #: build/C/man2/lseek.2:54 build/C/man3/lseek64.3:34 build/C/man2/rmdir.2:35
5815 #: build/C/man2/write.2:44
5816 msgid "B<#include E<lt>unistd.hE<gt>>"
5817 msgstr "B<#include E<lt>unistd.hE<gt>>"
5820 #: build/C/man2/lseek.2:56
5821 msgid "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>"
5822 msgstr "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>"
5825 #: build/C/man2/lseek.2:67
5827 "The B<lseek>() function repositions the offset of the open file associated "
5828 "with the file descriptor I<fd> to the argument I<offset> according to the "
5829 "directive I<whence> as follows:"
5831 "B<lseek>() 関数は、ファイルディスクリプタ (descriptor) I<fd> に対応するオー"
5832 "プンされたファイルのオフセットを、 I<whence> に基づき I<offset> 引き数の位置"
5836 #: build/C/man2/lseek.2:72
5837 msgid "The offset is set to I<offset> bytes."
5838 msgstr "オフセットは I<offset> バイトに設定される。"
5841 #: build/C/man2/lseek.2:77
5842 msgid "The offset is set to its current location plus I<offset> bytes."
5843 msgstr "オフセットは現在位置に I<offset> バイトを足した位置になる。"
5846 #: build/C/man2/lseek.2:82
5847 msgid "The offset is set to the size of the file plus I<offset> bytes."
5848 msgstr "オフセットはファイルのサイズに I<offset> バイトを足した位置になる。"
5851 #: build/C/man2/lseek.2:90
5853 "The B<lseek>() function allows the file offset to be set beyond the end of "
5854 "the file (but this does not change the size of the file). If data is later "
5855 "written at this point, subsequent reads of the data in the gap (a \"hole\") "
5856 "return null bytes (\\(aq\\e0\\(aq) until data is actually written into the "
5859 "B<lseek>() 関数は、オフセットをファイルの末尾を越えた位置に設定できる (但"
5860 "し、これによりファイルのサイズが変わらない)。 もしデータがこのオフセット位置"
5861 "以降に書き込まれた場合、 間の空隙の部分 (\"穴 (hole)\") の読み出しがあると、 "
5862 "実際にそこにデータを書き込まれるまではヌルバイト (\\(aq\\e0\\(aq) の列が返さ"
5866 #: build/C/man2/lseek.2:90
5868 msgid "Seeking file data and holes"
5869 msgstr "ファイルのデータとホールの探索"
5872 #: build/C/man2/lseek.2:93
5874 "Since version 3.1, Linux supports the following additional values for "
5877 "Linux バージョン 3.1 以降では、 I<whence> に以下の値も指定することができる。"
5880 #: build/C/man2/lseek.2:93
5882 msgid "B<SEEK_DATA>"
5883 msgstr "B<SEEK_DATA>"
5886 #: build/C/man2/lseek.2:104
5888 "Adjust the file offset to the next location in the file greater than or "
5889 "equal to I<offset> containing data. If I<offset> points to data, then the "
5890 "file offset is set to I<offset>."
5892 "ファイルオフセットを I<offset> 以上で次にデータがある位置に設定する。 "
5893 "I<offset> がデータを指している場合には、 ファイルオフセットは I<offset> に設"
5897 #: build/C/man2/lseek.2:104
5899 msgid "B<SEEK_HOLE>"
5900 msgstr "B<SEEK_HOLE>"
5903 #: build/C/man2/lseek.2:118
5905 "Adjust the file offset to the next hole in the file greater than or equal to "
5906 "I<offset>. If I<offset> points into the middle of a hole, then the file "
5907 "offset is set to I<offset>. If there is no hole past I<offset>, then the "
5908 "file offset is adjusted to the end of the file (i.e., there is an implicit "
5909 "hole at the end of any file)."
5911 "ファイルオフセットを、 位置が I<offset> 以上の次のホール (hole) に設定する。 "
5912 "I<offset> がホールの内部にある場合は、ファイルシステムは I<offset> に設定され"
5913 "る。 I<offset> 以降にホールがない場合は、 ファイルオフセットはファイル末尾に"
5914 "設定される (つまり、 どのファイルの末尾にも暗黙のホールが存在するということ"
5918 #: build/C/man2/lseek.2:124
5920 "In both of the above cases, B<lseek>() fails if I<offset> points past the "
5923 "上記のどちらの場合も、 I<offset> がファイル末尾よりも先を指している場合には "
5927 #: build/C/man2/lseek.2:130
5929 "These operations allow applications to map holes in a sparsely allocated "
5930 "file. This can be useful for applications such as file backup tools, which "
5931 "can save space when creating backups and preserve holes, if they have a "
5932 "mechanism for discovering holes."
5934 "これらの操作を使うことで、 アプリケーションが、 まばら (sparse ) にページが割"
5935 "り当てられたファイルでホールをマップすることができる。 この機能はファイルバッ"
5936 "クアップツールなどのアプリケーションで有用である。 ホールを見つける仕組みがあ"
5937 "れば、 ファイルバックアップツールで、 バックアップを作成する際に保存領域を節"
5938 "約し、ホールを保持することができる。"
5940 #. https://lkml.org/lkml/2011/4/22/79
5941 #. http://lwn.net/Articles/440255/
5942 #. http://blogs.oracle.com/bonwick/entry/seek_hole_and_seek_data
5944 #: build/C/man2/lseek.2:153
5946 "For the purposes of these operations, a hole is a sequence of zeros that "
5947 "(normally) has not been allocated in the underlying file storage. However, "
5948 "a filesystem is not obliged to report holes, so these operations are not a "
5949 "guaranteed mechanism for mapping the storage space actually allocated to a "
5950 "file. (Furthermore, a sequence of zeros that actually has been written to "
5951 "the underlying storage may not be reported as a hole.) In the simplest "
5952 "implementation, a filesystem can support the operations by making "
5953 "B<SEEK_HOLE> always return the offset of the end of the file, and making "
5954 "B<SEEK_DATA> always return I<offset> (i.e., even if the location referred to "
5955 "by I<offset> is a hole, it can be considered to consist of data that is a "
5956 "sequence of zeros)."
5958 "これらの操作の目的としては、 ホールは (通常は) バックエンドのファイルストレー"
5959 "ジには割り当てられていない連続する 0 の列である。 しかし、ファイルシステムに"
5960 "はホールを報告する義務はなく、 そのため、 これらの操作は、 ファイルに実際に割"
5961 "り当てられたストレージ領域をマッピングする方法としては確実性のある仕組みでは"
5962 "ない。 (また、バックエンドのストレージに実際に書き込まれた連続する 0 の列は"
5963 "ホールとして報告されないこともある。) 最も単純な実装としては、 B<SEEK_HOLE> "
5964 "は常にファイル末尾のオフセットを返すようにし、 B<SEEK_DATA> は常に I<offset> "
5965 "を返すようにすることで、 ファイルシステムはこれらの操作をサポートすることがで"
5966 "きる (B<SEEK_DATA> は常に I<offset> を返すというのは、 I<offset> が参照する場"
5967 "所がホールであったとしても、 連続する 0 の列のデータで構成されているとみなす"
5971 #: build/C/man2/lseek.2:162
5973 "The B<_GNU_SOURCE> feature test macro must be defined in order to obtain the "
5974 "definitions of B<SEEK_DATA> and B<SEEK_HOLE> from I<E<lt>unistd.hE<gt>>."
5976 "I<E<lt>unistd.hE<gt>> から B<SEEK_DATA> と B<SEEK_HOLE> の定義を得るには、 機"
5977 "能検査マクロ B<_GNU_SOURCE> を定義しなければならない。"
5980 #: build/C/man2/lseek.2:168
5982 "The B<SEEK_HOLE> and B<SEEK_DATA> operations are supported for the following "
5985 "B<SEEK_HOLE>, B<SEEK_DATA> 操作に対応しているのは以下のファイルシステムであ"
5989 #: build/C/man2/lseek.2:170
5990 msgid "Btrfs (since Linux 3.1)"
5991 msgstr "Btrfs (Linux 3.1 以降)"
5993 #. commit 93862d5e1ab875664c6cc95254fc365028a48bb1
5995 #: build/C/man2/lseek.2:173
5996 msgid "OCFS (since Linux 3.2)"
5997 msgstr "OCFS (Linux 3.2 以降)"
6000 #: build/C/man2/lseek.2:175
6001 msgid "XFS (since Linux 3.5)"
6002 msgstr "XFS (Linux 3.5 以降)"
6005 #: build/C/man2/lseek.2:177
6006 msgid "ext4 (since Linux 3.8)"
6007 msgstr "ext4 (Linux 3.8 以降)"
6010 #: build/C/man2/lseek.2:179
6011 msgid "tmpfs (since Linux 3.8)"
6012 msgstr "tmpfs (Linux 3.8 以降)"
6015 #: build/C/man2/lseek.2:187
6017 "Upon successful completion, B<lseek>() returns the resulting offset "
6018 "location as measured in bytes from the beginning of the file. On error, the "
6019 "value I<(off_t)\\ -1> is returned and I<errno> is set to indicate the error."
6021 "成功した場合、 B<lseek>() は結果のファイル位置をファイルの先頭からのバイト数"
6022 "で返す。 エラーの場合、値 I<(off_t)\\ -1> が返され、 I<errno> にエラーが指示"
6025 #. Some systems may allow negative offsets for character devices
6026 #. and/or for remote filesystems.
6028 #: build/C/man2/lseek.2:200
6030 "I<whence> is not valid. Or: the resulting file offset would be negative, or "
6031 "beyond the end of a seekable device."
6033 "I<whence> が有効な値ではない。または、seek の結果、ファイルオフセットが負に\n"
6034 "なってしまうか、 seek 可能なデバイスの末尾を越えてしまう。"
6037 #: build/C/man2/lseek.2:200 build/C/man2/open.2:957
6038 #: build/C/man2/open_by_handle_at.2:304
6040 msgid "B<EOVERFLOW>"
6041 msgstr "B<EOVERFLOW>"
6043 #. HP-UX 11 says EINVAL for this case (but POSIX.1 says EOVERFLOW)
6045 #: build/C/man2/lseek.2:205
6046 msgid "The resulting file offset cannot be represented in an I<off_t>."
6047 msgstr "結果のファイルオフセットを I<off_t> 型で表現することができない。"
6050 #: build/C/man2/lseek.2:205
6056 #: build/C/man2/lseek.2:209
6057 msgid "I<fd> is associated with a pipe, socket, or FIFO."
6058 msgstr "I<fd> がパイプ、ソケット、FIFO を参照している。"
6061 #: build/C/man2/lseek.2:209 build/C/man2/open.2:945
6067 #: build/C/man2/lseek.2:217
6069 "I<whence> is B<SEEK_DATA> or B<SEEK_HOLE>, and the current file offset is "
6070 "beyond the end of the file."
6072 "I<whence> が B<SEEK_DATA> か B<SEEK_HOLE> で、\n"
6073 "現在のファイルオフセットがファイルの末尾を超えた位置である。"
6075 #. SVr4 documents additional error
6076 #. conditions EDEADLK, ENOLCK, ENOLNK, ENOSR, ENXIO, or ERANGE.
6078 #: build/C/man2/lseek.2:219 build/C/man2/read.2:175 build/C/man2/rmdir.2:129
6079 #: build/C/man2/write.2:189
6080 msgid "SVr4, 4.3BSD, POSIX.1-2001."
6081 msgstr "SVr4, 4.3BSD, POSIX.1-2001."
6083 #. FIXME . Review http://austingroupbugs.net/view.php?id=415 in the future
6085 #: build/C/man2/lseek.2:227
6087 "B<SEEK_DATA> and B<SEEK_HOLE> are nonstandard extensions also present in "
6088 "Solaris, FreeBSD, and DragonFly BSD; they are proposed for inclusion in the "
6089 "next POSIX revision (Issue 8)."
6091 "B<SEEK_DATA> と B<SEEK_HOLE> は非標準の拡張で、 Solaris, FreeBSD, DragonFly "
6092 "BSD にも存在する。 これらは POSIX の次の版 (Issue 8) に入れるよう提案されてい"
6096 #: build/C/man2/lseek.2:231
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:238
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:241
6116 "When converting old code, substitute values for I<whence> with the following "
6118 msgstr "古いコードを変換する時は I<whence> の値を以下のマクロに置き換えること:"
6121 #: build/C/man2/lseek.2:244
6124 msgstr "old \tnew\n"
6127 #: build/C/man2/lseek.2:245
6129 msgid "0\tSEEK_SET\n"
6130 msgstr "0\tSEEK_SET\n"
6133 #: build/C/man2/lseek.2:246
6135 msgid "1\tSEEK_CUR\n"
6136 msgstr "1\tSEEK_CUR\n"
6139 #: build/C/man2/lseek.2:247
6141 msgid "2\tSEEK_END\n"
6142 msgstr "2\tSEEK_END\n"
6145 #: build/C/man2/lseek.2:248
6147 msgid "L_SET\tSEEK_SET\n"
6148 msgstr "L_SET\tSEEK_SET\n"
6151 #: build/C/man2/lseek.2:249
6153 msgid "L_INCR\tSEEK_CUR\n"
6154 msgstr "L_INCR\tSEEK_CUR\n"
6157 #: build/C/man2/lseek.2:250
6159 msgid "L_XTND\tSEEK_END\n"
6160 msgstr "L_XTND\tSEEK_END\n"
6163 #: build/C/man2/lseek.2:262
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:269
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:25
6195 #: build/C/man3/lseek64.3:28
6196 msgid "lseek64 - reposition 64-bit read/write file offset"
6197 msgstr "lseek64 - ファイルの 64 ビットの読み書きオフセットの位置を変える"
6200 #: build/C/man3/lseek64.3:30
6201 msgid "B<#define _LARGEFILE64_SOURCE> /* See feature_test_macros(7) */"
6202 msgstr "B<#define _LARGEFILE64_SOURCE> /* feature_test_macros(7) 参照 */"
6205 #: build/C/man3/lseek64.3:36
6207 "B<off64_t lseek64(int >I<fd>B<, off64_t >I<offset>B<, int >I<whence>B<);>"
6209 "B<off64_t lseek64(int >I<fd>B<, off64_t >I<offset>B<, int >I<whence>B<);>"
6212 #: build/C/man3/lseek64.3:53
6214 "The B<lseek>(2) family of functions reposition the offset of the open file "
6215 "associated with the file descriptor I<fd> to I<offset> bytes relative to the "
6216 "start, current position, or end of the file, when I<whence> has the value "
6217 "B<SEEK_SET>, B<SEEK_CUR>, or B<SEEK_END>, respectively."
6219 "B<lseek>(2) 関数ファミリーは、ファイルディスクリプタ I<fd> に関連するオープ"
6220 "ンされたファイルのオフセットを、 ファイルの開始位置・現在位置・終端から "
6221 "I<offset> の位置へ変更する。 これは I<whence> がそれぞれ B<SEEK_SET>, "
6222 "B<SEEK_CUR>, B<SEEK_END> の場合に対応する。"
6225 #: build/C/man3/lseek64.3:56
6226 msgid "For more details, return value, and errors, see B<lseek>(2)."
6227 msgstr "更に詳しい説明・返り値・エラーは、 B<lseek>(2) を参照すること。"
6230 #: build/C/man3/lseek64.3:63
6232 "Four interfaces are available: B<lseek>(2), B<lseek64>(), B<llseek>(2), and "
6233 "the raw system call B<_llseek>(2)."
6235 "4 つのインタフェースが使用可能である: B<lseek>(2), B<lseek64>(), "
6236 "B<llseek>(2) と元となるシステムコール B<_llseek>(2) である。"
6239 #: build/C/man3/lseek64.3:63
6245 #: build/C/man3/lseek64.3:65 build/C/man3/lseek64.3:87
6246 #: build/C/man3/lseek64.3:116
6251 #: build/C/man3/lseek64.3:69
6253 msgid "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>\n"
6254 msgstr "B<off_t lseek(int >I<fd>B<, off_t >I<offset>B<, int >I<whence>B<);>\n"
6257 #: build/C/man3/lseek64.3:77
6259 "B<lseek>(2) uses the type I<off_t>. This is a 32-bit signed type on 32-bit "
6260 "architectures, unless one compiles with"
6262 "B<lseek>(2) は型 I<off_t> を使う。 これは 32 ビットアーキテクチャ上では 32 "
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:139
6325 "The type I<loff_t> is a 64-bit signed type. The library routine "
6326 "B<llseek>() is available in libc5 and glibc and works without special "
6327 "defines. Its prototype was given in I<E<lt>unistd.hE<gt>> with libc5, but "
6328 "glibc does not provide a prototype. This is bad, since a prototype is "
6329 "needed. Users should add the above prototype, or something equivalent, to "
6330 "their own source. When users complained about data loss caused by a "
6331 "miscompilation of B<e2fsck>(8), glibc 2.1.3 added the link-time warning"
6333 "型 I<loff_t> は 64 ビット符号付き型である。 ライブラリルーチン B<llseek>() "
6334 "は libc5 と glibc で使用可能であり、特別な定義なしに動作する。 このプロトタイ"
6335 "プは、libc5 では I<E<lt>unistd.hE<gt>> で与えられるが、glibc はプロトタイプを"
6336 "提供しない。 これはプロトタイプが必要になるので良くない。 ユーザは上記のプロ"
6337 "トタイプまたはそれと同等のものを、 自身のソースに追加しなければならない。 こ"
6338 "のデータがないことによって B<e2fsck>(8) のコンパイルが失敗するという苦情が"
6339 "ユーザから出たので、 glibc 2.1.3 では以下のようなリンク時の警告が追加された。"
6342 #: build/C/man3/lseek64.3:142
6343 msgid "the \\`llseek\\' function may be dangerous; use \\`lseek64\\' instead."
6344 msgstr "the \\`llseek\\' function may be dangerous; use \\`lseek64\\' instead."
6347 #: build/C/man3/lseek64.3:146
6349 "This makes this function unusable if one desires a warning-free compilation."
6351 "これにより、警告なしでコンパイルしたい場合には、この関数を使用不可にできる。"
6354 #: build/C/man3/lseek64.3:146
6360 #: build/C/man3/lseek64.3:149
6362 "All the above functions are implemented in terms of this system call. The "
6365 "上記の全ての関数は、このシステムコールに基づいて実装される。 プロトタイプは以"
6369 #: build/C/man3/lseek64.3:154
6372 "B<int _llseek(int >I<fd>B<, off_t >I<offset_hi>B<, off_t >I<offset_lo>B<,>\n"
6373 "B< loff_t *>I<result>B<, int >I<whence>B<);>\n"
6375 "B<int _llseek(int >I<fd>B<, off_t >I<offset_hi>B<, off_t >I<offset_lo>B<,>\n"
6376 "B< loff_t *>I<result>B<, int >I<whence>B<);>\n"
6379 #: build/C/man3/lseek64.3:159
6380 msgid "For more details, see B<llseek>(2)."
6381 msgstr "更に詳しい情報は、 B<llseek>(2) を参照すること。"
6384 #: build/C/man3/lseek64.3:164
6385 msgid "The B<lseek64>() function is thread-safe."
6386 msgstr "関数 B<lseek64>() はスレッドセーフである。"
6389 #: build/C/man3/lseek64.3:167
6390 msgid "B<llseek>(2), B<lseek>(2)"
6391 msgstr "B<llseek>(2), B<lseek>(2)"
6394 #: build/C/man2/open.2:51
6400 #: build/C/man2/open.2:54
6401 msgid "open, openat, creat - open and possibly create a file"
6402 msgstr "open, openat, creat - ファイルのオープン、作成を行う"
6405 #: build/C/man2/open.2:59
6408 "B<#include E<lt>sys/types.hE<gt>>\n"
6409 "B<#include E<lt>sys/stat.hE<gt>>\n"
6410 "B<#include E<lt>fcntl.hE<gt>>\n"
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"
6417 #: build/C/man2/open.2:62
6420 "B<int open(const char *>I<pathname>B<, int >I<flags>B<);>\n"
6421 "B<int open(const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
6423 "B<int open(const char *>I<pathname>B<, int >I<flags>B<);>\n"
6424 "B<int open(const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
6427 #: build/C/man2/open.2:64
6429 msgid "B<int creat(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
6430 msgstr "B<int creat(const char *>I<pathname>B<, mode_t >I<mode>B<);>\n"
6433 #: build/C/man2/open.2:68
6436 "B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
6437 "B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
6439 "B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
6440 "B<int openat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<, mode_t >I<mode>B<);>\n"
6443 #: build/C/man2/open.2:76
6444 msgid "B<openat>():"
6445 msgstr "B<openat>():"
6448 #: build/C/man2/open.2:98
6450 "Given a I<pathname> for a file, B<open>() returns a file descriptor, a "
6451 "small, nonnegative integer for use in subsequent system calls (B<read>(2), "
6452 "B<write>(2), B<lseek>(2), B<fcntl>(2), etc.). The file descriptor returned "
6453 "by a successful call will be the lowest-numbered file descriptor not "
6454 "currently open for the process."
6456 "ファイルの I<pathname> を与えると、 B<open>() はファイルディスクリプタを返"
6457 "す。 ファイルディスクリプタは、この後に続くシステムコール (B<read>(2), "
6458 "B<write>(2), B<lseek>(2), B<fcntl>(2) など) で使用される小さな非負の整数であ"
6459 "る。 このシステムコールが成功した場合に返されるファイルディスクリプタは その"
6460 "プロセスがその時点でオープンしていないファイルディスクリプタの うち最小の数字"
6464 #: build/C/man2/open.2:110
6466 "By default, the new file descriptor is set to remain open across an "
6467 "B<execve>(2) (i.e., the B<FD_CLOEXEC> file descriptor flag described in "
6468 "B<fcntl>(2)) is initially disabled; the B<O_CLOEXEC> flag, described below, "
6469 "can be used to change this default. The file offset is set to the beginning "
6470 "of the file (see B<lseek>(2))."
6472 "デフォルトでは、新しいファイルディスクリプタは B<execve>(2) を実行した後も\n"
6473 "オープンされたままとなる (つまり、 B<fcntl>(2) に説明がある B<FD_CLOEXEC> \n"
6474 "ファイルディスクリプタフラグは最初は無効である; 後述の B<O_CLOEXEC> フラグ\n"
6475 "を使うとこのデフォルトを変更することができる)。 ファイルオフセット \n"
6476 "(file offset) はファイルの先頭に設定される (B<lseek>(2) 参照)。"
6479 #: build/C/man2/open.2:131
6482 #| "A call to B<open>() creates a new I<open file description>, an entry in "
6483 #| "the system-wide table of open files. This entry records the file offset "
6484 #| "and the file status flags (modifiable via the B<fcntl>(2) B<F_SETFL> "
6485 #| "operation). A file descriptor is a reference to one of these entries; "
6486 #| "this reference is unaffected if I<pathname> is subsequently removed or "
6487 #| "modified to refer to a different file. The new open file description is "
6488 #| "initially not shared with any other process, but sharing may arise via "
6491 "A call to B<open>() creates a new I<open file description>, an entry in the "
6492 "system-wide table of open files. (This object is variously also called an "
6493 "\"open file object\", a \"file handle\", an \"open file table entry\", or"
6494 "\\(emin kernel-developer parlance\\(ema I<struct file>. The term \"open "
6495 "file description\" is used by POSIX.) The open file description records the "
6496 "file offset and the file status flags (see below). A file descriptor is a "
6497 "reference to an open file description; this reference is unaffected if "
6498 "I<pathname> is subsequently removed or modified to refer to a different "
6499 "file. The new open file description is initially not shared with any other "
6500 "process, but sharing may arise via B<fork>(2)."
6502 "B<open>() を呼び出すと、「オープンファイル記述」 I<(open file description)> "
6503 "が作成される。ファイル記述とは、システム全体の オープン中のファイルのテーブル"
6504 "のエントリである。 このエントリは、ファイルオフセットとファイル状態フラグ "
6505 "(B<fcntl>(2) B<F_SETFL> 操作により変更可能) が保持する。 ファイルディスクリ"
6506 "プタはこれらのエントリの一つへの参照である。 この後で I<pathname> が削除され"
6507 "たり、他のファイルを参照するように変更されたりしても、 この参照は影響を受けな"
6508 "い。 新しいオープンファイル記述は最初は他のどのプロセスとも 共有されていない"
6509 "が、 B<fork>(2) で共有が起こる場合がある。"
6512 #: build/C/man2/open.2:139
6514 "The argument I<flags> must include one of the following I<access modes>: "
6515 "B<O_RDONLY>, B<O_WRONLY>, or B<O_RDWR>. These request opening the file read-"
6516 "only, write-only, or read/write, respectively."
6518 "引き数 I<flags> には、アクセスモード B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> のど"
6519 "れかひとつが入っていなければならない。 これらはそれぞれ読み込み専用、書き込み"
6520 "専用、読み書き用に ファイルをオープンすることを要求するものである。"
6522 #. SUSv4 divides the flags into:
6526 #. * Other (O_CLOEXEC, O_DIRECTORY, O_NOFOLLOW)
6527 #. though it's not clear what the difference between "other" and
6528 #. "File creation" flags is. I raised an Aardvark to see if this
6529 #. can be clarified in SUSv4; 10 Oct 2008.
6530 #. http://thread.gmane.org/gmane.comp.standards.posix.austin.general/64/focus=67
6531 #. TC1 (balloted in 2013), resolved this, so that those three constants
6532 #. are also categorized" as file status flags.
6534 #: build/C/man2/open.2:178
6536 "In addition, zero or more file creation flags and file status flags can be "
6537 "bitwise-I<or>'d in I<flags>. The I<file creation flags> are B<O_CLOEXEC>, "
6538 "B<O_CREAT>, B<O_DIRECTORY>, B<O_EXCL>, B<O_NOCTTY>, B<O_NOFOLLOW>, "
6539 "B<O_TMPFILE>, B<O_TRUNC>, and B<O_TTY_INIT>. The I<file status flags> are "
6540 "all of the remaining flags listed below. The distinction between these two "
6541 "groups of flags is that the file status flags can be retrieved and (in some "
6542 "cases) modified; see B<fcntl>(2) for details."
6544 "さらに、 I<flags> には、ファイル作成フラグ (file creation flag) とファイル状"
6545 "態フラグ (file status flag) を 0 個以上「ビット単位の OR (bitwise-or)」で 指"
6546 "定することができる。 I<ファイル作成フラグ> は B<O_CLOEXEC>, B<O_CREAT>, "
6547 "B<O_DIRECTORY>, B<O_EXCL>, B<O_NOCTTY>, B<O_NOFOLLOW>, B<O_TMPFILE>, "
6548 "B<O_TRUNC>, B<O_TTY_INIT> である。 I<ファイル状態フラグ> は以下のリストのうち"
6549 "上記以外の残りのものである。 二種類のフラグの違いは、ファイル状態フラグの方は"
6550 "その内容を取得したり (場合によっては) 変更したりできる点にある。詳細は "
6554 #: build/C/man2/open.2:180
6556 "The full list of file creation flags and file status flags is as follows:"
6557 msgstr "すべてのファイル作成フラグとファイル状態フラグを以下のリストに示す。"
6560 #: build/C/man2/open.2:180
6563 msgstr "B<O_APPEND>"
6565 #. For more background, see
6566 #. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=453946
6567 #. http://nfs.sourceforge.net/
6569 #: build/C/man2/open.2:197
6571 "The file is opened in append mode. Before each B<write>(2), the file offset "
6572 "is positioned at the end of the file, as if with B<lseek>(2). B<O_APPEND> "
6573 "may lead to corrupted files on NFS filesystems if more than one process "
6574 "appends data to a file at once. This is because NFS does not support "
6575 "appending to a file, so the client kernel has to simulate it, which can't be "
6576 "done without a race condition."
6578 "ファイルを追加 (append) モードでオープンする。 毎回の B<write>(2) の前に "
6579 "B<lseek>(2) を行ったかのように、ファイルポインタをファイルの最後に移動す"
6580 "る。 NFS ファイルシステムで、 B<O_APPEND> を使用すると、複数のプロセスがひと"
6581 "つのファイルに同時にデータを追加した場合、 ファイルが壊れてしまうことがあ"
6582 "る。 これは NFS が追加モードをサポートしていないため、 クライアントのカーネ"
6583 "ル (kernel) がそれをシミュレートしなければならないのだが、 競合状態を避けるこ"
6587 #: build/C/man2/open.2:197
6593 #: build/C/man2/open.2:211
6595 "Enable signal-driven I/O: generate a signal (B<SIGIO> by default, but this "
6596 "can be changed via B<fcntl>(2)) when input or output becomes possible on "
6597 "this file descriptor. This feature is available only for terminals, "
6598 "pseudoterminals, sockets, and (since Linux 2.6) pipes and FIFOs. See "
6599 "B<fcntl>(2) for further details. See also BUGS, below."
6601 "シグナル駆動 I/O (signal-driven I/O) を有効にする: このファイルディスクリプタ"
6602 "への 入力または出力が可能になった場合に、シグナルを生成する (デフォルトは "
6603 "B<SIGIO> であるが、 B<fcntl>(2) によって変更可能である)。 この機能が使用可能"
6604 "なのは端末、疑似端末、ソケットのみであり、 (Linux 2.6 以降では) パイプと "
6605 "FIFO に対しても使用できる。 さらに詳しい説明は B<fcntl>(2) を参照すること。 "
6609 #: build/C/man2/open.2:211
6611 msgid "B<O_CLOEXEC> (since Linux 2.6.23)"
6612 msgstr "B<O_CLOEXEC> (Linux 2.6.23 以降)"
6614 #. NOTE! several other man pages refer to this text
6616 #: build/C/man2/open.2:221
6618 "Enable the close-on-exec flag for the new file descriptor. Specifying this "
6619 "flag permits a program to avoid additional B<fcntl>(2) B<F_SETFD> "
6620 "operations to set the B<FD_CLOEXEC> flag."
6622 "新しいファイルディスクリプタに対して close-on-exec フラグを有効にする。 この"
6623 "フラグを指定することで、 プログラムは B<FD_CLOEXEC> フラグをセットするために "
6624 "B<fcntl>(2) B<F_SETFD> 操作を別途呼び出す必要がなくなる。"
6626 #. This flag fixes only one form of the race condition;
6627 #. The race can also occur with, for example, descriptors
6628 #. returned by accept(), pipe(), etc.
6630 #: build/C/man2/open.2:250
6632 "Note that the use of this flag is essential in some multithreaded programs, "
6633 "because using a separate B<fcntl>(2) B<F_SETFD> operation to set the "
6634 "B<FD_CLOEXEC> flag does not suffice to avoid race conditions where one "
6635 "thread opens a file descriptor and attempts to set its close-on-exec flag "
6636 "using B<fcntl>(2) at the same time as another thread does a B<fork>(2) "
6637 "plus B<execve>(2). Depending on the order of execution, the race may lead "
6638 "to the file descriptor returned by B<open>() being unintentionally leaked "
6639 "to the program executed by the child process created by B<fork>(2). (This "
6640 "kind of race is in principle possible for any system call that creates a "
6641 "file descriptor whose close-on-exec flag should be set, and various other "
6642 "Linux system calls provide an equivalent of the B<O_CLOEXEC> flag to deal "
6643 "with this problem.)"
6645 "ある種のマルチスレッドのプログラムはこのフラグの使用は不可欠である点に注意す"
6646 "ること。 なぜなら、個別に B<FD_CLOEXEC> フラグを設定する B<fcntl>(2) "
6647 "B<F_SETFD> 操作を呼び出したとしても、あるスレッドがファイルディスクリプタを "
6648 "オープンするのと同時に別のスレッドが B<fork>(2) と B<execve>(2) を実行すると"
6649 "いう競合条件を避けるのには十分ではないからである。 実行の順序に依存して、この"
6650 "競合条件の結果、 B<open>() が返したファイルディスクリプタが B<fork>(2) で作成"
6651 "された子プロセスにより実行されるプログラムに意図せず見えてしまう可能性があ"
6652 "る。 (この種の競合は、 本質的に、 close-on-exec フラグをセットすべきファイル"
6653 "ディスクリプタを作成するどのシステムコールでも起こり得るものであり、 他のいろ"
6654 "いろな Linux システムコールでこの問題に対処するために B<O_CLOEXEC> と同等の機"
6658 #: build/C/man2/open.2:250
6663 #. As at 2.6.25, bsdgroups is supported by ext2, ext3, ext4, and
6664 #. XFS (since 2.6.14).
6666 #: build/C/man2/open.2:266
6668 "If the file does not exist, it will be created. The owner (user ID) of the "
6669 "file is set to the effective user ID of the process. The group ownership "
6670 "(group ID) is set either to the effective group ID of the process or to the "
6671 "group ID of the parent directory (depending on filesystem type and mount "
6672 "options, and the mode of the parent directory; see the mount options "
6673 "I<bsdgroups> and I<sysvgroups> described in B<mount>(8))."
6675 "ファイルが存在しなかった場合は作成 (create) する。 ファイルの所有者 (ユー"
6676 "ザー ID) は、プロセスの実効ユーザー ID に設定される。 グループ所有権 (グルー"
6677 "プ ID) は、プロセスの実効グループ ID または親ディレクトリのグループ ID に設定"
6678 "される (これは、ファイルシステムタイプ、マウントオプション、 親ディレクトリの"
6679 "モードに依存する。 B<mount>(8) で説明されているマウントオプション "
6680 "I<bsdgroups> と I<sysvgroups> を参照)。"
6683 #: build/C/man2/open.2:293
6685 "I<mode> specifies the permissions to use in case a new file is created. "
6686 "This argument must be supplied when B<O_CREAT> or B<O_TMPFILE> is specified "
6687 "in I<flags>; if neither B<O_CREAT> nor B<O_TMPFILE> is specified, then "
6688 "I<mode> is ignored. The effective permissions are modified by the process's "
6689 "I<umask> in the usual way: The permissions of the created file are I<(mode\\ "
6690 "&\\ ~umask)>. Note that this mode applies only to future accesses of the "
6691 "newly created file; the B<open>() call that creates a read-only file may "
6692 "well return a read/write file descriptor."
6694 "I<mode> は新しいファイルを作成する場合に使用するアクセス許可 (permission) を"
6695 "指定する。 I<flags> に B<O_CREAT> か B<O_TMPFILE> が指定されている場合、 "
6696 "I<mode> を指定しなければならない。 B<O_CREAT> も B<O_TMPFILE> も指定されてい"
6697 "ない場合、 I<mode> は無視される。 有効なアクセス許可は、普段と同じようにプロ"
6698 "セスの I<umask> によって修正され、作成されたファイルの許可は I<(mode\\ &\\ "
6699 "~umask)> となる。 このモードは、新しく作成されたファイルに対するそれ以降のア"
6700 "クセス にのみ適用される点に注意すること。 読み取り専用のファイルを作成する "
6701 "B<open>() コールであっても、 読み書き可能なファイルディスクリプタを返すこと"
6705 #: build/C/man2/open.2:296
6706 msgid "The following symbolic constants are provided for I<mode>:"
6707 msgstr "I<mode> のために以下のシンボル定数が提供されている :"
6710 #: build/C/man2/open.2:296
6716 #: build/C/man2/open.2:299
6717 msgid "00700 user (file owner) has read, write and execute permission"
6719 "00700 ユーザー (ファイルの所有者) に読み込み、書き込み、 実行の許可がある。"
6722 #: build/C/man2/open.2:299
6728 #: build/C/man2/open.2:302
6729 msgid "00400 user has read permission"
6730 msgstr "00400 ユーザーに読み込みの許可がある。"
6733 #: build/C/man2/open.2:302
6739 #: build/C/man2/open.2:305
6740 msgid "00200 user has write permission"
6741 msgstr "00200 ユーザーに書き込みの許可がある。"
6744 #: build/C/man2/open.2:305
6750 #: build/C/man2/open.2:308
6751 msgid "00100 user has execute permission"
6752 msgstr "00100 ユーザーに実行の許可がある。"
6755 #: build/C/man2/open.2:308
6761 #: build/C/man2/open.2:311
6762 msgid "00070 group has read, write and execute permission"
6763 msgstr "00070 グループに読み込み、書き込み、実行の許可がある。"
6766 #: build/C/man2/open.2:311
6772 #: build/C/man2/open.2:314
6773 msgid "00040 group has read permission"
6774 msgstr "00040 グループに読み込みの許可がある。"
6777 #: build/C/man2/open.2:314
6783 #: build/C/man2/open.2:317
6784 msgid "00020 group has write permission"
6785 msgstr "00020 グループに書き込みの許可がある。"
6788 #: build/C/man2/open.2:317
6794 #: build/C/man2/open.2:320
6795 msgid "00010 group has execute permission"
6796 msgstr "00010 グループに実行の許可がある。"
6799 #: build/C/man2/open.2:320
6805 #: build/C/man2/open.2:323
6806 msgid "00007 others have read, write and execute permission"
6807 msgstr "00007 他人 (others) に読み込み、書き込み、実行の許可がある。"
6810 #: build/C/man2/open.2:323
6816 #: build/C/man2/open.2:326
6817 msgid "00004 others have read permission"
6818 msgstr "00004 他人に読み込みの許可がある。"
6821 #: build/C/man2/open.2:326
6827 #: build/C/man2/open.2:329
6828 msgid "00002 others have write permission"
6829 msgstr "00002 他人に書き込みの許可がある。"
6832 #: build/C/man2/open.2:329
6838 #: build/C/man2/open.2:332
6839 msgid "00001 others have execute permission"
6840 msgstr "00001 他人に実行の許可がある。"
6843 #: build/C/man2/open.2:333
6845 msgid "B<O_DIRECT> (since Linux 2.4.10)"
6846 msgstr "B<O_DIRECT> (Linux 2.4.10 以降)"
6849 #: build/C/man2/open.2:350
6851 "Try to minimize cache effects of the I/O to and from this file. In general "
6852 "this will degrade performance, but it is useful in special situations, such "
6853 "as when applications do their own caching. File I/O is done directly to/"
6854 "from user-space buffers. The B<O_DIRECT> flag on its own makes an effort to "
6855 "transfer data synchronously, but does not give the guarantees of the "
6856 "B<O_SYNC> flag that data and necessary metadata are transferred. To "
6857 "guarantee synchronous I/O, B<O_SYNC> must be used in addition to "
6858 "B<O_DIRECT>. See NOTES below for further discussion."
6860 "このファイルに対する I/O のキャッシュの効果を最小化しようとする。このフラグを"
6861 "使うと、一般的に性能が低下する。 しかしアプリケーションが独自にキャッシングを"
6862 "行っているような 特別な場合には役に立つ。 ファイルの I/O はユーザー空間バッ"
6863 "ファに対して直接行われる。 B<O_DIRECT> フラグ自身はデータを同期で転送しようと"
6864 "はするが、 B<O_SYNC> フラグのようにデータと必要なメタデータの転送が保証される"
6865 "わけではない。同期 I/O を保証するためには、 B<O_DIRECT> に加えて B<O_SYNC> を"
6866 "使用しなければならない。下記の「注意」の節の議論も参照。"
6869 #: build/C/man2/open.2:354
6871 "A semantically similar (but deprecated) interface for block devices is "
6872 "described in B<raw>(8)."
6874 "ブロックデバイスに対する似通った意味のインターフェースが B<raw>(8) で説明さ"
6875 "れている (但し、このインタフェースは非推奨である)。"
6878 #: build/C/man2/open.2:354
6880 msgid "B<O_DIRECTORY>"
6881 msgstr "B<O_DIRECTORY>"
6883 #. But see the following and its replies:
6884 #. http://marc.theaimsgroup.com/?t=112748702800001&r=1&w=2
6885 #. [PATCH] open: O_DIRECTORY and O_CREAT together should fail
6886 #. O_DIRECTORY | O_CREAT causes O_DIRECTORY to be ignored.
6888 #: build/C/man2/open.2:366
6890 "If I<pathname> is not a directory, cause the open to fail. This flag was "
6891 "added in kernel version 2.1.126, to avoid denial-of-service problems if "
6892 "B<opendir>(3) is called on a FIFO or tape device."
6894 "I<pathname> がディレクトリでなければオープンは失敗する。 このフラグは、 "
6895 "B<opendir>(3) が FIFO やテープデバイスに対してコールされた場合の サービス不"
6896 "能 (denial-of-service) 攻撃を避けるために カーネル 2.1.126 で追加された。"
6899 #: build/C/man2/open.2:366
6905 #: build/C/man2/open.2:372
6907 "Write operations on the file will complete according to the requirements of "
6908 "synchronized I/O I<data> integrity completion."
6910 "ファイルに対する書き込み操作は、同期 I/O のI<データ>完全性完了の要件に基づい"
6914 #: build/C/man2/open.2:384
6916 "By the time B<write>(2) (and similar) return, the output data has been "
6917 "transferred to the underlying hardware, along with any file metadata that "
6918 "would be required to retrieve that data (i.e., as though each B<write>(2) "
6919 "was followed by a call to B<fdatasync>(2)). I<See NOTES below>."
6921 "B<write>(2) (や同様のコール) が返るまでに、 書き込まれたデータおよびデータを"
6922 "取得するのに必要なファイルメタデータが裏で利用されているハードウェアに転送さ"
6923 "れる (つまり、B<write>(2) の後に B<fdatasync>(2) を呼び出したのと同じようにな"
6924 "る)。 I<下記の「注意」も参照のこと>。"
6927 #: build/C/man2/open.2:384
6933 #: build/C/man2/open.2:394
6935 "Ensure that this call creates the file: if this flag is specified in "
6936 "conjunction with B<O_CREAT>, and I<pathname> already exists, then B<open>() "
6939 "この呼び出しでファイルが作成されることを保証する。このフラグが B<O_CREAT> "
6941 "一緒に指定され、 I<pathname> のファイルが既に存在した場合、 B<open>() は失"
6945 #. POSIX.1-2001 explicitly requires this behavior.
6947 #: build/C/man2/open.2:402
6949 "When these two flags are specified, symbolic links are not followed: if "
6950 "I<pathname> is a symbolic link, then B<open>() fails regardless of where "
6951 "the symbolic link points to."
6953 "これら二つのフラグが指定された際、シンボリックリンクは辿られない。 "
6954 "I<pathname> がシンボリックリンクの場合、 シンボリックリンクがどこを指している"
6955 "かに関わらず B<open>() は失敗する。"
6958 #: build/C/man2/open.2:418
6960 "In general, the behavior of B<O_EXCL> is undefined if it is used without "
6961 "B<O_CREAT>. There is one exception: on Linux 2.6 and later, B<O_EXCL> can "
6962 "be used without B<O_CREAT> if I<pathname> refers to a block device. If the "
6963 "block device is in use by the system (e.g., mounted), B<open>() fails with "
6964 "the error B<EBUSY>."
6966 "一般的には、 B<O_CREAT> を指定せずに B<O_EXCL> を使用した場合の\n"
6967 "B<O_EXCL> の動作は規定されていない。\n"
6968 "これには一つ例外があり、Linux 2.6 以降では、\n"
6969 "I<pathname> がブロックデバイスを参照している場合、\n"
6970 "B<O_CREAT> なしで B<O_EXCL> を使用することができる。\n"
6971 "システムがそのブロックデバイスを使用中の場合 (例えば、\n"
6972 "マウントされているなど)、 B<open>() はエラー B<EBUSY> で失敗する。"
6975 #: build/C/man2/open.2:440
6977 "On NFS, B<O_EXCL> is supported only when using NFSv3 or later on kernel 2.6 "
6978 "or later. In NFS environments where B<O_EXCL> support is not provided, "
6979 "programs that rely on it for performing locking tasks will contain a race "
6980 "condition. Portable programs that want to perform atomic file locking using "
6981 "a lockfile, and need to avoid reliance on NFS support for B<O_EXCL>, can "
6982 "create a unique file on the same filesystem (e.g., incorporating hostname "
6983 "and PID), and use B<link>(2) to make a link to the lockfile. If "
6984 "B<link>(2) returns 0, the lock is successful. Otherwise, use B<stat>(2) "
6985 "on the unique file to check if its link count has increased to 2, in which "
6986 "case the lock is also successful."
6988 "NFS では、 B<O_EXCL> は、Linux 2.6 以降で NFSv3 以降を使っている場合でのみサ"
6989 "ポートされる。 B<O_EXCL> サポートが提供されていない NFS 環境では、このフラグ"
6990 "に頼って ロック処理を実行するプログラムは競合状態 (race condition) に出会う "
6991 "可能性がある。 ロックファイルを使用して不可分 (atomic) なファイルロックを実現"
6992 "し、 NFS が B<O_EXCL> をサポートしているかに依存しないようにしたい場合、 移植"
6993 "性のある方法は、同じファイルシステム上に他と名前の重ならない ファイル (例えば"
6994 "ホスト名と PID を組み合わせた名前) を作成し、 B<link>(2) を使用してそのロッ"
6995 "クファイルへのリンクを作成することである。 B<link>(2) コールの返り値が 0 な"
6996 "らばロックに成功している。 あるいは、そのファイルに B<stat>(2) を使用してリ"
6997 "ンク数 (link count) が 2 になっているかをチェックする。 そうなっていれば、同"
6998 "じくロックに成功しているということである。"
7001 #: build/C/man2/open.2:440
7003 msgid "B<O_LARGEFILE>"
7004 msgstr "B<O_LARGEFILE>"
7007 #: build/C/man2/open.2:462
7009 "(LFS) Allow files whose sizes cannot be represented in an I<off_t> (but can "
7010 "be represented in an I<off64_t>) to be opened. The B<_LARGEFILE64_SOURCE> "
7011 "macro must be defined (before including I<any> header files) in order to "
7012 "obtain this definition. Setting the B<_FILE_OFFSET_BITS> feature test macro "
7013 "to 64 (rather than using B<O_LARGEFILE>) is the preferred method of "
7014 "accessing large files on 32-bit systems (see B<feature_test_macros>(7))."
7016 "(LFS) I<off_t> ではサイズを表せない (だだし I<off64_t> ではサイズを表せる)"
7018 "イルをオープン可能にする。この定義を有効にするためには、(I<どの>ヘッダファ"
7020 "ルをインクルードするよりも前に) B<_LARGEFILE64_SOURCE> マクロを定義しなけれ"
7023 "32 ビットシステムにおいて大きなファイルにアクセスしたい場合、\n"
7024 "(B<O_LARGEFILE> を使うよりも) B<_FILE_OFFSET_BITS> 機能検査マクロを 64 に\n"
7025 "セットする方が望ましい方法である (B<feature_test_macros>(7) を参照)。"
7028 #: build/C/man2/open.2:462
7030 msgid "B<O_NOATIME> (since Linux 2.6.8)"
7031 msgstr "B<O_NOATIME> (Linux 2.6.8 以降)"
7033 #. The O_NOATIME flag also affects the treatment of st_atime
7034 #. by mmap() and readdir(2), MTK, Dec 04.
7036 #: build/C/man2/open.2:475
7038 "Do not update the file last access time (I<st_atime> in the inode) when the "
7039 "file is B<read>(2). This flag is intended for use by indexing or backup "
7040 "programs, where its use can significantly reduce the amount of disk "
7041 "activity. This flag may not be effective on all filesystems. One example "
7042 "is NFS, where the server maintains the access time."
7044 "ファイルに対して B<read>(2) が実行されたときに、最終アクセス時刻 (inode の "
7045 "I<st_atime>) を更新しない。 このフラグはインデックス作成やバックアッププログ"
7046 "ラムで使うことを意図している。 これを使うとディスクに対する操作を大幅に減らす"
7047 "ことができる。 このフラグは全てのファイルシステムに対して有効であるわけではな"
7048 "い。 その一例が NFS であり、サーバがアクセス時刻を管理している。"
7051 #: build/C/man2/open.2:475
7054 msgstr "B<O_NOCTTY>"
7057 #: build/C/man2/open.2:483
7059 "If I<pathname> refers to a terminal device\\(emsee B<tty>(4)\\(emit will not "
7060 "become the process's controlling terminal even if the process does not have "
7063 "I<pathname> が端末 (terminal) デバイス \\(em B<tty>(4) 参照 \\(em を指してい"
7065 "場合に、たとえそのプロセスが制御端末を持っていなくても、オープンしたファイ"
7070 #: build/C/man2/open.2:483
7072 msgid "B<O_NOFOLLOW>"
7073 msgstr "B<O_NOFOLLOW>"
7075 #. The headers from glibc 2.0.100 and later include a
7076 #. definition of this flag; \fIkernels before 2.1.126 will ignore it if
7079 #: build/C/man2/open.2:495
7081 "If I<pathname> is a symbolic link, then the open fails. This is a FreeBSD "
7082 "extension, which was added to Linux in version 2.1.126. Symbolic links in "
7083 "earlier components of the pathname will still be followed. See also "
7086 "I<pathname> がシンボリックリンクだった場合、オープンは失敗する。 これは "
7087 "FreeBSD の拡張で、Linux には バージョン 2.1.126 で追加された。 このフラグが指"
7088 "定された場合でも I<pathname> の前の方の要素 (最後のディレクトリセパレータより"
7089 "前の部分) にあるシンボリックリンクについてはリンクが辿られる。 下記の "
7093 #: build/C/man2/open.2:495
7095 msgid "B<O_NONBLOCK> or B<O_NDELAY>"
7096 msgstr "B<O_NONBLOCK> または B<O_NDELAY>"
7099 #: build/C/man2/open.2:508
7101 "When possible, the file is opened in nonblocking mode. Neither the "
7102 "B<open>() nor any subsequent operations on the file descriptor which is "
7103 "returned will cause the calling process to wait. For the handling of FIFOs "
7104 "(named pipes), see also B<fifo>(7). For a discussion of the effect of "
7105 "B<O_NONBLOCK> in conjunction with mandatory file locks and with file leases, "
7108 "可能ならば、ファイルは非停止 (nonblocking) モードでオープンされる。\n"
7109 "B<open>() も、返したファイルディスクリプタに対する以後のすべての操作も呼び"
7111 "したプロセスを待たせることはない。 FIFO (名前付きパイプ) を扱う場合には\n"
7112 "B<fifo>(7) も参照すること。 強制ファイルロック (mandatory file lock) やファ"
7114 "ルリース (file lease) と組み合わせた場合の、 B<O_NONBLOCK> の効果についての\n"
7115 "議論は、 B<fcntl>(2) を参照すること。"
7118 #: build/C/man2/open.2:508
7120 msgid "B<O_PATH> (since Linux 2.6.39)"
7121 msgstr "B<O_PATH> (Linux 2.6.39 以降)"
7124 #. commit 1abf0c718f15a56a0a435588d1b104c7a37dc9bd
7125 #. commit 326be7b484843988afe57566b627fb7a70beac56
7126 #. commit 65cfc6722361570bfe255698d9cd4dccaf47570d
7127 #. http://thread.gmane.org/gmane.linux.man/2790/focus=3496
7128 #. Subject: Re: [PATCH] open(2): document O_PATH
7129 #. Newsgroups: gmane.linux.man, gmane.linux.kernel
7131 #: build/C/man2/open.2:530
7133 "Obtain a file descriptor that can be used for two purposes: to indicate a "
7134 "location in the filesystem tree and to perform operations that act purely at "
7135 "the file descriptor level. The file itself is not opened, and other file "
7136 "operations (e.g., B<read>(2), B<write>(2), B<fchmod>(2), B<fchown>(2), "
7137 "B<fgetxattr>(2), B<mmap>(2)) fail with the error B<EBADF>."
7139 "このフラグを指定して取得したファイルディスクリプタは、 ファイルシステムツリー"
7140 "内での場所を示すため、 純粋にファイルディスクリプタレベルでの作用する操作を実"
7141 "行するため、 の二つの目的で使用することができる。 ファイル自身はオープンされ"
7142 "ず、 他のファイル操作 (例えば B<read>(2), B<write>(2), B<fchmod>(2), "
7143 "B<fchown>(2), B<fgetxattr>(2), B<mmap>(2)) はエラー B<EBADF> で失敗する。"
7146 #: build/C/man2/open.2:534
7148 "The following operations I<can> be performed on the resulting file "
7151 "取得したファイルディスクリプタに対して以下の操作を行うことが「できる」。"
7153 #. commit 332a2e1244bd08b9e3ecd378028513396a004a24
7154 #. fstat(): commit 55815f70147dcfa3ead5738fd56d3574e2e3c1c2
7156 #: build/C/man2/open.2:543
7158 "B<close>(2); B<fchdir>(2) (since Linux 3.5); B<fstat>(2) (since Linux 3.6)."
7160 "B<close>(2); B<fchdir>(2) (Linux 3.5 以降); B<fstat>(2) (Linux 3.6 以降)"
7163 #: build/C/man2/open.2:549
7165 "Duplicating the file descriptor (B<dup>(2), B<fcntl>(2) B<F_DUPFD>, etc.)."
7166 msgstr "ファイルディスクリプタの複製 (B<dup>(2), B<fcntl>(2) B<F_DUPFD> など)"
7169 #: build/C/man2/open.2:555
7171 "Getting and setting file descriptor flags (B<fcntl>(2) B<F_GETFD> and "
7174 "ファイルディスクリプタフラグの取得と設定 (B<fcntl>(2) の B<F_GETFD> と "
7178 #: build/C/man2/open.2:561
7180 "Retrieving open file status flags using the B<fcntl>(2) B<F_GETFL> "
7181 "operation: the returned flags will include the bit B<O_PATH>."
7183 "B<fcntl>(2) の B<F_GETFL> 操作を使ったオープンされたファイルの状態フラグの取"
7184 "得。 返されるフラグには B<O_PATH> ビットが含まれる。"
7187 #: build/C/man2/open.2:574
7190 #| "Passing the file descriptor as the I<dirfd> argument of B<openat>(2) and "
7191 #| "the other \"*at()\" system calls."
7193 "Passing the file descriptor as the I<dirfd> argument of B<openat>(2) and "
7194 "the other \"*at()\" system calls. This includes B<linkat>(2) with "
7195 "B<AT_EMPTY_PATH> (or via procfs using B<AT_SYMLINK_FOLLOW>) even if the "
7196 "file is not a directory."
7198 "B<openat>(2) や他の \"*at()\" 系のシステムコールの I<dirfd> 引数としてその"
7202 #: build/C/man2/open.2:580
7204 "Passing the file descriptor to another process via a UNIX domain socket (see "
7205 "B<SCM_RIGHTS> in B<unix>(7))."
7207 "そのファイルディスクリプタを別のプロセスに UNIX ドメインソケット経由で渡す。 "
7208 "(B<unix>(7) の B<SCM_RIGHTS> を参照)"
7211 #: build/C/man2/open.2:591
7213 "When B<O_PATH> is specified in I<flags>, flag bits other than B<O_DIRECTORY> "
7214 "and B<O_NOFOLLOW> are ignored."
7216 "I<flags> に B<O_PATH> が指定された場合、 B<O_DIRECTORY> と B<O_NOFOLLOW> 以外"
7220 #: build/C/man2/open.2:607
7222 "If I<pathname> is a symbolic link and the B<O_NOFOLLOW> flag is also "
7223 "specified, then the call returns a file descriptor referring to the symbolic "
7224 "link. This file descriptor can be used as the I<dirfd> argument in calls to "
7225 "B<fchownat>(2), B<fstatat>(2), B<linkat>(2), and B<readlinkat>(2) with an "
7226 "empty pathname to have the calls operate on the symbolic link."
7228 "I<pathname> がシンボリックリンクで B<O_NOFOLLOW> フラグも合わせて指定された場"
7229 "合、 この呼び出しではシンボリックリンクを参照するファイルディスクリプタを返"
7230 "す。 このファイルディスクリプタは、 空のパス名を指定した B<fchownat>(2), "
7231 "B<fstatat>(2), B<linkat>(2), B<readlinkat>(2) の呼び出しで I<dirfd> 引数とし"
7232 "て使うことで、 そのシンボリックリンクに対して操作を行うことができる。"
7235 #: build/C/man2/open.2:607
7241 #: build/C/man2/open.2:619
7243 "Write operations on the file will complete according to the requirements of "
7244 "synchronized I/O I<file> integrity completion (by contrast with contrast "
7245 "with the synchronized I/O I<data> integrity completion provided by "
7248 "ファイルに対する書き込み操作は、同期 I/O のI<ファイル>完全性完了の要件に基づ"
7249 "いて行われる (これに対し B<O_DSYNC> では同期 I/O のI<データ>完全性完了が提供"
7253 #: build/C/man2/open.2:630
7255 "By the time B<write>(2) (and similar) return, the output data and "
7256 "associated file metadata have been transferred to the underlying hardware (i."
7257 "e., as though each B<write>(2) was followed by a call to B<fsync>(2)). "
7258 "I<See NOTES below>."
7260 "B<write>(2) (や同様のコール) が返るまでに、 書き込まれたデータと関連するファ"
7261 "イルメタデータが裏で利用されているハードウェアに転送される (つまり、"
7262 "B<write>(2) の後に B<fsync>(2) を呼び出したのと同じようになる)。 I<下記の「注"
7266 #: build/C/man2/open.2:630
7268 msgid "B<O_TMPFILE> (since Linux 3.11)"
7269 msgstr "B<O_TMPFILE> (Linux 3.11 以降)"
7271 #. commit 60545d0d4610b02e55f65d141c95b18ccf855b6e
7272 #. commit f4e0c30c191f87851c4a53454abb55ee276f4a7e
7273 #. commit bb458c644a59dbba3a1fe59b27106c5e68e1c4bd
7275 #: build/C/man2/open.2:642
7277 "Create an unnamed temporary file. The I<pathname> argument specifies a "
7278 "directory; an unnamed inode will be created in that directory's filesystem. "
7279 "Anything written to the resulting file will be lost when the last file "
7280 "descriptor is closed, unless the file is given a name."
7282 "名前なしの一時ファイルを作成する。 I<pathname> 引き数はディレクトリを指定す"
7283 "る。 名前なしの inode がそのディレクトリが存在するファイルシステムに作成され"
7284 "る。 そのファイルに名前を付与しない限り、 作成されたファイルに書き込まれた内"
7285 "容は、 最後のファイルディスクリプタがクローズされる際に失われる。"
7288 #: build/C/man2/open.2:656
7290 "B<O_TMPFILE> must be specified with one of B<O_RDWR> or B<O_WRONLY> and, "
7291 "optionally, B<O_EXCL>. If B<O_EXCL> is not specified, then B<linkat>(2) "
7292 "can be used to link the temporary file into the filesystem, making it "
7293 "permanent, using code like the following:"
7295 "B<O_TMPFILE> は必ず B<O_RDWR> か B<O_WRONLY> のいずれかと一緒に使わなければな"
7296 "らない。 B<O_EXCL> も指定することができる。 B<O_EXCL> が指定されなかった場"
7297 "合、 B<linkat>(2) を使って、そのファイルシステムにこの一時ファイルへのリンク"
7298 "を作成し、ファイルを永続化することができる。 以下のコードのようにすればよい。"
7301 #: build/C/man2/open.2:662
7304 "char path[PATH_MAX];\n"
7305 "fd = open(\"/path/to/dir\", O_TMPFILE | O_RDWR,\n"
7306 " S_IRUSR | S_IWUSR);\n"
7308 "char path[PATH_MAX];\n"
7309 "fd = open(\"/path/to/dir\", O_TMPFILE | O_RDWR,\n"
7310 " S_IRUSR | S_IWUSR);\n"
7313 #: build/C/man2/open.2:664
7315 msgid "/* File I/O on 'fd'... */\n"
7316 msgstr "/* 'fd' に対するファイル I/O ... */\n"
7319 #: build/C/man2/open.2:668
7322 "snprintf(path, PATH_MAX, \"/proc/self/fd/%d\", fd);\n"
7323 "linkat(AT_FDCWD, path, AT_FDCWD, \"/path/for/file\",\n"
7324 " AT_SYMLINK_FOLLOW);\n"
7326 "snprintf(path, PATH_MAX, \"/proc/self/fd/%d\", fd);\n"
7327 "linkat(AT_FDCWD, path, AT_FDCWD, \"/path/for/file\",\n"
7328 " AT_SYMLINK_FOLLOW);\n"
7331 #: build/C/man2/open.2:677
7333 "In this case, the B<open>() I<mode> argument determines the file permission "
7334 "mode, as with B<O_CREAT>."
7336 "この場合、 B<open>() の I<mode> 引き数は B<O_CREAT> と同様にファイルのアクセ"
7340 #: build/C/man2/open.2:689
7342 "Specifying B<O_EXCL> in conjunction with B<O_TMPFILE> prevents a temporary "
7343 "file from being linked into the filesystem in the above manner. (Note that "
7344 "the meaning of B<O_EXCL> in this case is different from the meaning of "
7345 "B<O_EXCL> otherwise.)"
7347 "B<O_TMPFILE> とともに B<O_EXCL> を指定すると、 一時ファイルに対して上記の方法"
7348 "でファイルシステムへのリンクを行うことができなくなる (この場合の B<O_EXCL> の"
7349 "意味は他の場合の B<O_EXCL> の意味とは異なる点に注意)。"
7351 #. Inspired by http://lwn.net/Articles/559147/
7353 #: build/C/man2/open.2:694
7354 msgid "There are two main use cases for B<O_TMPFILE>:"
7355 msgstr "B<O_TMPFILE> には主に二つの用途がある。"
7358 #: build/C/man2/open.2:703
7360 "Improved B<tmpfile>(3) functionality: race-free creation of temporary files "
7361 "that (1) are automatically deleted when closed; (2) can never be reached via "
7362 "any pathname; (3) are not subject to symlink attacks; and (4) do not require "
7363 "the caller to devise unique names."
7365 "改善された B<tmpfile>(3) の機能: (1) クローズ時に自動的に削除される、 (2) パ"
7366 "ス名では決して参照できない、 (3) シンボリックリンク攻撃ができない、 (4) 呼び"
7367 "出し元が一意な名前を考える必要がない、 という特長を持つ競合のない一時ファイル"
7371 #: build/C/man2/open.2:714
7373 "Creating a file that is initially invisible, which is then populated with "
7374 "data and adjusted to have appropriate filesystem attributes (B<chown>(2), "
7375 "B<chmod>(2), B<fsetxattr>(2), etc.) before being atomically linked into the "
7376 "filesystem in a fully formed state (using B<linkat>(2) as described above)."
7378 "最初は見えないファイルを作成し、 それからデータを書き込んだり、適切なファイル"
7379 "システム属性を持つように調整したり (B<chown>(2), B<chmod>(2), "
7380 "B<fsetxattr>(2) など) した後、 準備が全て整った状態で (上述の B<linkat>(2) を"
7381 "使って) ファイルシステム内にアトミックにリンクを行う。"
7383 #. commit 99b6436bc29e4f10e4388c27a3e4810191cc4788
7384 #. commit ab29743117f9f4c22ac44c13c1647fb24fb2bafe
7386 #: build/C/man2/open.2:725
7388 "B<O_TMPFILE> requires support by the underlying filesystem; only a subset of "
7389 "Linux filesystems provide that support. In the initial implementation, "
7390 "support was provided in the ext2, ext3, ext4, UDF, Minix, and shmem "
7391 "filesystems. XFS support was added in Linux 3.15."
7393 "B<O_TMPFILE> は、 裏で利用されるファイルシステムによるサポートが必要である。 "
7394 "一部の Linux ファイルシステムだけがこの機能をサポートしている。 最初の実装で"
7395 "は、 ext2, ext3, ext4, UDF, Minix, shmem ファイルシステムがサポートしてい"
7396 "た。 XFS でのサポートが Linux 3.15 で追加された。"
7399 #: build/C/man2/open.2:725
7405 #: build/C/man2/open.2:739
7407 "If the file already exists and is a regular file and the access mode allows "
7408 "writing (i.e., is B<O_RDWR> or B<O_WRONLY>) it will be truncated to length "
7409 "0. If the file is a FIFO or terminal device file, the B<O_TRUNC> flag is "
7410 "ignored. Otherwise, the effect of B<O_TRUNC> is unspecified."
7412 "ファイルが既に存在し、通常ファイルであり、 アクセスモードで書き込みが許可され"
7413 "ている (つまり、 B<O_RDWR> または B<O_WRONLY> の) 場合、長さ 0 に切り詰め "
7414 "(truncate) られる。 ファイルが FIFO または端末デバイスファイルの場合、 "
7415 "B<O_TRUNC> フラグは無視される。 それ以外の場合、 B<O_TRUNC> の効果は未定義で"
7419 #: build/C/man2/open.2:739
7425 #: build/C/man2/open.2:747
7427 "B<creat>() is equivalent to B<open>() with I<flags> equal to B<O_CREAT|"
7428 "O_WRONLY|O_TRUNC>."
7430 "B<creat>() は I<flags> に B<O_CREAT|O_WRONLY|O_TRUNC> を指定して B<open>() "
7434 #: build/C/man2/open.2:747
7440 #: build/C/man2/open.2:753
7442 "The B<openat>() system call operates in exactly the same way as B<open>(), "
7443 "except for the differences described here."
7445 "B<openat>() システムコールは B<open>() と全く同様に動作するが、以下で説明する"
7449 #: build/C/man2/open.2:763
7451 "If the pathname given in I<pathname> is relative, then it is interpreted "
7452 "relative to the directory referred to by the file descriptor I<dirfd> "
7453 "(rather than relative to the current working directory of the calling "
7454 "process, as is done by B<open>() for a relative pathname)."
7455 msgstr "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスクリプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される (B<open>() に相対パス名を渡した場合のように、呼び出したプロセスのカレントワーキングディレクトリに対する相対パスではない)。"
7458 #: build/C/man2/open.2:775
7460 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
7461 "then I<pathname> is interpreted relative to the current working directory of "
7462 "the calling process (like B<open>())."
7464 "I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
7465 "の場合、 (B<open>() と同様に) I<pathname> は呼び出したプロセスのカレントワー"
7466 "キングディレクトリに対する相対パスと解釈される。"
7469 #: build/C/man2/open.2:781 build/C/man2/readlink.2:134
7470 msgid "If I<pathname> is absolute, then I<dirfd> is ignored."
7472 "I<pathname> で指定されたパス名が絶対パスの場合、 I<dirfd> は無視される。"
7475 #: build/C/man2/open.2:790
7477 "B<open>(), B<openat>(), and B<creat>() return the new file descriptor, or "
7478 "-1 if an error occurred (in which case, I<errno> is set appropriately)."
7480 "B<open>(), B<openat>(), B<creat>() は新しいファイルディスクリプタを返す。 エ"
7481 "ラーが発生した場合は -1 を返す (その場合は I<errno> が適切に設定される)。"
7484 #: build/C/man2/open.2:796
7486 "B<open>(), B<openat>(), and B<creat>() can fail with the following errors:"
7487 msgstr "B<open>(), B<openat>(), B<creat>() は以下のエラーで失敗する。"
7490 #: build/C/man2/open.2:805
7492 "The requested access to the file is not allowed, or search permission is "
7493 "denied for one of the directories in the path prefix of I<pathname>, or the "
7494 "file did not exist yet and write access to the parent directory is not "
7495 "allowed. (See also B<path_resolution>(7).)"
7497 "ファイルに対する要求されたアクセスが許されていないか、 I<pathname> のディレク"
7498 "トリ部分の何れかのディレクトリに検索許可がなかった。 またはファイルが存在せ"
7499 "ず、親ディレクトリへの書き込み許可がなかった。 (B<path_resolution>(7) も参照"
7503 #: build/C/man2/open.2:811
7505 "Where B<O_CREAT> is specified, the file does not exist, and the user's quota "
7506 "of disk blocks or inodes on the filesystem has been exhausted."
7508 "B<O_CREAT> が指定された場合で、そのファイルが存在せず、ディスクブロックか "
7509 "inode がそのファイルシステムのユーザクォータに達していた。"
7512 #: build/C/man2/open.2:817
7513 msgid "I<pathname> already exists and B<O_CREAT> and B<O_EXCL> were used."
7514 msgstr "I<pathname> は既に存在し、 B<O_CREAT> と B<O_EXCL> が使用された。"
7517 #: build/C/man2/open.2:821 build/C/man2/rmdir.2:67 build/C/man2/unlink.2:182
7518 msgid "I<pathname> points outside your accessible address space."
7519 msgstr "I<pathname> がアクセス可能なアドレス空間の外を指している。"
7522 #: build/C/man2/open.2:821 build/C/man2/write.2:145
7528 #: build/C/man2/open.2:825
7529 msgid "See B<EOVERFLOW>."
7530 msgstr "B<EOVERFLOW> 参照。"
7533 #: build/C/man2/open.2:825 build/C/man2/read.2:122 build/C/man3/scanf.3:561
7534 #: build/C/man3/tmpfile.3:63 build/C/man2/write.2:150
7540 #: build/C/man2/open.2:832
7542 "While blocked waiting to complete an open of a slow device (e.g., a FIFO; "
7543 "see B<fifo>(7)), the call was interrupted by a signal handler; see "
7546 "遅いデバイス (例えば FIFO、 B<fifo>(7) 参照) のオープンが完了するのを待って"
7547 "停止している間に システムコールがシグナルハンドラにより割り込まれた。 "
7551 #: build/C/man2/open.2:840
7553 "The filesystem does not support the B<O_DIRECT> flag. See B<NOTES> for more "
7556 "ファイルシステムが B<O_DIRECT> フラグをサポートしていない。 詳細はB<注意>を参"
7559 #. In particular, __O_TMPFILE instead of O_TMPFILE
7561 #: build/C/man2/open.2:845
7562 msgid "Invalid value in I<flags>."
7563 msgstr "I<flags> に無効な値が入っている。"
7566 #: build/C/man2/open.2:855
7568 "B<O_TMPFILE> was specified in I<flags>, but neither B<O_WRONLY> nor "
7569 "B<O_RDWR> was specified."
7571 "I<flags> に B<O_TMPFILE> が指定されたが、 B<O_WRONLY> も B<O_RDWR> も指定され"
7575 #: build/C/man2/open.2:855 build/C/man2/open.2:864 build/C/man2/read.2:158
7576 #: build/C/man2/rename.2:255 build/C/man2/unlink.2:185
7577 #: build/C/man2/unlink.2:256
7583 #: build/C/man2/open.2:864
7585 "I<pathname> refers to a directory and the access requested involved writing "
7586 "(that is, B<O_WRONLY> or B<O_RDWR> is set)."
7588 "I<pathname> はディレクトリを参照しており、書き込み要求が含まれていた (つまり "
7589 "B<O_WRONLY> または B<O_RDWR> が設定されている)。"
7592 #: build/C/man2/open.2:878
7594 "I<pathname> refers to an existing directory, B<O_TMPFILE> and one of "
7595 "B<O_WRONLY> or B<O_RDWR> were specified in I<flags>, but this kernel version "
7596 "does not provide the B<O_TMPFILE> functionality."
7598 "I<pathname> が存在するディレクトリを参照していて、 B<O_TMPFILE> および "
7599 "B<O_WRONLY> と B<O_RDWR> の一方が I<flags> に指定されていたが、 このカーネル"
7600 "バージョンでは B<O_TMPFILE> 機能が提供されていない。"
7603 #: build/C/man2/open.2:882 build/C/man2/rmdir.2:77
7604 msgid "Too many symbolic links were encountered in resolving I<pathname>."
7605 msgstr "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
7608 #: build/C/man2/open.2:891
7610 "I<pathname> was a symbolic link, and I<flags> specified B<O_NOFOLLOW> but "
7613 "I<pathname> がシンボリックリンクで、 I<flags> に B<O_NOFOLLOW> が指定された"
7614 "が、 B<O_PATH> が指定されていなかった。"
7617 #: build/C/man2/open.2:891 build/C/man2/pipe.2:144 build/C/man3/tmpfile.3:66
7623 #: build/C/man2/open.2:894
7624 msgid "The process already has the maximum number of files open."
7625 msgstr "プロセスがオープンしているファイル数がすでに最大数に達している。"
7628 #: build/C/man2/open.2:898 build/C/man2/rmdir.2:80 build/C/man2/unlink.2:197
7629 msgid "I<pathname> was too long."
7630 msgstr "I<pathname> が長過ぎる。"
7633 #: build/C/man2/open.2:898 build/C/man2/pipe.2:147 build/C/man3/tmpfile.3:69
7639 #: build/C/man2/open.2:901 build/C/man2/pipe.2:150
7640 msgid "The system limit on the total number of open files has been reached."
7641 msgstr "オープンされているファイルの総数がシステムの制限に達している。"
7644 #: build/C/man2/open.2:901
7650 #: build/C/man2/open.2:908
7652 "I<pathname> refers to a device special file and no corresponding device "
7653 "exists. (This is a Linux kernel bug; in this situation B<ENXIO> must be "
7656 "I<pathname> がデバイススペシャルファイルを参照しており、対応するデバイスが存"
7657 "在しない。 (これは Linux カーネルのバグであり、この場合には B<ENXIO> が返され"
7661 #: build/C/man2/open.2:915
7663 "B<O_CREAT> is not set and the named file does not exist. Or, a directory "
7664 "component in I<pathname> does not exist or is a dangling symbolic link."
7666 "B<O_CREAT> が設定されておらず、かつ指定されたファイルが存在しない。 または、 "
7667 "I<pathname> のディレクトリ部分が存在しないか壊れた (dangling) シンボリックリ"
7671 #: build/C/man2/open.2:929
7673 "I<pathname> refers to a nonexistent directory, B<O_TMPFILE> and one of "
7674 "B<O_WRONLY> or B<O_RDWR> were specified in I<flags>, but this kernel version "
7675 "does not provide the B<O_TMPFILE> functionality."
7677 "I<pathname> が存在しないディレクトリを参照していて、 B<O_TMPFILE> および "
7678 "B<O_WRONLY> と B<O_RDWR> の一方が I<flags> に指定されていたが、 このカーネル"
7679 "バージョンでは B<O_TMPFILE> 機能が提供されていない。"
7682 #: build/C/man2/open.2:938
7684 "I<pathname> was to be created but the device containing I<pathname> has no "
7685 "room for the new file."
7687 "I<pathname> を作成する必要があるが、 I<pathname> を含んでいるデバイスに新しい"
7691 #: build/C/man2/open.2:945
7693 "A component used as a directory in I<pathname> is not, in fact, a directory, "
7694 "or B<O_DIRECTORY> was specified and I<pathname> was not a directory."
7696 "I<pathname> に含まれるディレクトリ部分のどれかが実際にはディレクトリでない。 "
7697 "または B<O_DIRECTORY> が指定されており、 I<pathname> がディレクトリでない。"
7700 #: build/C/man2/open.2:951
7702 "B<O_NONBLOCK> | B<O_WRONLY> is set, the named file is a FIFO, and no process "
7703 "has the FIFO open for reading. Or, the file is a device special file and no "
7704 "corresponding device exists."
7705 msgstr "B<O_NONBLOCK> | B<O_WRONLY> が設定されており、指定したファイルが FIFO で そのファイルを読み込み用でオープンしている FIFO が存在しない。 または、ファイルがデバイススペシャルファイルで 対応するデバイスが存在しない。"
7708 #: build/C/man2/open.2:951 build/C/man2/open_by_handle_at.2:301
7710 msgid "B<EOPNOTSUPP>"
7711 msgstr "B<EOPNOTSUPP>"
7714 #: build/C/man2/open.2:957
7715 msgid "The filesystem containing I<pathname> does not support B<O_TMPFILE>."
7717 "I<pathname> を含んでいるファイルシステムが B<O_TMPFILE> をサポートしていな"
7720 #. See http://bugzilla.kernel.org/show_bug.cgi?id=7253
7721 #. "Open of a large file on 32-bit fails with EFBIG, should be EOVERFLOW"
7722 #. Reported 2006-10-03
7724 #: build/C/man2/open.2:977
7726 "I<pathname> refers to a regular file that is too large to be opened. The "
7727 "usual scenario here is that an application compiled on a 32-bit platform "
7728 "without I<-D_FILE_OFFSET_BITS=64> tried to open a file whose size exceeds "
7729 "I<(2E<lt>E<lt>31)-1> bits; see also B<O_LARGEFILE> above. This is the error "
7730 "specified by POSIX.1-2001; in kernels before 2.6.24, Linux gave the error "
7731 "B<EFBIG> for this case."
7733 "I<pathname> が参照しているのが、大き過ぎてオープンできない通常のファイルであ"
7734 "る。 通常、このエラーが発生するは、32 ビットプラットフォーム上で I<-"
7735 "D_FILE_OFFSET_BITS=64> を指定せずにコンパイルされたアプリケーションが、ファイ"
7736 "ルサイズが I<(2E<lt>31)-1> ビットを超えるファイルを開こうとした場合である。 "
7737 "上記の B<O_LARGEFILE> も参照。 これは POSIX.1-2001 で規定されているエラーであ"
7738 "る。 2.6.24 より前のカーネルでは、Linux はこの場合にエラー B<EFBIG> を返して"
7741 #. Strictly speaking, it's the filesystem UID... (MTK)
7743 #: build/C/man2/open.2:985
7745 "The B<O_NOATIME> flag was specified, but the effective user ID of the caller "
7746 "did not match the owner of the file and the caller was not privileged "
7749 "B<O_NOATIME> フラグが指定されたが、呼び出し元の実効ユーザー ID が ファイルの"
7750 "所有者と一致せず、かつ呼び出し元に特権 (B<CAP_FOWNER>) がない。"
7753 #: build/C/man2/open.2:990
7755 "I<pathname> refers to a file on a read-only filesystem and write access was "
7758 "I<pathname> が読み込み専用のファイルシステム上のファイルを参照しており、 書き"
7762 #: build/C/man2/open.2:990
7768 #: build/C/man2/open.2:995
7770 "I<pathname> refers to an executable image which is currently being executed "
7771 "and write access was requested."
7773 "I<pathname> が現在実行中の実行イメージを参照しており、書き込みが要求された。"
7776 #: build/C/man2/open.2:995
7778 msgid "B<EWOULDBLOCK>"
7779 msgstr "B<EWOULDBLOCK>"
7782 #: build/C/man2/open.2:1002
7784 "The B<O_NONBLOCK> flag was specified, and an incompatible lease was held on "
7785 "the file (see B<fcntl>(2))."
7787 "B<O_NONBLOCK> フラグが指定されたが、そのファイルには矛盾するリースが設定され"
7788 "ていた (B<fcntl>(2) 参照)。"
7791 #: build/C/man2/open.2:1005
7792 msgid "The following additional errors can occur for B<openat>():"
7793 msgstr "B<openat>() では以下のエラーも発生する。"
7796 #: build/C/man2/open.2:1009 build/C/man2/readlink.2:206
7797 #: build/C/man2/unlink.2:252
7798 msgid "I<dirfd> is not a valid file descriptor."
7799 msgstr "I<dirfd> が有効なファイルディスクリプタではない。"
7802 #: build/C/man2/open.2:1015
7804 "I<pathname> is a relative pathname and I<dirfd> is a file descriptor "
7805 "referring to a file other than a directory."
7806 msgstr "I<pathname> が相対パス名で、 I<dirfd> がディレクトリ以外のファイルを参照しているファイルディスクリプタである。"
7809 #: build/C/man2/open.2:1019
7811 "B<openat>() was added to Linux in kernel 2.6.16; library support was added "
7812 "to glibc in version 2.4."
7814 "B<openat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサポー"
7815 "トはバージョン 2.4 で glibc に追加された。"
7818 #: build/C/man2/open.2:1023
7819 msgid "B<open>(), B<creat>() SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
7820 msgstr "B<open>(), B<creat>() SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
7823 #: build/C/man2/open.2:1026
7824 msgid "B<openat>(): POSIX.1-2008."
7825 msgstr "B<openat>(): POSIX.1-2008."
7828 #: build/C/man2/open.2:1037
7830 "The B<O_DIRECT>, B<O_NOATIME>, B<O_PATH>, and B<O_TMPFILE> flags are Linux-"
7831 "specific. One must define B<_GNU_SOURCE> to obtain their definitions."
7833 "フラグ B<O_DIRECT>, B<O_NOATIME>, B<O_PATH>, B<O_TMPFILE> は Linux 特有のもの"
7834 "である。 これらのフラグの定義を得るためには B<_GNU_SOURCE> を定義しなければな"
7838 #: build/C/man2/open.2:1052
7840 "The B<O_CLOEXEC>, B<O_DIRECTORY>, and B<O_NOFOLLOW> flags are not specified "
7841 "in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc 2.12, one "
7842 "can obtain their definitions by defining either B<_POSIX_C_SOURCE> with a "
7843 "value greater than or equal to 200809L or B<_XOPEN_SOURCE> with a value "
7844 "greater than or equal to 700. In glibc 2.11 and earlier, one obtains the "
7845 "definitions by defining B<_GNU_SOURCE>."
7847 "フラグ B<O_CLOEXEC>, B<O_DIRECTORY>, B<O_NOFOLLOW> は POSIX.1-2001 では規定さ"
7848 "れていないが、 POSIX.1-2008 では規定されている。 glibc 2.12 以降では、これら"
7849 "の定義を得るには、 B<_POSIX_C_SOURCE> を 200809L 以上の値で定義するか、 "
7850 "B<_XOPEN_SOURCE> を 700 以上の値で定義する。 glibc 2.11 以前では、 これらの定"
7851 "義を得るには B<_GNU_SOURCE> を定義する。"
7854 #: build/C/man2/open.2:1063
7856 "As noted in B<feature_test_macros>(7), feature test macros such as "
7857 "B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, and B<_GNU_SOURCE> must be defined "
7858 "before including I<any> header files."
7860 "B<feature_test_macros>(7) に注意書きがあるように、 B<_POSIX_C_SOURCE>, "
7861 "B<_XOPEN_SOURCE>, B<_GNU_SOURCE> などの機能検査マクロはI<どの>ヘッダーファイ"
7862 "ルをインクルードするより前に定義しなければならない。"
7865 #: build/C/man2/open.2:1071
7867 "Under Linux, the B<O_NONBLOCK> flag indicates that one wants to open but "
7868 "does not necessarily have the intention to read or write. This is typically "
7869 "used to open devices in order to get a file descriptor for use with "
7872 "Linux では、 B<O_NONBLOCK> フラグは、 open を実行したいが read または write "
7873 "を実行する意図は 必ずしもないことを意味する。 これは B<ioctl>(2) のための"
7874 "ファイルディスクリプタを取得するために、 デバイスをオープンするときによく用い"
7877 #. Linux 2.0, 2.5: truncate
7878 #. Solaris 5.7, 5.8: truncate
7879 #. Irix 6.5: truncate
7880 #. Tru64 5.1B: truncate
7881 #. HP-UX 11.22: truncate
7882 #. FreeBSD 4.7: truncate
7884 #: build/C/man2/open.2:1083
7886 "The (undefined) effect of B<O_RDONLY | O_TRUNC> varies among "
7887 "implementations. On many systems the file is actually truncated."
7889 "B<O_RDONLY | O_TRUNC> の影響は未定義であり、その動作は実装によって異なる。 多"
7890 "くのシステムではファイルは実際に切り詰められる。"
7893 #: build/C/man2/open.2:1091
7895 "Note that B<open>() can open device special files, but B<creat>() cannot "
7896 "create them; use B<mknod>(2) instead."
7898 "B<open>() はスペシャルファイルをオープンすることができるが、 B<creat>() で"
7899 "スペシャルファイルを作成できない点に注意すること。 代わりに B<mknod>(2) を使"
7903 #: build/C/man2/open.2:1112
7905 "If the file is newly created, its I<st_atime>, I<st_ctime>, I<st_mtime> "
7906 "fields (respectively, time of last access, time of last status change, and "
7907 "time of last modification; see B<stat>(2)) are set to the current time, and "
7908 "so are the I<st_ctime> and I<st_mtime> fields of the parent directory. "
7909 "Otherwise, if the file is modified because of the B<O_TRUNC> flag, its "
7910 "st_ctime and st_mtime fields are set to the current time."
7912 "ファイルが新しく作成されると、 ファイルの I<st_atime>, I<st_ctime>, "
7913 "I<st_mtime> フィールド (それぞれ最終アクセス時刻、最終状態変更時刻、最終修正"
7914 "時刻である。 B<stat>(2) 参照) が現在時刻に設定される。 さらに親ディレクトリ"
7915 "の I<st_ctime> と I<st_mtime> も現在時刻に設定される。 それ以外の場合で、"
7916 "O_TRUNC フラグでファイルが修正されたときは、 ファイルの I<st_ctime> と "
7917 "I<st_mtime> フィールドが現在時刻に設定される。"
7920 #: build/C/man2/open.2:1112
7922 msgid "Synchronized I/O"
7926 #: build/C/man2/open.2:1127
7928 "The POSIX.1-2008 \"synchronized I/O\" option specifies different variants of "
7929 "synchronized I/O, and specifies the B<open>() flags B<O_SYNC>, B<O_DSYNC>, "
7930 "and B<O_RSYNC> for controlling the behavior. Regardless of whether an "
7931 "implementation supports this option, it must at least support the use of "
7932 "B<O_SYNC> for regular files."
7934 "POSIX.1-2008 の「同期 I/O」の選択肢として複数種類が規定されており、 動作を制"
7935 "御するために B<open>() フラグとして B<O_SYNC>, B<O_DSYNC>, B<O_RSYNC> が規定"
7936 "されている。 この選択肢を実装がサポートしているかに関わらず、 各実装では少な"
7937 "くとも通常のファイルに対して B<O_SYNC> が利用できなければならない。"
7940 #: build/C/man2/open.2:1138
7942 "Linux implements B<O_SYNC> and B<O_DSYNC>, but not B<O_RSYNC>. (Somewhat "
7943 "incorrectly, glibc defines B<O_RSYNC> to have the same value as B<O_SYNC>.)"
7945 "Linux は B<O_SYNC> と B<O_DSYNC> を実装しているが、 B<O_RSYNC> は実装していな"
7946 "い (少し間違っているのだが、 glibc では B<O_RSYNC> が B<O_SYNC> と同じ値で定"
7950 #: build/C/man2/open.2:1156
7952 "B<O_SYNC> provides synchronized I/O I<file> integrity completion, meaning "
7953 "write operations will flush data and all associated metadata to the "
7954 "underlying hardware. B<O_DSYNC> provides synchronized I/O I<data> integrity "
7955 "completion, meaning write operations will flush data to the underlying "
7956 "hardware, but will only flush metadata updates that are required to allow a "
7957 "subsequent read operation to complete successfully. Data integrity "
7958 "completion can reduce the number of disk operations that are required for "
7959 "applications that don't need the guarantees of file integrity completion."
7961 "B<O_SYNC> は、 同期 I/O でのI<ファイル>完全性完了を提供する。 つまり、 書き込"
7962 "み操作はデータとすべての関連メタデータを裏で利用されているハードウェアにフ"
7963 "ラッシュすることを意味する。 B<O_DSYNC> は、 同期 I/O でのI<データ>完全性完了"
7964 "を提供する。 つまり、 書き込み操作はデータを裏で利用されているハードウェアに"
7965 "フラッシュするが、 それ以降の読み出し操作が正常に完了するのに必要なメタデータ"
7966 "の更新のみをフラッシュする。 データ完全性完了は、 ファイル完全性完了を必要と"
7967 "しないアプリケーションで、 ディスク操作の数を減らすことができる。"
7970 #: build/C/man2/open.2:1173
7972 "To understand the difference between the the two types of completion, "
7973 "consider two pieces of file metadata: the file last modification timestamp "
7974 "(I<st_mtime>) and the file length. All write operations will update the "
7975 "last file modification timestamp, but only writes that add data to the end "
7976 "of the file will change the file length. The last modification timestamp is "
7977 "not needed to ensure that a read completes successfully, but the file length "
7978 "is. Thus, B<O_DSYNC> would only guarantee to flush updates to the file "
7979 "length metadata (whereas B<O_SYNC> would also always flush the last "
7980 "modification timestamp metadata)."
7982 "2 種類の完了の違いを理解するために、 ファイルメタデータの 2 つの要素、 ファイ"
7983 "ルの最終修正時刻 (I<st_mtime>) とファイル長、を考える。 すべての書き込み操作"
7984 "は最終修正時刻を更新するが、 ファイルの末尾にデータを追加する書き込み操作のみ"
7985 "がファイル長を変更する。 最終修正時刻は、 読み出しが正常に完了するのに必要で"
7986 "はないが、 ファイル長は必要である。 したがって、 B<O_DSYNC> はファイル長のメ"
7987 "タデータの更新がフラッシュされることだけを保証する (これに対して B<O_SYNC> で"
7988 "は最終修正時刻のメタデータも常にフラッシュされる)。"
7991 #: build/C/man2/open.2:1185
7993 "Before Linux 2.6.33, Linux implemented only the B<O_SYNC> flag for "
7994 "B<open>(). However, when that flag was specified, most filesystems actually "
7995 "provided the equivalent of synchronized I/O I<data> integrity completion (i."
7996 "e., B<O_SYNC> was actually implemented as the equivalent of B<O_DSYNC>)."
7998 "Linux 2.6.33 より前では、 Linux は B<open>() では B<O_SYNC> フラグのみを実装"
7999 "していた。 しかしながら、 このフラグが指定された場合、 ほとんどのファイルシス"
8000 "テムで提供されていたのは実際には同期 I/O でのI<データ>完全性完了と等価なもの"
8001 "であった (つまり、 B<O_SYNC> は実際には B<O_DSYNC> と等価なものとして実装され"
8005 #: build/C/man2/open.2:1204
8007 "Since Linux 2.6.33, proper B<O_SYNC> support is provided. However, to "
8008 "ensure backward binary compatibility, B<O_DSYNC> was defined with the same "
8009 "value as the historical B<O_SYNC>, and B<O_SYNC> was defined as a new (two-"
8010 "bit) flag value that includes the B<O_DSYNC> flag value. This ensures that "
8011 "applications compiled against new headers get at least B<O_DSYNC> semantics "
8012 "on pre-2.6.33 kernels."
8014 "Linux 2.6.33 行こう では、 正しい B<O_SYNC> のサポートが提供されている。 しか"
8015 "しながら、 バイナリレベルの後方互換性を保証するため、 B<O_DSYNC> は以前の "
8016 "B<O_SYNC> と同じ値で定義されており、 B<O_SYNC> は B<O_DSYNC> フラグの値を含む"
8017 "新しい (2 ビットの) フラグ値として定義されている。 これにより、 新しいヘッダ"
8018 "を使ってコンパイルされたアプリケーションで、 2.6.33 より前のカーネルで少なく"
8019 "とも B<O_DSYNC> の動作は同じになることが保証される。"
8022 #: build/C/man2/open.2:1204
8028 #: build/C/man2/open.2:1208
8030 "There are many infelicities in the protocol underlying NFS, affecting "
8031 "amongst others B<O_SYNC> and B<O_NDELAY>."
8033 "NFS を実現しているプロトコルには多くの不備があり、特に B<O_SYNC> と "
8034 "B<O_NDELAY> に影響する。"
8037 #: build/C/man2/open.2:1223
8039 "On NFS filesystems with UID mapping enabled, B<open>() may return a file "
8040 "descriptor but, for example, B<read>(2) requests are denied with "
8041 "B<EACCES>. This is because the client performs B<open>() by checking the "
8042 "permissions, but UID mapping is performed by the server upon read and write "
8045 "UID マッピングを使用している NFS ファイルシステムでは、 B<open>() がファイル"
8046 "ディスクリプタを返した場合でも B<read>(2) が B<EACCES> で拒否される場合があ"
8047 "る。 これはクライアントがアクセス許可のチェックを行って B<open>() を実行する"
8048 "が、読み込みや書き込みの際には サーバーで UID マッピングが行われるためであ"
8052 #: build/C/man2/open.2:1223
8054 msgid "File access mode"
8055 msgstr "ファイルアクセスモード"
8058 #: build/C/man2/open.2:1238
8060 "Unlike the other values that can be specified in I<flags>, the I<access "
8061 "mode> values B<O_RDONLY>, B<O_WRONLY>, and B<O_RDWR> do not specify "
8062 "individual bits. Rather, they define the low order two bits of I<flags>, "
8063 "and are defined respectively as 0, 1, and 2. In other words, the "
8064 "combination B<O_RDONLY | O_WRONLY> is a logical error, and certainly does "
8065 "not have the same meaning as B<O_RDWR>."
8067 "「アクセスモード」の値 B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> は、 I<flags> に指"
8068 "定できる他の値と違い、個々のビットを指定するものではなく、 これらの値は "
8069 "I<flags> の下位 2 ビットを定義する。 B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR> はそ"
8070 "れぞれ 0, 1, 2 に定義されている。 言い換えると、 B<O_RDONLY | O_WRONLY> の組"
8071 "み合わせは論理的に間違いであり、確かに B<O_RDWR> と同じ意味ではない。"
8073 #. See for example util-linux's disk-utils/setfdprm.c
8074 #. For some background on access mode 3, see
8075 #. http://thread.gmane.org/gmane.linux.kernel/653123
8076 #. "[RFC] correct flags to f_mode conversion in __dentry_open"
8077 #. LKML, 12 Mar 2008
8079 #: build/C/man2/open.2:1255
8081 "Linux reserves the special, nonstandard access mode 3 (binary 11) in "
8082 "I<flags> to mean: check for read and write permission on the file and return "
8083 "a descriptor that can't be used for reading or writing. This nonstandard "
8084 "access mode is used by some Linux drivers to return a descriptor that is to "
8085 "be used only for device-specific B<ioctl>(2) operations."
8087 "Linux では、特別な、非標準なアクセスモードとして 3 (バイナリでは 11) が 予約"
8088 "されており I<flags> に指定できる。 このアクセスモードを指定すると、ファイルの"
8089 "読み出し/書き込み許可をチェックし、 読み出しにも書き込みにも使用できないディ"
8090 "スクリプタを返す。 この非標準のアクセスモードはいくつかの Linux ドライバで、"
8091 "デバイス固有の B<ioctl>(2) 操作にのみ使用されるディスクリプタを返すために使わ"
8095 #: build/C/man2/open.2:1255
8097 msgid "Rationale for openat() and other directory file descriptor APIs"
8098 msgstr "openat() や他のディレクトリファイルディスクリプタ API の基本原理"
8101 #: build/C/man2/open.2:1283
8103 "B<openat>() and the other system calls and library functions that take a "
8104 "directory file descriptor argument (i.e., B<faccessat>(2), "
8105 "B<fanotify_mark>(2), B<fchmodat>(2), B<fchownat>(2), B<fstatat>(2), "
8106 "B<futimesat>(2), B<linkat>(2), B<mkdirat>(2), B<mknodat>(2), "
8107 "B<name_to_handle_at>(2), B<readlinkat>(2), B<renameat>(2), B<symlinkat>(2), "
8108 "B<unlinkat>(2), B<utimensat>(2) B<mkfifoat>(3), and B<scandirat>(3)) are "
8109 "supported for two reasons. Here, the explanation is in terms of the "
8110 "B<openat>() call, but the rationale is analogous for the other interfaces."
8112 "B<openat>() やディレクトリファイルディスクリプタを引き数を取る他のシステム"
8113 "コールやライブラリ関数 (B<faccessat>(2), B<fanotify_mark>(2), "
8114 "B<fchmodat>(2), B<fchownat>(2), B<fstatat>(2), B<futimesat>(2), "
8115 "B<linkat>(2), B<mkdirat>(2), B<mknodat>(2), B<name_to_handle_at>(2), "
8116 "B<readlinkat>(2), B<renameat>(2), B<symlinkat>(2), B<unlinkat>(2), "
8117 "B<utimensat>(2) B<mkfifoat>(3), B<scandirat>(3)) は二つの理由から用意されてい"
8118 "る。 ここでは、 B<openat> コールに関して説明するが、この基本原理は他のイン"
8122 #: build/C/man2/open.2:1301
8124 "First, B<openat>() allows an application to avoid race conditions that "
8125 "could occur when using B<open>() to open files in directories other than "
8126 "the current working directory. These race conditions result from the fact "
8127 "that some component of the directory prefix given to B<open>() could be "
8128 "changed in parallel with the call to B<open>(). Such races can be avoided "
8129 "by opening a file descriptor for the target directory, and then specifying "
8130 "that file descriptor as the I<dirfd> argument of B<openat>()."
8132 "最初の理由として、 B<openat>() を使うと、 アプリケーションは、 カレントワーキ"
8133 "ングディレクトリ以外のディレクトリで B<open>() を使ってファイルをオープンする"
8134 "際に起こり得る競合条件を避けることができる。 これらの競合条件は、 B<open>() "
8135 "に渡されたディレクトリプレフィックスの構成要素が B<open>() の呼び出しと並行し"
8136 "て変化する可能性があるという点に由来している。 このような競合条件は、 対象の"
8137 "ディレクトリに対するファイルディスクリプタをオープンし、 それから "
8138 "B<openat>() の I<dirfd> 引き数としてそのファイルディスクリプタを指定すること"
8142 #: build/C/man2/open.2:1312
8144 "Second, B<openat>() allows the implementation of a per-thread \"current "
8145 "working directory\", via file descriptor(s) maintained by the application. "
8146 "(This functionality can also be obtained by tricks based on the use of I</"
8147 "proc/self/fd/>dirfd, but less efficiently.)"
8149 "二つ目として、 B<openat>() を使うと、アプリケーションが管理するファイルディス"
8150 "クリプタにより、 スレッド単位の「カレントワーキングディレクトリ」を実装するこ"
8151 "とができる (この機能は、 I</proc/self/fd/dirfd> を使った方法でも実現すること"
8155 #: build/C/man2/open.2:1312
8161 #: build/C/man2/open.2:1329
8163 "The B<O_DIRECT> flag may impose alignment restrictions on the length and "
8164 "address of user-space buffers and the file offset of I/Os. In Linux "
8165 "alignment restrictions vary by filesystem and kernel version and might be "
8166 "absent entirely. However there is currently no filesystem-independent "
8167 "interface for an application to discover these restrictions for a given file "
8168 "or filesystem. Some filesystems provide their own interfaces for doing so, "
8169 "for example the B<XFS_IOC_DIOINFO> operation in B<xfsctl>(3)."
8171 "B<O_DIRECT> フラグを使用する場合、ユーザ空間バッファの長さやアドレス、 I/O の"
8172 "ファイルオフセットに関してアラインメントの制限が課されることがある。 Linux で"
8173 "は、アラインメントの制限はファイルシステムやカーネルのバージョンに よって異な"
8174 "り、全く制限が存在しない場合もある。 しかしながら、現在のところ、指定された"
8175 "ファイルやファイルシステムに対して こうした制限があるかを見つけるための、アプ"
8176 "リケーション向けのインタフェースで ファイルシステム非依存のものは存在しな"
8177 "い。 いくつかのファイルシステムでは、制限を確認するための独自のインタフェース"
8178 "が 提供されている。例えば、 B<xfsctl>(3) の B<XFS_IOC_DIOINFO> 命令である。"
8181 #: build/C/man2/open.2:1339
8184 #| "Under Linux 2.4, transfer sizes, and the alignment of the user buffer and "
8185 #| "the file offset must all be multiples of the logical block size of the "
8186 #| "filesystem. Under Linux 2.6, alignment to 512-byte boundaries suffices."
8188 "Under Linux 2.4, transfer sizes, and the alignment of the user buffer and "
8189 "the file offset must all be multiples of the logical block size of the "
8190 "filesystem. Since Linux 2.6.0, alignment to the logical block size of the "
8191 "underlying storage (typically 512 bytes) suffices. The logical block size "
8192 "can be determined using the B<ioctl>(2) B<BLKSSZGET> operation or from the "
8193 "shell using the command:"
8195 "Linux 2.4 では、転送サイズ、 ユーザーバッファのアラインメント、ファイルオフ"
8196 "セットは、 ファイルシステムの論理ブロックサイズの倍数でなければならない。 "
8197 "Linux 2.6 では、512 バイトごとの境界に配置されていれば充分である。"
8200 #: build/C/man2/open.2:1341
8202 msgid " blockdev --getss\n"
8206 #: build/C/man2/open.2:1375
8208 "B<O_DIRECT> I/Os should never be run concurrently with the B<fork>(2) "
8209 "system call, if the memory buffer is a private mapping (i.e., any mapping "
8210 "created with the B<mmap>(2) B<MAP_PRIVATE> flag; this includes memory "
8211 "allocated on the heap and statically allocated buffers). Any such I/Os, "
8212 "whether submitted via an asynchronous I/O interface or from another thread "
8213 "in the process, should be completed before B<fork>(2) is called. Failure "
8214 "to do so can result in data corruption and undefined behavior in parent and "
8215 "child processes. This restriction does not apply when the memory buffer for "
8216 "the B<O_DIRECT> I/Os was created using B<shmat>(2) or B<mmap>(2) with the "
8217 "B<MAP_SHARED> flag. Nor does this restriction apply when the memory buffer "
8218 "has been advised as B<MADV_DONTFORK> with B<madvise>(2), ensuring that it "
8219 "will not be available to the child after B<fork>(2)."
8221 "メモリバッファがプライベートマッピング (B<mmap>(2) の B<MAP_PRIVATE>\n"
8222 "フラグで作成されたマッピング) の場合には、B<O_DIRECT> I/O は\n"
8223 "B<fork>(2) システムコールと同時に決して実行すべきではない \n"
8224 "(プライベートマッピングには、ヒープ領域に割り当てられたメモリや静的に\n"
8225 "割り当てたバッファも含まれる)。非同期 I/O インターフェース (AIO) 経由\n"
8226 "やプロセス内の他のスレッドから発行された、このような I/O は、\n"
8227 "B<fork>(2) が呼び出される前に完了されるべきである。\n"
8228 "そうしなかった場合、データ破壊や、親プロセスや子プロセスでの予期しない\n"
8230 "B<O_DIRECT> I/O 用のメモリバッファが B<shmat>(2) やB<MAP_SHARED> フラグ\n"
8231 "付きの B<mmap>(2) で作成された場合には、この制限はあてはまらない。\n"
8232 "B<madvise>(2) でメモリバッファにアドバイス B<MADV_DONTFORK> が設定され\n"
8233 "ている場合にも、この制限はあてはまらない(B<MADV_DONTFORK> はそのメモリ\n"
8234 "バッファが B<fork>(2) 後に子プロセスからは利用できないことを保証するも\n"
8238 #: build/C/man2/open.2:1385
8240 "The B<O_DIRECT> flag was introduced in SGI IRIX, where it has alignment "
8241 "restrictions similar to those of Linux 2.4. IRIX has also a B<fcntl>(2) "
8242 "call to query appropriate alignments, and sizes. FreeBSD 4.x introduced a "
8243 "flag of the same name, but without alignment restrictions."
8245 "B<O_DIRECT> フラグは SGI IRIX で導入された。SGI IRIX にも Linux 2.4 と同様の "
8246 "(ユーザーバッファの) アラインメントの制限がある。 また、IRIX には適切な配置と"
8247 "サイズを取得するための B<fcntl>(2) コールがある。 FreeBSD 4.x も同じ名前のフ"
8248 "ラグを導入したが、アラインメントの制限はない。"
8251 #: build/C/man2/open.2:1394
8253 "B<O_DIRECT> support was added under Linux in kernel version 2.4.10. Older "
8254 "Linux kernels simply ignore this flag. Some filesystems may not implement "
8255 "the flag and B<open>() will fail with B<EINVAL> if it is used."
8257 "B<O_DIRECT> が Linux でサポートされたのは、カーネルバージョン 2.4.10 であ"
8258 "る。 古い Linux カーネルは、このフラグを単に無視する。 B<O_DIRECT> フラグをサ"
8259 "ポートしていないファイルシステムもあり、その場合は、 B<O_DIRECT> を使用する"
8260 "と B<open>() は B<EINVAL> で失敗する。"
8263 #: build/C/man2/open.2:1405
8265 "Applications should avoid mixing B<O_DIRECT> and normal I/O to the same "
8266 "file, and especially to overlapping byte regions in the same file. Even "
8267 "when the filesystem correctly handles the coherency issues in this "
8268 "situation, overall I/O throughput is likely to be slower than using either "
8269 "mode alone. Likewise, applications should avoid mixing B<mmap>(2) of files "
8270 "with direct I/O to the same files."
8272 "アプリケーションは、同じファイル、 特に同じファイルの重複するバイト領域に対し"
8273 "て、 B<O_DIRECT> と通常の I/O を混ぜて使うのは避けるべきである。 ファイルシス"
8274 "テムがこのような状況において一貫性の問題を正しく 扱うことができる場合であって"
8275 "も、全体の I/O スループットは どちらか一方を使用するときと比べて低速になるで"
8276 "あろう。 同様に、アプリケーションは、同じファイルに対して B<mmap>(2) と直接 "
8277 "I/O (B<O_DIRECT>) を混ぜて使うのも避けるべきである。"
8280 #: build/C/man2/open.2:1427
8282 "The behaviour of B<O_DIRECT> with NFS will differ from local filesystems. "
8283 "Older kernels, or kernels configured in certain ways, may not support this "
8284 "combination. The NFS protocol does not support passing the flag to the "
8285 "server, so B<O_DIRECT> I/O will bypass the page cache only on the client; "
8286 "the server may still cache the I/O. The client asks the server to make the "
8287 "I/O synchronous to preserve the synchronous semantics of B<O_DIRECT>. Some "
8288 "servers will perform poorly under these circumstances, especially if the I/O "
8289 "size is small. Some servers may also be configured to lie to clients about "
8290 "the I/O having reached stable storage; this will avoid the performance "
8291 "penalty at some risk to data integrity in the event of server power "
8292 "failure. The Linux NFS client places no alignment restrictions on "
8295 "NFS で B<O_DIRECT> を使った場合の動作はローカルのファイルシステムの場合と違"
8296 "う。 古いカーネルや、ある種の設定でコンパイルされたカーネルは、 B<O_DIRECT> "
8297 "と NFS の組み合わせをサポートしていないかもしれない。 NFS プロトコル自体は"
8298 "サーバにフラグを渡す機能は持っていないので、 B<O_DIRECT> I/O はクライアント上"
8299 "のページキャッシュをバイパスするだけになり、 サーバは I/O をキャッシュしてい"
8300 "るかもしれない。 クライアントは、 B<O_DIRECT> の同期機構を保持するため、サー"
8301 "バに対して I/O を同期して行うように依頼する。 サーバによっては、こうした状況"
8302 "下、特に I/O サイズが小さい場合に 性能が大きく劣化する。 また、サーバによって"
8303 "は、I/O が安定したストレージにまで行われたと、 クライアントに対して嘘をつくも"
8304 "のもある。 これは、サーバの電源故障が起こった際にデータの完全性が保たれない "
8305 "危険は少しあるが、性能面での不利な条件を回避するために行われている。 Linux "
8306 "の NFS クライアントでは B<O_DIRECT> I/O でのアラインメントの制限はない。"
8309 #: build/C/man2/open.2:1434
8311 "In summary, B<O_DIRECT> is a potentially powerful tool that should be used "
8312 "with caution. It is recommended that applications treat use of B<O_DIRECT> "
8313 "as a performance option which is disabled by default."
8315 "まとめると、 B<O_DIRECT> は、注意して使うべきであるが、強力なツールとなる可能"
8316 "性を持っている。 アプリケーションは B<O_DIRECT> をデフォルトでは無効になって"
8317 "いる性能向上のためのオプションと 考えておくのがよいであろう。"
8320 #: build/C/man2/open.2:1439
8322 "\"The thing that has always disturbed me about O_DIRECT is that the whole "
8323 "interface is just stupid, and was probably designed by a deranged monkey on "
8324 "some serious mind-controlling substances.\"\\(emLinus"
8326 "「O_DIRECT でいつも困るのは、インタフェース全部が本当にお馬鹿な点だ。 たぶん"
8327 "危ないマインドコントロール剤で 頭がおかしくなったサルが設計したんじゃないか"
8330 #. FIXME . Check bugzilla report on open(O_ASYNC)
8331 #. See http://bugzilla.kernel.org/show_bug.cgi?id=5993
8333 #: build/C/man2/open.2:1451
8335 "Currently, it is not possible to enable signal-driven I/O by specifying "
8336 "B<O_ASYNC> when calling B<open>(); use B<fcntl>(2) to enable this flag."
8338 "現在のところ、 B<open>() の呼び出し時に B<O_ASYNC> を指定してシグナル駆動 I/"
8339 "O を有効にすることはできない。 このフラグを有効にするには B<fcntl>(2) を使用"
8343 #: build/C/man2/open.2:1459
8345 "One must check for two different error codes, B<EISDIR> and B<ENOENT>, when "
8346 "trying to determine whether the kernel supports B<O_TMPFILE> functionality."
8348 "カーネルが B<O_TMPFILE> 機能をサポートしているかを判定する際に、 B<EISDIR> "
8349 "と B<ENOENT> の 2 つのエラーコードをチェックしなければならない。"
8352 #: build/C/man2/open.2:1481
8354 "B<chmod>(2), B<chown>(2), B<close>(2), B<dup>(2), B<fcntl>(2), B<link>(2), "
8355 "B<lseek>(2), B<mknod>(2), B<mmap>(2), B<mount>(2), B<open_by_handle_at>(2), "
8356 "B<read>(2), B<socket>(2), B<stat>(2), B<umask>(2), B<unlink>(2), "
8357 "B<write>(2), B<fopen>(3), B<fifo>(7), B<path_resolution>(7), B<symlink>(7)"
8358 msgstr "B<chmod>(2), B<chown>(2), B<close>(2), B<dup>(2), B<fcntl>(2), B<link>(2), B<lseek>(2), B<mknod>(2), B<mmap>(2), B<mount>(2), B<open_by_handle_at>(2), B<read>(2), B<socket>(2), B<stat>(2), B<umask>(2), B<unlink>(2), B<write>(2), B<fopen>(3), B<fifo>(7), B<path_resolution>(7), B<symlink>(7)"
8361 #: build/C/man2/open_by_handle_at.2:25
8363 msgid "OPEN_BY_HANDLE_AT"
8364 msgstr "OPEN_BY_HANDLE_AT"
8367 #: build/C/man2/open_by_handle_at.2:25 build/C/man2/rename.2:33
8373 #: build/C/man2/open_by_handle_at.2:29
8375 "name_to_handle_at, open_by_handle_at - obtain handle for a pathname and open "
8380 #: build/C/man2/open_by_handle_at.2:35
8383 "B<#define _GNU_SOURCE>\n"
8384 "B<#include E<lt>sys/types.hE<gt>>\n"
8385 "B<#include E<lt>sys/stat.hE<gt>>\n"
8386 "B<#include E<lt>fcntl.hE<gt>>\n"
8388 "B<#define _GNU_SOURCE>\n"
8389 "B<#include E<lt>sys/types.hE<gt>>\n"
8390 "B<#include E<lt>sys/stat.hE<gt>>\n"
8391 "B<#include E<lt>fcntl.hE<gt>>\n"
8394 #: build/C/man2/open_by_handle_at.2:39
8397 "B<int name_to_handle_at(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
8398 "B< struct file_handle *>I<handle>B<,>\n"
8399 "B< int *>I<mount_id>B<, int >I<flags>B<);>\n"
8401 "B<int name_to_handle_at(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
8402 "B< struct file_handle *>I<handle>B<,>\n"
8403 "B< int *>I<mount_id>B<, int >I<flags>B<);>\n"
8406 #: build/C/man2/open_by_handle_at.2:42
8409 "B<int open_by_handle_at(int >I<mount_fd>B<, struct file_handle *>I<handle>B<,>\n"
8410 "B< int >I<flags>B<);>\n"
8412 "B<int open_by_handle_at(int >I<mount_fd>B<, struct file_handle *>I<handle>B<,>\n"
8413 "B< int >I<flags>B<);>\n"
8416 #: build/C/man2/open_by_handle_at.2:59
8418 "The B<name_to_handle_at>() and B<open_by_handle_at>() system calls split "
8419 "the functionality of B<openat>(2) into two parts: B<name_to_handle_at>() "
8420 "returns an opaque handle that corresponds to a specified file; "
8421 "B<open_by_handle_at>() opens the file corresponding to a handle returned by "
8422 "a previous call to B<name_to_handle_at>() and returns an open file "
8427 #: build/C/man2/open_by_handle_at.2:59
8429 msgid "name_to_handle_at()"
8433 #: build/C/man2/open_by_handle_at.2:71
8435 "The B<name_to_handle_at>() system call returns a file handle and a mount ID "
8436 "corresponding to the file specified by the I<dirfd> and I<pathname> "
8437 "arguments. The file handle is returned via the argument I<handle>, which is "
8438 "a pointer to a structure of the following form:"
8442 #: build/C/man2/open_by_handle_at.2:80
8445 "struct file_handle {\n"
8446 " unsigned int handle_bytes; /* Size of f_handle [in, out] */\n"
8447 " int handle_type; /* Handle type [out] */\n"
8448 " unsigned char f_handle[0]; /* File identifier (sized by\n"
8449 " caller) [out] */\n"
8454 #: build/C/man2/open_by_handle_at.2:99
8456 "It is the caller's responsibility to allocate the structure with a size "
8457 "large enough to hold the handle returned in I<f_handle>. Before the call, "
8458 "the I<handle_bytes> field should be initialized to contain the allocated "
8459 "size for I<f_handle>. (The constant B<MAX_HANDLE_SZ>, defined in "
8460 "I<E<lt>fcntl.hE<gt>>, specifies the maximum possible size for a file "
8461 "handle.) Upon successful return, the I<handle_bytes> field is updated to "
8462 "contain the number of bytes actually written to I<f_handle>."
8466 #: build/C/man2/open_by_handle_at.2:112
8468 "The caller can discover the required size for the I<file_handle> structure "
8469 "by making a call in which I<handle-E<gt>handle_bytes> is zero; in this case, "
8470 "the call fails with the error B<EOVERFLOW> and I<handle-E<gt>handle_bytes> "
8471 "is set to indicate the required size; the caller can then use this "
8472 "information to allocate a structure of the correct size (see EXAMPLE below)."
8476 #: build/C/man2/open_by_handle_at.2:123
8478 "Other than the use of the I<handle_bytes> field, the caller should treat the "
8479 "I<file_handle> structure as an opaque data type: the I<handle_type> and "
8480 "I<f_handle> fields are needed only by a subsequent call to "
8481 "B<open_by_handle_at>()."
8485 #: build/C/man2/open_by_handle_at.2:131
8487 "The I<flags> argument is a bit mask constructed by ORing together zero or "
8488 "more of B<AT_EMPTY_PATH> and B<AT_SYMLINK_FOLLOW>, described below."
8492 #: build/C/man2/open_by_handle_at.2:138
8494 "Together, the I<pathname> and I<dirfd> arguments identify the file for which "
8495 "a handle is to be obtained. There are four distinct cases:"
8499 #: build/C/man2/open_by_handle_at.2:146
8501 "If I<pathname> is a nonempty string containing an absolute pathname, then a "
8502 "handle is returned for the file referred to by that pathname. In this case, "
8503 "I<dirfd> is ignored."
8507 #: build/C/man2/open_by_handle_at.2:157
8509 "If I<pathname> is a nonempty string containing a relative pathname and "
8510 "I<dirfd> has the special value B<AT_FDCWD>, then I<pathname> is interpreted "
8511 "relative to the current working directory of the caller, and a handle is "
8512 "returned for the file to which it refers."
8514 "I<pathname> が相対パスが入った空でない文字列で、 I<dirfd> が特別な値 "
8515 "B<AT_FDCWD> の場合、 I<pathname> は呼び出し元のカレントワーキングディレクトリ"
8516 "に対する相対パスと解釈され、 そのファイルを参照するハンドルが返される。"
8519 #: build/C/man2/open_by_handle_at.2:170
8521 "If I<pathname> is a nonempty string containing a relative pathname and "
8522 "I<dirfd> is a file descriptor referring to a directory, then I<pathname> is "
8523 "interpreted relative to the directory referred to by I<dirfd>, and a handle "
8524 "is returned for the file to which it refers. (See B<openat>(3) for an "
8525 "explanation of why \"directory file descriptors\" are useful.)"
8529 #: build/C/man2/open_by_handle_at.2:184
8531 "If I<pathname> is an empty string and I<flags> specifies the value "
8532 "B<AT_EMPTY_PATH>, then I<dirfd> can be an open file descriptor referring to "
8533 "any type of file, or B<AT_FDCWD>, meaning the current working directory, and "
8534 "a handle is returned for the file to which it refers."
8538 #: build/C/man2/open_by_handle_at.2:196
8540 "The I<mount_id> argument returns an identifier for the filesystem mount that "
8541 "corresponds to I<pathname>. This corresponds to the first field in one of "
8542 "the records in I</proc/self/mountinfo>. Opening the pathname in the fifth "
8543 "field of that record yields a file descriptor for the mount point; that file "
8544 "descriptor can be used in a subsequent call to B<open_by_handle_at>()."
8548 #: build/C/man2/open_by_handle_at.2:209
8550 "By default, B<name_to_handle_at>() does not dereference I<pathname> if it "
8551 "is a symbolic link, and thus returns a handle for the link itself. If "
8552 "B<AT_SYMLINK_FOLLOW> is specified in I<flags>, I<pathname> is dereferenced "
8553 "if it is a symbolic link (so that the call returns a handle for the file "
8554 "referred to by the link)."
8558 #: build/C/man2/open_by_handle_at.2:209
8560 msgid "open_by_handle_at()"
8564 #: build/C/man2/open_by_handle_at.2:216
8566 "The B<open_by_handle_at>() system call opens the file referred to by "
8567 "I<handle>, a file handle returned by a previous call to "
8568 "B<name_to_handle_at>()."
8572 #: build/C/man2/open_by_handle_at.2:226
8574 "The I<mount_fd> argument is a file descriptor for any object (file, "
8575 "directory, etc.) in the mounted filesystem with respect to which I<handle> "
8576 "should be interpreted. The special value B<AT_FDCWD> can be specified, "
8577 "meaning the current working directory of the caller."
8581 #: build/C/man2/open_by_handle_at.2:239
8583 "The I<flags> argument is as for B<open>(2). If I<handle> refers to a "
8584 "symbolic link, the caller must specify the B<O_PATH> flag, and the symbolic "
8585 "link is not dereferenced; the B<O_NOFOLLOW> flag, if specified, is ignored."
8589 #: build/C/man2/open_by_handle_at.2:245
8591 "The caller must have the B<CAP_DAC_READ_SEARCH> capability to invoke "
8592 "B<open_by_handle_at>()."
8596 #: build/C/man2/open_by_handle_at.2:252
8598 "On success, B<name_to_handle_at>() returns 0, and B<open_by_handle_at>() "
8599 "returns a nonnegative file descriptor."
8603 #: build/C/man2/open_by_handle_at.2:256
8605 "In the event of an error, both system calls return -1 and set I<errno> to "
8606 "indicate the cause of the error."
8610 #: build/C/man2/open_by_handle_at.2:263
8612 "B<name_to_handle_at>() and B<open_by_handle_at>() can fail for the same "
8613 "errors as B<openat>(2). In addition, they can fail with the errors noted "
8618 #: build/C/man2/open_by_handle_at.2:266
8619 msgid "B<name_to_handle_at>() can fail with the following errors:"
8623 #: build/C/man2/open_by_handle_at.2:273
8625 "I<pathname>, I<mount_id>, or I<handle> points outside your accessible "
8628 "I<pathname>, I<mount_id>, I<handle> のどれかがアクセス可能なアドレス空間の外"
8632 #: build/C/man2/open_by_handle_at.2:277
8633 msgid "I<flags> includes an invalid bit value."
8637 #: build/C/man2/open_by_handle_at.2:282
8638 msgid "I<handle-E<gt>handle_bytes> is greater than B<MAX_HANDLE_SZ>."
8642 #: build/C/man2/open_by_handle_at.2:289
8644 "I<pathname> is an empty string, but B<AT_EMPTY_PATH> was not specified in "
8647 "I<pathname> が空文字列だが、 I<flags> に B<AT_EMPTY_PATH> がされていなかっ"
8651 #: build/C/man2/open_by_handle_at.2:301
8653 "The file descriptor supplied in I<dirfd> does not refer to a directory, and "
8654 "it is not the case that both I<flags> includes B<AT_EMPTY_PATH> and "
8655 "I<pathname> is an empty string."
8659 #: build/C/man2/open_by_handle_at.2:304
8661 "The filesystem does not support decoding of a pathname to a file handle."
8665 #: build/C/man2/open_by_handle_at.2:314
8667 "The I<handle-E<gt>handle_bytes> value passed into the call was too small. "
8668 "When this error occurs, I<handle-E<gt>handle_bytes> is updated to indicate "
8669 "the required size for the handle."
8673 #: build/C/man2/open_by_handle_at.2:317
8674 msgid "B<open_by_handle_at>() can fail with the following errors:"
8678 #: build/C/man2/open_by_handle_at.2:321
8679 msgid "I<mount_fd> is not an open file descriptor."
8680 msgstr "I<mount_fd> がオープンされたファイルディスクリプタでない。"
8683 #: build/C/man2/open_by_handle_at.2:325
8684 msgid "I<handle> points outside your accessible address space."
8685 msgstr "I<handle> がアクセス可能なアドレス空間の外を指している。"
8688 #: build/C/man2/open_by_handle_at.2:331
8690 "I<handle-E<gt>handle_bytes> is greater than B<MAX_HANDLE_SZ> or is equal to "
8695 #: build/C/man2/open_by_handle_at.2:338
8697 "I<handle> refers to a symbolic link, but B<O_PATH> was not specified in "
8700 "I<handle> がシンボリックリンクを参照しているが、 I<flags> に B<O_PATH> がされ"
8704 #: build/C/man2/open_by_handle_at.2:343
8705 msgid "The caller does not have the B<CAP_DAC_READ_SEARCH> capability."
8706 msgstr "呼び出し元が B<CAP_DAC_READ_SEARCH> ケーパビリティを持っていない。"
8709 #: build/C/man2/open_by_handle_at.2:343
8715 #: build/C/man2/open_by_handle_at.2:349
8717 "The specified I<handle> is not valid. This error will occur if, for "
8718 "example, the file has been deleted."
8722 #: build/C/man2/open_by_handle_at.2:352
8724 "These system calls first appeared in Linux 2.6.39. Library support is "
8725 "provided in glibc since version 2.14."
8727 "これらのシステムコールは Linux 2.6.39 で初めて登場した。ライブラリによるサ"
8728 "ポートはバージョン 2.14 以降の glibc で提供されている。"
8731 #: build/C/man2/open_by_handle_at.2:354
8732 msgid "These system calls are nonstandard Linux extensions."
8736 #: build/C/man2/open_by_handle_at.2:359
8738 "FreeBSD has a broadly similar pair of system calls in the form of "
8739 "B<getfh>() and B<openfh>()."
8743 #: build/C/man2/open_by_handle_at.2:364
8745 "A file handle can be generated in one process using B<name_to_handle_at>() "
8746 "and later used in a different process that calls B<open_by_handle_at>()."
8750 #: build/C/man2/open_by_handle_at.2:370
8752 "Some filesystem don't support the translation of pathnames to file handles, "
8753 "for example, I</proc>, I</sys>, and various network filesystems."
8757 #: build/C/man2/open_by_handle_at.2:377
8759 "A file handle may become invalid (\"stale\") if a file is deleted, or for "
8760 "other filesystem-specific reasons. Invalid handles are notified by an "
8761 "B<ESTALE> error from B<open_by_handle_at>()."
8764 #. https://lwn.net/Articles/375888/
8765 #. "Open by handle" - Jonathan Corbet, 2010-02-23
8767 #: build/C/man2/open_by_handle_at.2:387
8769 "These system calls are designed for use by user-space file servers. For "
8770 "example, a user-space NFS server might generate a file handle and pass it to "
8771 "an NFS client. Later, when the client wants to open the file, it could pass "
8772 "the handle back to the server. This sort of functionality allows a user-"
8773 "space file server to operate in a stateless fashion with respect to the "
8777 #. commit bcda76524cd1fa32af748536f27f674a13e56700
8779 #: build/C/man2/open_by_handle_at.2:409
8781 "If I<pathname> refers to a symbolic link and I<flags> does not specify "
8782 "B<AT_SYMLINK_FOLLOW>, then B<name_to_handle_at>() returns a handle for the "
8783 "link (rather than the file to which it refers). The process receiving the "
8784 "handle can later perform operations on the symbolic link by converting the "
8785 "handle to a file descriptor using B<open_by_handle_at>() with the B<O_PATH> "
8786 "flag, and then passing the file descriptor as the I<dirfd> argument in "
8787 "system calls such as B<readlinkat>(2) and B<fchownat>(2)."
8791 #: build/C/man2/open_by_handle_at.2:409
8793 msgid "Obtaining a persistent filesystem ID"
8797 #: build/C/man2/open_by_handle_at.2:423
8799 "The mount IDs in I</proc/self/mountinfo> can be reused as filesystems are "
8800 "unmounted and mounted. Therefore, the mount ID returned by "
8801 "B<name_to_handle_at>() (in I<*mount_id>) should not be treated as a "
8802 "persistent identifier for the corresponding mounted filesystem. However, an "
8803 "application can use the information in the I<mountinfo> record that "
8804 "corresponds to the mount ID to derive a persistent identifier."
8807 #. e.g., http://stackoverflow.com/questions/6748429/using-libblkid-to-find-uuid-of-a-partition
8809 #: build/C/man2/open_by_handle_at.2:439
8811 "For example, one can use the device name in the fifth field of the "
8812 "I<mountinfo> record to search for the corresponding device UUID via the "
8813 "symbolic links in I</dev/disks/by-uuid>. (A more comfortable way of "
8814 "obtaining the UUID is to use the B<libblkid>(3) library.) That process can "
8815 "then be reversed, using the UUID to look up the device name, and then "
8816 "obtaining the corresponding mount point, in order to produce the I<mount_fd> "
8817 "argument used by B<open_by_handle_at>()."
8821 #: build/C/man2/open_by_handle_at.2:451
8823 "The two programs below demonstrate the use of B<name_to_handle_at>() and "
8824 "B<open_by_handle_at>(). The first program (I<t_name_to_handle_at.c>) uses "
8825 "B<name_to_handle_at>() to obtain the file handle and mount ID for the file "
8826 "specified in its command-line argument; the handle and mount ID are written "
8827 "to standard output."
8831 #: build/C/man2/open_by_handle_at.2:471
8833 "The second program (I<t_open_by_handle_at.c>) reads a mount ID and file "
8834 "handle from standard input. The program then employs "
8835 "B<open_by_handle_at>() to open the file using that handle. If an optional "
8836 "command-line argument is supplied, then the I<mount_fd> argument for "
8837 "B<open_by_handle_at>() is obtained by opening the directory named in that "
8838 "argument. Otherwise, I<mount_fd> is obtained by scanning I</proc/self/"
8839 "mountinfo> to find a record whose mount ID matches the mount ID read from "
8840 "standard input, and the mount directory specified in that record is opened. "
8841 "(These programs do not deal with the fact that mount IDs are not persistent.)"
8845 #: build/C/man2/open_by_handle_at.2:473
8846 msgid "The following shell session demonstrates the use of these two programs:"
8847 msgstr "以下のシェルセッションは、これら 2 つのプログラムの使用例である。"
8850 #: build/C/man2/open_by_handle_at.2:483
8853 "$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
8854 "$ B<./t_name_to_handle_at cecilia.txt E<gt> fh>\n"
8855 "$ B<./t_open_by_handle_at E<lt> fh>\n"
8856 "open_by_handle_at: Operation not permitted\n"
8857 "$ B<sudo ./t_open_by_handle_at E<lt> fh> # Need CAP_SYS_ADMIN\n"
8859 "$ B<rm cecilia.txt>\n"
8861 "$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
8862 "$ B<./t_name_to_handle_at cecilia.txt E<gt> fh>\n"
8863 "$ B<./t_open_by_handle_at E<lt> fh>\n"
8864 "open_by_handle_at: Operation not permitted\n"
8865 "$ B<sudo ./t_open_by_handle_at E<lt> fh> # Need CAP_SYS_ADMIN\n"
8867 "$ B<rm cecilia.txt>\n"
8869 #. Christoph Hellwig: That's why the file handles contain a generation
8870 #. counter that gets incremented in this case.
8872 #: build/C/man2/open_by_handle_at.2:494
8874 "Now we delete and (quickly) re-create the file so that it has the same "
8875 "content and (by chance) the same inode. Nevertheless, "
8876 "B<open_by_handle_at>() recognizes that the original file referred to by the "
8877 "file handle no longer exists."
8881 #: build/C/man2/open_by_handle_at.2:505
8884 "$ B<stat --printf=\"%i\\en\" cecilia.txt> # Display inode number\n"
8886 "$ B<rm cecilia.txt>\n"
8887 "$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
8888 "$ B<stat --printf=\"%i\\en\" cecilia.txt> # Check inode number\n"
8890 "$ B<sudo ./t_open_by_handle_at E<lt> fh>\n"
8891 "open_by_handle_at: Stale NFS file handle\n"
8893 "$ B<stat --printf=\"%i\\en\" cecilia.txt> # Display inode number\n"
8895 "$ B<rm cecilia.txt>\n"
8896 "$ B<echo 'Can you please think about it?' E<gt> cecilia.txt>\n"
8897 "$ B<stat --printf=\"%i\\en\" cecilia.txt> # Check inode number\n"
8899 "$ B<sudo ./t_open_by_handle_at E<lt> fh>\n"
8900 "open_by_handle_at: Stale NFS file handle\n"
8903 #: build/C/man2/open_by_handle_at.2:507
8905 msgid "Program source: t_name_to_handle_at.c"
8909 #: build/C/man2/open_by_handle_at.2:519
8912 "#define _GNU_SOURCE\n"
8913 "#include E<lt>sys/types.hE<gt>\n"
8914 "#include E<lt>sys/stat.hE<gt>\n"
8915 "#include E<lt>fcntl.hE<gt>\n"
8916 "#include E<lt>stdio.hE<gt>\n"
8917 "#include E<lt>stdlib.hE<gt>\n"
8918 "#include E<lt>unistd.hE<gt>\n"
8919 "#include E<lt>errno.hE<gt>\n"
8920 "#include E<lt>string.hE<gt>\n"
8922 "#define _GNU_SOURCE\n"
8923 "#include E<lt>sys/types.hE<gt>\n"
8924 "#include E<lt>sys/stat.hE<gt>\n"
8925 "#include E<lt>fcntl.hE<gt>\n"
8926 "#include E<lt>stdio.hE<gt>\n"
8927 "#include E<lt>stdlib.hE<gt>\n"
8928 "#include E<lt>unistd.hE<gt>\n"
8929 "#include E<lt>errno.hE<gt>\n"
8930 "#include E<lt>string.hE<gt>\n"
8933 #: build/C/man2/open_by_handle_at.2:522 build/C/man2/open_by_handle_at.2:595
8936 "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
8939 "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n"
8943 #: build/C/man2/open_by_handle_at.2:529
8947 "main(int argc, char *argv[])\n"
8949 " struct file_handle *fhp;\n"
8950 " int mount_id, fhsize, flags, dirfd, j;\n"
8951 " char *pathname;\n"
8954 "main(int argc, char *argv[])\n"
8956 " struct file_handle *fhp;\n"
8957 " int mount_id, fhsize, flags, dirfd, j;\n"
8958 " char *pathname;\n"
8961 #: build/C/man2/open_by_handle_at.2:534
8964 " if (argc != 2) {\n"
8965 " fprintf(stderr, \"Usage: %s pathname\\en\", argv[0]);\n"
8966 " exit(EXIT_FAILURE);\n"
8969 " if (argc != 2) {\n"
8970 " fprintf(stderr, \"Usage: %s pathname\\en\", argv[0]);\n"
8971 " exit(EXIT_FAILURE);\n"
8975 #: build/C/man2/open_by_handle_at.2:536
8977 msgid " pathname = argv[1];\n"
8978 msgstr " pathname = argv[1];\n"
8981 #: build/C/man2/open_by_handle_at.2:538
8983 msgid " /* Allocate file_handle structure */\n"
8984 msgstr " /* Allocate file_handle structure */\n"
8987 #: build/C/man2/open_by_handle_at.2:543
8990 " fhsize = sizeof(*fhp);\n"
8991 " fhp = malloc(fhsize);\n"
8992 " if (fhp == NULL)\n"
8993 " errExit(\"malloc\");\n"
8995 " fhsize = sizeof(*fhp);\n"
8996 " fhp = malloc(fhsize);\n"
8997 " if (fhp == NULL)\n"
8998 " errExit(\"malloc\");\n"
9001 #: build/C/man2/open_by_handle_at.2:546
9004 " /* Make an initial call to name_to_handle_at() to discover\n"
9005 " the size required for file handle */\n"
9007 " /* Make an initial call to name_to_handle_at() to discover\n"
9008 " the size required for file handle */\n"
9011 #: build/C/man2/open_by_handle_at.2:555
9014 " dirfd = AT_FDCWD; /* For name_to_handle_at() calls */\n"
9015 " flags = 0; /* For name_to_handle_at() calls */\n"
9016 " fhp-E<gt>handle_bytes = 0;\n"
9017 " if (name_to_handle_at(dirfd, pathname, fhp,\n"
9018 " &mount_id, flags) != -1 || errno != EOVERFLOW) {\n"
9019 " fprintf(stderr, \"Unexpected result from name_to_handle_at()\\en\");\n"
9020 " exit(EXIT_FAILURE);\n"
9023 " dirfd = AT_FDCWD; /* For name_to_handle_at() calls */\n"
9024 " flags = 0; /* For name_to_handle_at() calls */\n"
9025 " fhp-E<gt>handle_bytes = 0;\n"
9026 " if (name_to_handle_at(dirfd, pathname, fhp,\n"
9027 " &mount_id, flags) != -1 || errno != EOVERFLOW) {\n"
9028 " fprintf(stderr, \"Unexpected result from name_to_handle_at()\\en\");\n"
9029 " exit(EXIT_FAILURE);\n"
9033 #: build/C/man2/open_by_handle_at.2:557
9035 msgid " /* Reallocate file_handle structure with correct size */\n"
9036 msgstr " /* Reallocate file_handle structure with correct size */\n"
9039 #: build/C/man2/open_by_handle_at.2:562
9042 " fhsize = sizeof(struct file_handle) + fhp-E<gt>handle_bytes;\n"
9043 " fhp = realloc(fhp, fhsize); /* Copies fhp-E<gt>handle_bytes */\n"
9044 " if (fhp == NULL)\n"
9045 " errExit(\"realloc\");\n"
9047 " fhsize = sizeof(struct file_handle) + fhp-E<gt>handle_bytes;\n"
9048 " fhp = realloc(fhp, fhsize); /* Copies fhp-E<gt>handle_bytes */\n"
9049 " if (fhp == NULL)\n"
9050 " errExit(\"realloc\");\n"
9053 #: build/C/man2/open_by_handle_at.2:564
9055 msgid " /* Get file handle from pathname supplied on command line */\n"
9056 msgstr " /* Get file handle from pathname supplied on command line */\n"
9059 #: build/C/man2/open_by_handle_at.2:567
9062 " if (name_to_handle_at(dirfd, pathname, fhp, &mount_id, flags) == -1)\n"
9063 " errExit(\"name_to_handle_at\");\n"
9065 " if (name_to_handle_at(dirfd, pathname, fhp, &mount_id, flags) == -1)\n"
9066 " errExit(\"name_to_handle_at\");\n"
9069 #: build/C/man2/open_by_handle_at.2:570
9072 " /* Write mount ID, file handle size, and file handle to stdout,\n"
9073 " for later reuse by t_open_by_handle_at.c */\n"
9075 " /* Write mount ID, file handle size, and file handle to stdout,\n"
9076 " for later reuse by t_open_by_handle_at.c */\n"
9079 #: build/C/man2/open_by_handle_at.2:576
9082 " printf(\"%d\\en\", mount_id);\n"
9083 " printf(\"%d %d \", fhp-E<gt>handle_bytes, fhp-E<gt>handle_type);\n"
9084 " for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
9085 " printf(\" %02x\", fhp-E<gt>f_handle[j]);\n"
9086 " printf(\"\\en\");\n"
9088 " printf(\"%d\\en\", mount_id);\n"
9089 " printf(\"%d %d \", fhp-E<gt>handle_bytes, fhp-E<gt>handle_type);\n"
9090 " for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
9091 " printf(\" %02x\", fhp-E<gt>f_handle[j]);\n"
9092 " printf(\"\\en\");\n"
9095 #: build/C/man2/open_by_handle_at.2:580
9097 msgid "Program source: t_open_by_handle_at.c"
9101 #: build/C/man2/open_by_handle_at.2:592
9104 "#define _GNU_SOURCE\n"
9105 "#include E<lt>sys/types.hE<gt>\n"
9106 "#include E<lt>sys/stat.hE<gt>\n"
9107 "#include E<lt>fcntl.hE<gt>\n"
9108 "#include E<lt>limits.hE<gt>\n"
9109 "#include E<lt>stdio.hE<gt>\n"
9110 "#include E<lt>stdlib.hE<gt>\n"
9111 "#include E<lt>unistd.hE<gt>\n"
9112 "#include E<lt>string.hE<gt>\n"
9114 "#define _GNU_SOURCE\n"
9115 "#include E<lt>sys/types.hE<gt>\n"
9116 "#include E<lt>sys/stat.hE<gt>\n"
9117 "#include E<lt>fcntl.hE<gt>\n"
9118 "#include E<lt>limits.hE<gt>\n"
9119 "#include E<lt>stdio.hE<gt>\n"
9120 "#include E<lt>stdlib.hE<gt>\n"
9121 "#include E<lt>unistd.hE<gt>\n"
9122 "#include E<lt>string.hE<gt>\n"
9125 #: build/C/man2/open_by_handle_at.2:601
9128 "/* Scan /proc/self/mountinfo to find the line whose mount ID matches\n"
9129 " \\(aqmount_id\\(aq. (An easier way to do this is to install and use the\n"
9130 " \\(aqlibmount\\(aq library provided by the \\(aqutil-linux\\(aq project.)\n"
9131 " Open the corresponding mount path and return the resulting file\n"
9134 "/* Scan /proc/self/mountinfo to find the line whose mount ID matches\n"
9135 " \\(aqmount_id\\(aq. (An easier way to do this is to install and use the\n"
9136 " \\(aqlibmount\\(aq library provided by the \\(aqutil-linux\\(aq project.)\n"
9137 " Open the corresponding mount path and return the resulting file\n"
9141 #: build/C/man2/open_by_handle_at.2:611
9145 "open_mount_path_by_id(int mount_id)\n"
9149 " char mount_path[PATH_MAX];\n"
9150 " int mi_mount_id, found;\n"
9155 "open_mount_path_by_id(int mount_id)\n"
9159 " char mount_path[PATH_MAX];\n"
9160 " int mi_mount_id, found;\n"
9165 #: build/C/man2/open_by_handle_at.2:615
9168 " fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
9169 " if (fp == NULL)\n"
9170 " errExit(\"fopen\");\n"
9172 " fp = fopen(\"/proc/self/mountinfo\", \"r\");\n"
9173 " if (fp == NULL)\n"
9174 " errExit(\"fopen\");\n"
9177 #: build/C/man2/open_by_handle_at.2:622
9182 " while (!found) {\n"
9183 " nread = getline(&linep, &lsize, fp);\n"
9184 " if (nread == -1)\n"
9189 " while (!found) {\n"
9190 " nread = getline(&linep, &lsize, fp);\n"
9191 " if (nread == -1)\n"
9195 #: build/C/man2/open_by_handle_at.2:629
9198 " nread = sscanf(linep, \"%d %*d %*s %*s %s\",\n"
9199 " &mi_mount_id, mount_path);\n"
9200 " if (nread != 2) {\n"
9201 " fprintf(stderr, \"Bad sscanf()\\en\");\n"
9202 " exit(EXIT_FAILURE);\n"
9205 " nread = sscanf(linep, \"%d %*d %*s %*s %s\",\n"
9206 " &mi_mount_id, mount_path);\n"
9207 " if (nread != 2) {\n"
9208 " fprintf(stderr, \"Bad sscanf()\\en\");\n"
9209 " exit(EXIT_FAILURE);\n"
9213 #: build/C/man2/open_by_handle_at.2:634
9216 " if (mi_mount_id == mount_id)\n"
9221 " if (mi_mount_id == mount_id)\n"
9227 #: build/C/man2/open_by_handle_at.2:636
9229 msgid " fclose(fp);\n"
9230 msgstr " fclose(fp);\n"
9233 #: build/C/man2/open_by_handle_at.2:641
9237 " fprintf(stderr, \"Could not find mount point\\en\");\n"
9238 " exit(EXIT_FAILURE);\n"
9242 " fprintf(stderr, \"Could not find mount point\\en\");\n"
9243 " exit(EXIT_FAILURE);\n"
9247 #: build/C/man2/open_by_handle_at.2:644
9250 " return open(mount_path, O_RDONLY);\n"
9253 " return open(mount_path, O_RDONLY);\n"
9257 #: build/C/man2/open_by_handle_at.2:655
9261 "main(int argc, char *argv[])\n"
9263 " struct file_handle *fhp;\n"
9264 " int mount_id, fd, mount_fd, handle_bytes, j;\n"
9266 " char buf[1000];\n"
9267 "#define LINE_SIZE 100\n"
9268 " char line1[LINE_SIZE], line2[LINE_SIZE];\n"
9272 "main(int argc, char *argv[])\n"
9274 " struct file_handle *fhp;\n"
9275 " int mount_id, fd, mount_fd, handle_bytes, j;\n"
9277 " char buf[1000];\n"
9278 "#define LINE_SIZE 100\n"
9279 " char line1[LINE_SIZE], line2[LINE_SIZE];\n"
9283 #: build/C/man2/open_by_handle_at.2:660
9286 " if ((argc E<gt> 1 && strcmp(argv[1], \"--help\") == 0) || argc E<gt> 2) {\n"
9287 " fprintf(stderr, \"Usage: %s [mount-path]\\en\", argv[0]);\n"
9288 " exit(EXIT_FAILURE);\n"
9291 " if ((argc E<gt> 1 && strcmp(argv[1], \"--help\") == 0) || argc E<gt> 2) {\n"
9292 " fprintf(stderr, \"Usage: %s [mount-path]\\en\", argv[0]);\n"
9293 " exit(EXIT_FAILURE);\n"
9297 #: build/C/man2/open_by_handle_at.2:662
9299 msgid " /* Standard input contains mount ID and file handle information:\n"
9300 msgstr " /* Standard input contains mount ID and file handle information:\n"
9303 #: build/C/man2/open_by_handle_at.2:666
9306 " Line 1: E<lt>mount_idE<gt>\n"
9307 " Line 2: E<lt>handle_bytesE<gt> E<lt>handle_typeE<gt> E<lt>bytes of handle in hexE<gt>\n"
9310 " Line 1: E<lt>mount_idE<gt>\n"
9311 " Line 2: E<lt>handle_bytesE<gt> E<lt>handle_typeE<gt> E<lt>bytes of handle in hexE<gt>\n"
9315 #: build/C/man2/open_by_handle_at.2:672
9318 " if ((fgets(line1, sizeof(line1), stdin) == NULL) ||\n"
9319 " (fgets(line2, sizeof(line2), stdin) == NULL)) {\n"
9320 " fprintf(stderr, \"Missing mount_id / file handle\\en\");\n"
9321 " exit(EXIT_FAILURE);\n"
9324 " if ((fgets(line1, sizeof(line1), stdin) == NULL) ||\n"
9325 " (fgets(line2, sizeof(line2), stdin) == NULL)) {\n"
9326 " fprintf(stderr, \"Missing mount_id / file handle\\en\");\n"
9327 " exit(EXIT_FAILURE);\n"
9331 #: build/C/man2/open_by_handle_at.2:674
9333 msgid " mount_id = atoi(line1);\n"
9334 msgstr " mount_id = atoi(line1);\n"
9337 #: build/C/man2/open_by_handle_at.2:676
9339 msgid " handle_bytes = strtoul(line2, &nextp, 0);\n"
9340 msgstr " handle_bytes = strtoul(line2, &nextp, 0);\n"
9343 #: build/C/man2/open_by_handle_at.2:678
9345 msgid " /* Given handle_bytes, we can now allocate file_handle structure */\n"
9346 msgstr " /* Given handle_bytes, we can now allocate file_handle structure */\n"
9349 #: build/C/man2/open_by_handle_at.2:682
9352 " fhp = malloc(sizeof(struct file_handle) + handle_bytes);\n"
9353 " if (fhp == NULL)\n"
9354 " errExit(\"malloc\");\n"
9356 " fhp = malloc(sizeof(struct file_handle) + handle_bytes);\n"
9357 " if (fhp == NULL)\n"
9358 " errExit(\"malloc\");\n"
9361 #: build/C/man2/open_by_handle_at.2:684
9363 msgid " fhp-E<gt>handle_bytes = handle_bytes;\n"
9364 msgstr " fhp-E<gt>handle_bytes = handle_bytes;\n"
9367 #: build/C/man2/open_by_handle_at.2:686
9369 msgid " fhp-E<gt>handle_type = strtoul(nextp, &nextp, 0);\n"
9370 msgstr " fhp-E<gt>handle_type = strtoul(nextp, &nextp, 0);\n"
9373 #: build/C/man2/open_by_handle_at.2:689
9376 " for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
9377 " fhp-E<gt>f_handle[j] = strtoul(nextp, &nextp, 16);\n"
9379 " for (j = 0; j E<lt> fhp-E<gt>handle_bytes; j++)\n"
9380 " fhp-E<gt>f_handle[j] = strtoul(nextp, &nextp, 16);\n"
9383 #: build/C/man2/open_by_handle_at.2:694
9386 " /* Obtain file descriptor for mount point, either by opening\n"
9387 " the pathname specified on the command line, or by scanning\n"
9388 " /proc/self/mounts to find a mount that matches the \\(aqmount_id\\(aq\n"
9389 " that we received from stdin. */\n"
9391 " /* Obtain file descriptor for mount point, either by opening\n"
9392 " the pathname specified on the command line, or by scanning\n"
9393 " /proc/self/mounts to find a mount that matches the \\(aqmount_id\\(aq\n"
9394 " that we received from stdin. */\n"
9397 #: build/C/man2/open_by_handle_at.2:699
9400 " if (argc E<gt> 1)\n"
9401 " mount_fd = open(argv[1], O_RDONLY);\n"
9403 " mount_fd = open_mount_path_by_id(mount_id);\n"
9405 " if (argc E<gt> 1)\n"
9406 " mount_fd = open(argv[1], O_RDONLY);\n"
9408 " mount_fd = open_mount_path_by_id(mount_id);\n"
9411 #: build/C/man2/open_by_handle_at.2:702
9414 " if (mount_fd == -1)\n"
9415 " errExit(\"opening mount fd\");\n"
9417 " if (mount_fd == -1)\n"
9418 " errExit(\"opening mount fd\");\n"
9421 #: build/C/man2/open_by_handle_at.2:704
9423 msgid " /* Open file using handle and mount point */\n"
9424 msgstr " /* Open file using handle and mount point */\n"
9427 #: build/C/man2/open_by_handle_at.2:708
9430 " fd = open_by_handle_at(mount_fd, fhp, O_RDONLY);\n"
9432 " errExit(\"open_by_handle_at\");\n"
9434 " fd = open_by_handle_at(mount_fd, fhp, O_RDONLY);\n"
9436 " errExit(\"open_by_handle_at\");\n"
9439 #: build/C/man2/open_by_handle_at.2:710
9441 msgid " /* Try reading a few bytes from the file */\n"
9442 msgstr " /* Try reading a few bytes from the file */\n"
9445 #: build/C/man2/open_by_handle_at.2:714
9448 " nread = read(fd, buf, sizeof(buf));\n"
9449 " if (nread == -1)\n"
9450 " errExit(\"read\");\n"
9452 " nread = read(fd, buf, sizeof(buf));\n"
9453 " if (nread == -1)\n"
9454 " errExit(\"read\");\n"
9457 #: build/C/man2/open_by_handle_at.2:716
9459 msgid " printf(\"Read %zd bytes\\en\", nread);\n"
9460 msgstr " printf(\"Read %zd bytes\\en\", nread);\n"
9463 #: build/C/man2/open_by_handle_at.2:726
9464 msgid "B<open>(2), B<libblkid>(3), B<blkid>(8), B<findfs>(8), B<mount>(8)"
9465 msgstr "B<open>(2), B<libblkid>(3), B<blkid>(8), B<findfs>(8), B<mount>(8)"
9468 #: build/C/man2/open_by_handle_at.2:736
9470 "The I<libblkid> and I<libmount> documentation in the latest I<util-linux> "
9471 "release at E<.UR https://www.kernel.org/pub/linux/utils/util-linux/> E<.UE>"
9475 #: build/C/man3/perror.3:31
9481 #: build/C/man3/perror.3:31
9487 #: build/C/man3/perror.3:34
9488 msgid "perror - print a system error message"
9489 msgstr "perror - システムエラーメッセージを出力する"
9492 #: build/C/man3/perror.3:38
9493 msgid "B<void perror(const char *>I<s>B<);>"
9494 msgstr "B<void perror(const char *>I<s>B<);>"
9497 #: build/C/man3/perror.3:40
9498 msgid "B<#include E<lt>errno.hE<gt>>"
9499 msgstr "B<#include E<lt>errno.hE<gt>>"
9502 #: build/C/man3/perror.3:42
9503 msgid "B<const char *>I<sys_errlist>B<[];>"
9504 msgstr "B<const char *>I<sys_errlist>B<[];>"
9507 #: build/C/man3/perror.3:44
9508 msgid "B<int >I<sys_nerr>B<;>"
9509 msgstr "B<int >I<sys_nerr>B<;>"
9512 #: build/C/man3/perror.3:46
9513 msgid "B<int >I<errno>B<;>"
9514 msgstr "B<int >I<errno>B<;>"
9517 #: build/C/man3/perror.3:55
9518 msgid "I<sys_errlist>, I<sys_nerr>: _BSD_SOURCE"
9519 msgstr "I<sys_errlist>, I<sys_nerr>: _BSD_SOURCE"
9522 #: build/C/man3/perror.3:68
9524 "The routine B<perror>() produces a message on the standard error output, "
9525 "describing the last error encountered during a call to a system or library "
9526 "function. First (if I<s> is not NULL and I<*s> is not a null byte (\\(aq"
9527 "\\e0\\(aq)) the argument string I<s> is printed, followed by a colon and a "
9528 "blank. Then the message and a new-line."
9530 "関数 B<perror>() は、システムコールやライブラリ関数の呼び出しにおいて、最後"
9531 "に発生した エラーに関する説明メッセージを生成し、標準エラー出力に出力する。 "
9532 "(I<s> が NULL でなく、 I<*s> がヌルバイト (\\(aq\\e0\\(aq) でない場合には) 引"
9533 "き数の文字列 I<s> がまず出力され、続いてコロン、空白が出力され、 それからメッ"
9537 #: build/C/man3/perror.3:76
9539 "To be of most use, the argument string should include the name of the "
9540 "function that incurred the error. The error number is taken from the "
9541 "external variable I<errno>, which is set when errors occur but not cleared "
9542 "when successful calls are made."
9544 "このメッセージを最大限活用するためには、引き数文字列にエラーが発生した 関数名"
9545 "を入れておくとよい。 エラー番号は外部変数 I<errno> から取得される。 I<errno> "
9546 "はエラーが発生した時に設定され、 成功した呼び出しではクリアされない。"
9549 #: build/C/man3/perror.3:90
9551 "The global error list I<sys_errlist>[] indexed by I<errno> can be used to "
9552 "obtain the error message without the newline. The largest message number "
9553 "provided in the table is I<sys_nerr>-1. Be careful when directly accessing "
9554 "this list because new error values may not have been added to "
9555 "I<sys_errlist>[]. The use of I<sys_errlist>[] is nowadays deprecated."
9557 "大域変数のエラーリスト I<sys_errlist>[] は I<errno> を添字とする配列で、こ"
9559 "配列から改行無しのエラーメッセージが取得される。 テーブルでの最大のメッセー"
9561 "番号は I<sys_nerr> -1 となる。 このテーブルを直接参照する際には注意するこ"
9563 "なぜなら、新しいエラー番号が I<sys_errlist>[] に追加済とは限らないからであ"
9565 "現在では、I<sys_errlist>[] の使用は非推奨となっている。"
9568 #: build/C/man3/perror.3:111
9570 "When a system call fails, it usually returns -1 and sets the variable "
9571 "I<errno> to a value describing what went wrong. (These values can be found "
9572 "in I<E<lt>errno.hE<gt>>.) Many library functions do likewise. The function "
9573 "B<perror>() serves to translate this error code into human-readable form. "
9574 "Note that I<errno> is undefined after a successful library call: this call "
9575 "may well change this variable, even though it succeeds, for example because "
9576 "it internally used some other library function that failed. Thus, if a "
9577 "failing call is not immediately followed by a call to B<perror>(), the value "
9578 "of I<errno> should be saved."
9580 "システムコールが失敗した場合、通常、返り値として -1 が返り、 I<errno> にエ"
9581 "ラーを識別する値が設定される (設定されるエラー番号は I<E<lt>errno.hE<gt>> に"
9582 "記載されている)。 多くのライブラリ関数も同様の動作となる。 関数 B<perror>() "
9583 "は、このエラーコードの可読なメッセージへの変換を行う。 I<errno> は、ライブラ"
9584 "リ呼び出しが成功した後には未定義であることに注意が必要である: その呼び出し自"
9585 "身は成功したとしても、内部で呼び出した他のライブラリ関数が 失敗して、その結果"
9586 "をこの変数に設定することがあるからだ。 よって、失敗した呼び出しの直後に "
9587 "B<perror>() を呼ばない場合には I<errno> の値を 保存しておかなければならな"
9591 #: build/C/man3/perror.3:124
9593 "The function B<perror>() and the external I<errno> (see B<errno>(3)) "
9594 "conform to C89, C99, 4.3BSD, POSIX.1-2001. The externals I<sys_nerr> and "
9595 "I<sys_errlist> conform to BSD."
9597 "関数 B<perror>() と外部変数 I<errno> (B<errno>(3) 参照) は C89, 4.3BSD, "
9598 "POSIX.1-2001 に準拠している。 外部変数 I<sys_nerr> と I<sys_errlist> は BSD "
9601 #. and only when _BSD_SOURCE is defined.
9604 #. is defined, the symbols
9610 #: build/C/man3/perror.3:139
9612 "The externals I<sys_nerr> and I<sys_errlist> are defined by glibc, but in "
9613 "I<E<lt>stdio.hE<gt>>."
9615 "外部変数 I<sys_nerr> と I<sys_errlist> は glibc で定義されているが、 "
9616 "I<E<lt>stdio.hE<gt>> に含まれている。"
9619 #: build/C/man3/perror.3:144
9620 msgid "B<err>(3), B<errno>(3), B<error>(3), B<strerror>(3)"
9621 msgstr "B<err>(3), B<errno>(3), B<error>(3), B<strerror>(3)"
9624 #: build/C/man2/pipe.2:36
9630 #: build/C/man2/pipe.2:36
9636 #: build/C/man2/pipe.2:39
9637 msgid "pipe, pipe2 - create pipe"
9638 msgstr "pipe, pipe2 - パイプを生成する"
9641 #: build/C/man2/pipe.2:44
9643 msgid "B<int pipe(int >I<pipefd>B<[2]);>\n"
9644 msgstr "B<int pipe(int >I<pipefd>B<[2]);>\n"
9647 #: build/C/man2/pipe.2:48
9650 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
9651 "B<#include E<lt>fcntl.hE<gt>> /* Obtain O_* constant definitions */\n"
9652 "B<#include E<lt>unistd.hE<gt>>\n"
9654 "B<#define _GNU_SOURCE> /* feature_test_macros(7) 参照 */\n"
9655 "B<#include E<lt>fcntl.hE<gt>> /* O_* 定数の定義の取得 */\n"
9656 "B<#include E<lt>unistd.hE<gt>>\n"
9659 #: build/C/man2/pipe.2:50
9661 msgid "B<int pipe2(int >I<pipefd>B<[2], int >I<flags>B<);>\n"
9662 msgstr "B<int pipe2(int >I<pipefd>B<[2], int >I<flags>B<);>\n"
9665 #: build/C/man2/pipe.2:66
9667 "B<pipe>() creates a pipe, a unidirectional data channel that can be used "
9668 "for interprocess communication. The array I<pipefd> is used to return two "
9669 "file descriptors referring to the ends of the pipe. I<pipefd[0]> refers to "
9670 "the read end of the pipe. I<pipefd[1]> refers to the write end of the "
9671 "pipe. Data written to the write end of the pipe is buffered by the kernel "
9672 "until it is read from the read end of the pipe. For further details, see "
9675 "B<pipe>() はパイプを生成する。 パイプは、プロセス間通信に使用できる単方向の"
9676 "データチャネルである。 配列 I<pipefd> は、パイプの両端を参照する二つのファイ"
9677 "ルディスクリプタを 返すのに使用される。 I<pipefd[0]> がパイプの読み出し側、 "
9678 "I<pipefd[1]> がパイプの書き込み側である。 パイプの書き込み側に書き込まれた"
9679 "データは、 パイプの読み出し側から読み出されるまでカーネルでバッファリングされ"
9680 "る。 さらなる詳細は B<pipe>(7) を参照のこと。"
9683 #: build/C/man2/pipe.2:76
9685 "If I<flags> is 0, then B<pipe2>() is the same as B<pipe>(). The following "
9686 "values can be bitwise ORed in I<flags> to obtain different behavior:"
9688 "B<pipe2>() は I<flags> が 0 の場合には B<pipe>() と同じである。 I<flags> に"
9689 "以下の値をビット毎の論理和 (OR) で指定することで、 異なる動作をさせることがで"
9693 #: build/C/man2/pipe.2:76
9695 msgid "B<O_CLOEXEC>"
9696 msgstr "B<O_CLOEXEC>"
9699 #: build/C/man2/pipe.2:84
9701 "Set the close-on-exec (B<FD_CLOEXEC>) flag on the two new file "
9702 "descriptors. See the description of the same flag in B<open>(2) for "
9703 "reasons why this may be useful."
9705 "新しく生成される二つのファイルディスクリプタの close-on-exec "
9706 "(B<FD_CLOEXEC>) フラグをセットする。 このフラグが役に立つ理由については、 "
9707 "B<open>(2) の B<O_CLOEXEC> フラグの説明を参照のこと。"
9710 #: build/C/man2/pipe.2:84
9712 msgid "B<O_DIRECT> (since Linux 3.4)"
9713 msgstr "B<O_DIRECT> (Linux 3.4 以降)"
9715 #. commit 9883035ae7edef3ec62ad215611cb8e17d6a1a5d
9717 #: build/C/man2/pipe.2:94
9719 "Create a pipe that performs I/O in \"packet\" mode. Each B<write>(2) to "
9720 "the pipe is dealt with as a separate packet, and B<read>(2)s from the pipe "
9721 "will read one packet at a time. Note the following points:"
9723 "「パケット」モードで入出力を行うパイプを作成する。 このパイプへの "
9724 "B<write>(2) それぞれが別のパケットとして扱われ、 このパイプからの B<read>(2) "
9725 "では一度に一つパケットが読み出される。 以下の点に注意すること。"
9728 #: build/C/man2/pipe.2:101
9730 "Writes of greater than B<PIPE_BUF> bytes (see B<pipe>(7)) will be split "
9731 "into multiple packets."
9733 "B<PIPE_BUF> バイト (B<pipe>(7) 参照) より大きいデータを書き込んだ場合、複数の"
9737 #: build/C/man2/pipe.2:111
9739 "If a B<read>(2) specifies a buffer size that is smaller than the next "
9740 "packet, then the requested number of bytes are read, and the excess bytes in "
9741 "the packet are discarded. Specifying a buffer size of B<PIPE_BUF> will be "
9742 "sufficient to read the largest possible packets (see the previous point)."
9744 "B<read>(2) で次のパケットよりも小さなバッファサイズを指定した場合、要求された"
9745 "バイト数のデータが読み出され、そのパケットの超過分のバイトは破棄される。 可能"
9746 "性のある最大サイズのパケットを読み出すには、B<PIPE_BUF> のバッファサイズを指"
9747 "定すれば十分である (上の項目を参照)。"
9750 #: build/C/man2/pipe.2:116
9752 "Zero-length packets are not supported. (A B<read>(2) that specifies a "
9753 "buffer size of zero is a no-op, and returns 0.)"
9755 "長さ 0 のパケットはサポートされていない。 (バッファサイズ 0 を指定した "
9756 "B<read>(2) は何も行わず 0 を返す)。"
9759 #: build/C/man2/pipe.2:121
9761 "Older kernels that do not support this flag will indicate this via an "
9764 "このフラグをサポートしていない古いカーネルでは、エラー B<EINVAL> が返る。これ"
9765 "によりカーネルがサポートしていないことが分かる。"
9768 #: build/C/man2/pipe.2:121
9770 msgid "B<O_NONBLOCK>"
9771 msgstr "B<O_NONBLOCK>"
9774 #: build/C/man2/pipe.2:129
9776 "Set the B<O_NONBLOCK> file status flag on the two new open file "
9777 "descriptions. Using this flag saves extra calls to B<fcntl>(2) to achieve "
9780 "新しく生成される二つのオープンファイル記述 (open file description) の "
9781 "B<O_NONBLOCK> ファイルステータスフラグをセットする。 このフラグを使うこと"
9782 "で、 B<O_NONBLOCK> をセットするために B<fcntl>(2) を追加で呼び出す必要がなく"
9786 #: build/C/man2/pipe.2:139
9787 msgid "I<pipefd> is not valid."
9788 msgstr "I<pipefd> が無効な値である。"
9791 #: build/C/man2/pipe.2:144
9792 msgid "(B<pipe2>()) Invalid value in I<flags>."
9793 msgstr "(B<pipe2>()) I<flags> に無効な値が入っている。"
9796 #: build/C/man2/pipe.2:147
9797 msgid "Too many file descriptors are in use by the process."
9798 msgstr "このプロセスで使われているファイルディスクリプタが多すぎる。"
9801 #: build/C/man2/pipe.2:155
9803 "B<pipe2>() was added to Linux in version 2.6.27; glibc support is available "
9804 "starting with version 2.9."
9806 "B<pipe2>() はバージョン 2.6.27 で Linux に追加された。 glibc によるサポート"
9807 "はバージョン 2.9 以降で利用できる。"
9810 #: build/C/man2/pipe.2:158
9811 msgid "B<pipe>(): POSIX.1-2001."
9812 msgstr "B<pipe>(): POSIX.1-2001."
9815 #: build/C/man2/pipe.2:161
9816 msgid "B<pipe2>() is Linux-specific."
9817 msgstr "B<pipe2>() は Linux 固有である。"
9819 #. fork.2 refers to this example program.
9821 #: build/C/man2/pipe.2:177
9823 "The following program creates a pipe, and then B<fork>(2)s to create a child "
9824 "process; the child inherits a duplicate set of file descriptors that refer "
9825 "to the same pipe. After the B<fork>(2), each process closes the descriptors "
9826 "that it doesn't need for the pipe (see B<pipe>(7)). The parent then writes "
9827 "the string contained in the program's command-line argument to the pipe, and "
9828 "the child reads this string a byte at a time from the pipe and echoes it on "
9831 "以下のプログラムではパイプを生成し、その後 B<fork>(2) で子プロセスを生成す"
9832 "る。 子プロセスは同じパイプを参照するファイルディスクリプタ集合のコピーを 継"
9833 "承する。 B<fork>(2) の後、各プロセスはパイプ (B<pipe>(7) を参照) に必要がな"
9834 "くなったディスクリプタをクローズする。 親プロセスはプログラムのコマンドライン"
9835 "引き数に含まれる 文字列をパイプへ書き込み、 子プロセスはこの文字列をパイプか"
9836 "ら 1 バイトずつ読み込んで標準出力にエコーする。"
9839 #: build/C/man2/pipe.2:185
9842 "#include E<lt>sys/types.hE<gt>\n"
9843 "#include E<lt>sys/wait.hE<gt>\n"
9844 "#include E<lt>stdio.hE<gt>\n"
9845 "#include E<lt>stdlib.hE<gt>\n"
9846 "#include E<lt>unistd.hE<gt>\n"
9847 "#include E<lt>string.hE<gt>\n"
9849 "#include E<lt>sys/types.hE<gt>\n"
9850 "#include E<lt>sys/wait.hE<gt>\n"
9851 "#include E<lt>stdio.hE<gt>\n"
9852 "#include E<lt>stdlib.hE<gt>\n"
9853 "#include E<lt>unistd.hE<gt>\n"
9854 "#include E<lt>string.hE<gt>\n"
9857 #: build/C/man2/pipe.2:192
9861 "main(int argc, char *argv[])\n"
9868 "main(int argc, char *argv[])\n"
9875 #: build/C/man2/pipe.2:197
9878 " if (argc != 2) {\n"
9879 " fprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
9880 " exit(EXIT_FAILURE);\n"
9883 " if (argc != 2) {\n"
9884 " fprintf(stderr, \"Usage: %s E<lt>stringE<gt>\\en\", argv[0]);\n"
9885 " exit(EXIT_FAILURE);\n"
9889 #: build/C/man2/pipe.2:202
9892 " if (pipe(pipefd) == -1) {\n"
9893 " perror(\"pipe\");\n"
9894 " exit(EXIT_FAILURE);\n"
9897 " if (pipe(pipefd) == -1) {\n"
9898 " perror(\"pipe\");\n"
9899 " exit(EXIT_FAILURE);\n"
9903 #: build/C/man2/pipe.2:208
9907 " if (cpid == -1) {\n"
9908 " perror(\"fork\");\n"
9909 " exit(EXIT_FAILURE);\n"
9913 " if (cpid == -1) {\n"
9914 " perror(\"fork\");\n"
9915 " exit(EXIT_FAILURE);\n"
9919 #: build/C/man2/pipe.2:211
9922 " if (cpid == 0) { /* Child reads from pipe */\n"
9923 " close(pipefd[1]); /* Close unused write end */\n"
9925 " if (cpid == 0) { /* 子プロセスがパイプから読み込む */\n"
9926 " close(pipefd[1]); /* 使用しない write 側はクローズする */\n"
9929 #: build/C/man2/pipe.2:214
9932 " while (read(pipefd[0], &buf, 1) E<gt> 0)\n"
9933 " write(STDOUT_FILENO, &buf, 1);\n"
9935 " while (read(pipefd[0], &buf, 1) E<gt> 0)\n"
9936 " write(STDOUT_FILENO, &buf, 1);\n"
9939 #: build/C/man2/pipe.2:218
9942 " write(STDOUT_FILENO, \"\\en\", 1);\n"
9943 " close(pipefd[0]);\n"
9944 " _exit(EXIT_SUCCESS);\n"
9946 " write(STDOUT_FILENO, \"\\en\", 1);\n"
9947 " close(pipefd[0]);\n"
9948 " _exit(EXIT_SUCCESS);\n"
9951 #: build/C/man2/pipe.2:227
9954 " } else { /* Parent writes argv[1] to pipe */\n"
9955 " close(pipefd[0]); /* Close unused read end */\n"
9956 " write(pipefd[1], argv[1], strlen(argv[1]));\n"
9957 " close(pipefd[1]); /* Reader will see EOF */\n"
9958 " wait(NULL); /* Wait for child */\n"
9959 " exit(EXIT_SUCCESS);\n"
9963 " } else { /* 親プロセスは argv[1] をパイプへ書き込む */\n"
9964 " close(pipefd[0]); /* 使用しない read 側はクローズする */\n"
9965 " write(pipefd[1], argv[1], strlen(argv[1]));\n"
9966 " close(pipefd[1]); /* 読み込み側が EOF に出会う */\n"
9967 " wait(NULL); /* 子プロセスを待つ */\n"
9968 " exit(EXIT_SUCCESS);\n"
9973 #: build/C/man2/pipe.2:235
9975 "B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), "
9978 "B<fork>(2), B<read>(2), B<socketpair>(2), B<write>(2), B<popen>(3), "
9982 #: build/C/man3/popen.3:40
9988 #: build/C/man3/popen.3:43
9989 msgid "popen, pclose - pipe stream to or from a process"
9990 msgstr "popen, pclose - プロセスとの入力/出力用のパイプストリーム"
9993 #: build/C/man3/popen.3:48
9995 msgid "B<FILE *popen(const char *>I<command>B<, const char *>I<type>B<);>\n"
9996 msgstr "B<FILE *popen(const char *>I<command>B<, const char *>I<type>B<);>\n"
9999 #: build/C/man3/popen.3:50
10001 msgid "B<int pclose(FILE *>I<stream>B<);>\n"
10002 msgstr "B<int pclose(FILE *>I<stream>B<);>\n"
10004 #. type: Plain text
10005 #: build/C/man3/popen.3:60
10006 msgid "B<popen>(), B<pclose>():"
10007 msgstr "B<popen>(), B<pclose>():"
10009 #. type: Plain text
10010 #: build/C/man3/popen.3:62
10012 "_POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE"
10014 "_POSIX_C_SOURCE\\ E<gt>=\\ 2 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE"
10016 #. type: Plain text
10017 #: build/C/man3/popen.3:73
10019 "The B<popen>() function opens a process by creating a pipe, forking, and "
10020 "invoking the shell. Since a pipe is by definition unidirectional, the "
10021 "I<type> argument may specify only reading or writing, not both; the "
10022 "resulting stream is correspondingly read-only or write-only."
10024 "B<popen>() 関数は、プロセスをオープンする。具体的には、 パイプを生成し、"
10025 "フォークを行い、シェルを起動する。 定義から分かるように、パイプは一方向なの"
10026 "で、 I<type> 引き数には読み込みか書き込みのどちらか一方だけを指定できる (両方"
10027 "は指定できない)。 生成されるストリームは、この指定に対応して、読み取り専用ま"
10028 "たは 書き込み専用のいずれかとなる。"
10030 #. type: Plain text
10031 #: build/C/man3/popen.3:97
10033 "The I<command> argument is a pointer to a null-terminated string containing "
10034 "a shell command line. This command is passed to I</bin/sh> using the B<-c> "
10035 "flag; interpretation, if any, is performed by the shell. The I<type> "
10036 "argument is a pointer to a null-terminated string which must contain either "
10037 "the letter \\(aqr\\(aq for reading or the letter \\(aqw\\(aq for writing. "
10038 "Since glibc 2.9, this argument can additionally include the letter \\(aqe"
10039 "\\(aq, which causes the close-on-exec flag (B<FD_CLOEXEC>) to be set on the "
10040 "underlying file descriptor; see the description of the B<O_CLOEXEC> flag in "
10041 "B<open>(2) for reasons why this may be useful."
10043 "I<command> 引き数は、シェルのコマンドラインを含むヌル終端された文字列へのポイ"
10044 "ンタである。 このコマンドは B<-c> フラグを用いて I</bin/sh> に渡される。 コマ"
10045 "ンドの解釈は (もし必要ならば) シェルによって行われる。 I<type> 引き数は、ヌル"
10046 "終端された文字列へのポインタで、 読み込みを示す文字 \\(aqr\\(aq か、書き込み"
10047 "を示す文字 \\(aqw\\(aq の どちらか一方を指定しなければならない。 glibc 2.9 以"
10048 "降では、この引き数に文字 \\(aqe\\(aq を追加で指定できる。 文字 \\(aqe\\(aq を"
10049 "指定すると、 対応するファイルディスクリプタにおいて、 close-on-exec フラグ "
10050 "(B<FD_CLOEXEC>) がセットされる。 これが役に立つ理由については、 B<open>(2) "
10051 "の B<O_CLOEXEC> フラグの説明を参照のこと。"
10053 #. type: Plain text
10054 #: build/C/man3/popen.3:113
10056 "The return value from B<popen>() is a normal standard I/O stream in all "
10057 "respects save that it must be closed with B<pclose>() rather than "
10058 "B<fclose>(3). Writing to such a stream writes to the standard input of the "
10059 "command; the command's standard output is the same as that of the process "
10060 "that called B<popen>(), unless this is altered by the command itself. "
10061 "Conversely, reading from the stream reads the command's standard output, and "
10062 "the command's standard input is the same as that of the process that called "
10064 msgstr "B<popen>() からの返り値は、通常の標準 I/O ストリームと同じであるが、 B<fclose>(3) ではなく B<pclose>() で閉じなくてはならないことだけが異なる。 このストリームへ書き込んだ結果はコマンドの標準入力に書き込まれる。 そして、コマンドの標準出力は、 コマンドそのものが置き換わってしまわない限り、 B<popen>() を呼んだプロセスの標準出力と同じことになる。 逆に、 ストリームからの読み込みは、 そのコマンドの標準出力を読み込むことになる。 そして、そのコマンドの標準入力は B<popen>() を呼んだプロセスの標準入力と同一である。"
10066 #. type: Plain text
10067 #: build/C/man3/popen.3:117
10068 msgid "Note that output B<popen>() streams are fully buffered by default."
10070 "デフォルトでは、 B<popen>() の出力ストリームは完全にバッファリングされること"
10073 #. type: Plain text
10074 #: build/C/man3/popen.3:123
10076 "The B<pclose>() function waits for the associated process to terminate and "
10077 "returns the exit status of the command as returned by B<wait4>(2)."
10079 "B<pclose>() 関数は、(パイプに) 関連づけられたプロセスが終了するのを待ち、 "
10080 "B<wait4>(2) によって返されたコマンドの終了状態を返す。"
10082 #. type: Plain text
10083 #: build/C/man3/popen.3:131
10085 "The B<popen>() function returns NULL if the B<fork>(2) or B<pipe>(2) "
10086 "calls fail, or if it cannot allocate memory."
10088 "B<popen>() 関数は、 B<fork>(2) または B<pipe>(2) 呼び出しが失敗した場合"
10089 "や、 メモリ割り当てができなかった場合、 NULL を返す。"
10091 #. These conditions actually give undefined results, so I commented
10094 #. is not associated with a "popen()ed" command, if
10096 #. already "pclose()d", or if
10097 #. type: Plain text
10098 #: build/C/man3/popen.3:146
10100 "The B<pclose>() function returns -1 if B<wait4>(2) returns an error, or "
10101 "some other error is detected. In the event of an error, these functions set "
10102 "I<errno> to indicate the cause of the error."
10104 "B<pclose>() 関数は、 B<wait4>(2) がエラーを返したり、何か他のエラーが見つ"
10105 "かった場合、 -1 を返す。 その場合、 I<errno> にエラーの原因を示す値が設定され"
10108 #. type: Plain text
10109 #: build/C/man3/popen.3:165
10111 "The B<popen>() function does not set I<errno> if memory allocation fails. "
10112 "If the underlying B<fork>(2) or B<pipe>(2) fails, I<errno> is set "
10113 "appropriately. If the I<type> argument is invalid, and this condition is "
10114 "detected, I<errno> is set to B<EINVAL>."
10116 "B<popen>() 関数は、メモリアロケーションに失敗しても I<errno> をセットしな"
10117 "い。 B<popen>() が中で呼び出す B<fork>(2) や B<pipe>(2) が失敗した場合に"
10118 "は、 I<errno> が適切にセットされる。 引き数 I<type> が無効であり、この状態が"
10119 "検知された場合には、 I<errno> が B<EINVAL> にセットされる。"
10121 #. type: Plain text
10122 #: build/C/man3/popen.3:172
10124 "If B<pclose>() cannot obtain the child status, I<errno> is set to B<ECHILD>."
10126 "B<pclose>() が、子プロセスの状態を取得できなかった場合、 I<errno> が "
10127 "B<ECHILD> にセットされる。"
10129 #. type: Plain text
10130 #: build/C/man3/popen.3:178
10131 msgid "The \\(aqe\\(aq value for I<type> is a Linux extension."
10132 msgstr "I<type> に指定できる \\(aqe\\(aq は Linux での拡張である。"
10134 #. type: Plain text
10135 #: build/C/man3/popen.3:191
10137 "Since the standard input of a command opened for reading shares its seek "
10138 "offset with the process that called B<popen>(), if the original process has "
10139 "done a buffered read, the command's input position may not be as expected. "
10140 "Similarly, the output from a command opened for writing may become "
10141 "intermingled with that of the original process. The latter can be avoided "
10142 "by calling B<fflush>(3) before B<popen>()."
10144 "読み込みのために開かれたコマンドの標準入力は B<popen>(), を呼んだプロセスと一"
10145 "緒に、その読み取り位置を共有する。 そのため、もとのプロセスがバッファリングさ"
10146 "れた読み取りを終了したら、 そのコマンドの入力位置は予想されたものには なって"
10147 "いないかもしれない。 同様に、書き込みのために開かれたコマンドからの出力は、 "
10148 "もとのプロセスの出力と混ざり合うことになるかもしれない。 後者は B<popen>() "
10149 "の前に B<fflush>(3) を呼び出すことによって回避可能である。"
10156 #. function appeared in Version 7 AT&T UNIX.
10157 #. type: Plain text
10158 #: build/C/man3/popen.3:201
10160 "Failure to execute the shell is indistinguishable from the shell's failure "
10161 "to execute command, or an immediate exit of the command. The only hint is "
10162 "an exit status of 127."
10164 "シェルの実行の失敗は、 シェルがコマンドの実行に失敗したことや、 コマンドがす"
10165 "ぐに終了してしまったことと、区別がつかない。 唯一のヒントは終了状態が 127 に"
10168 #. type: Plain text
10169 #: build/C/man3/popen.3:211
10171 "B<sh>(1), B<fork>(2), B<pipe>(2), B<wait4>(2), B<fclose>(3), B<fflush>(3), "
10172 "B<fopen>(3), B<stdio>(3), B<system>(3)"
10174 "B<sh>(1), B<fork>(2), B<pipe>(2), B<wait4>(2), B<fclose>(3), B<fflush>(3), "
10175 "B<fopen>(3), B<stdio>(3), B<system>(3)"
10178 #: build/C/man3/printf.3:34
10184 #: build/C/man3/printf.3:34
10187 msgstr "2013-12-30"
10189 #. type: Plain text
10190 #: build/C/man3/printf.3:38
10192 "printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - "
10193 "formatted output conversion"
10195 "printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - "
10196 "指定された書式に変換して出力を行う"
10198 #. type: Plain text
10199 #: build/C/man3/printf.3:42
10200 msgid "B<int printf(const char *>I<format>B<, ...);>"
10201 msgstr "B<int printf(const char *>I<format>B<, ...);>"
10203 #. type: Plain text
10204 #: build/C/man3/printf.3:44
10205 msgid "B<int fprintf(FILE *>I<stream>B<, const char *>I<format>B<, ...);>"
10206 msgstr "B<int fprintf(FILE *>I<stream>B<, const char *>I<format>B<, ...);>"
10208 #. type: Plain text
10209 #: build/C/man3/printf.3:46
10210 msgid "B<int sprintf(char *>I<str>B<, const char *>I<format>B<, ...);>"
10211 msgstr "B<int sprintf(char *>I<str>B<, const char *>I<format>B<, ...);>"
10213 #. type: Plain text
10214 #: build/C/man3/printf.3:48
10216 "B<int snprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10217 "*>I<format>B<, ...);>"
10219 "B<int snprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10220 "*>I<format>B<, ...);>"
10222 #. type: Plain text
10223 #: build/C/man3/printf.3:50
10224 msgid "B<#include E<lt>stdarg.hE<gt>>"
10225 msgstr "B<#include E<lt>stdarg.hE<gt>>"
10227 #. type: Plain text
10228 #: build/C/man3/printf.3:52
10229 msgid "B<int vprintf(const char *>I<format>B<, va_list >I<ap>B<);>"
10230 msgstr "B<int vprintf(const char *>I<format>B<, va_list >I<ap>B<);>"
10232 #. type: Plain text
10233 #: build/C/man3/printf.3:54
10235 "B<int vfprintf(FILE *>I<stream>B<, const char *>I<format>B<, va_list "
10238 "B<int vfprintf(FILE *>I<stream>B<, const char *>I<format>B<, va_list "
10241 #. type: Plain text
10242 #: build/C/man3/printf.3:56
10244 "B<int vsprintf(char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
10246 "B<int vsprintf(char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>"
10248 #. type: Plain text
10249 #: build/C/man3/printf.3:59
10251 "B<int vsnprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10252 "*>I<format>B<, va_list >I<ap>B<);>"
10254 "B<int vsnprintf(char *>I<str>B<, size_t >I<size>B<, const char "
10255 "*>I<format>B<, va_list >I<ap>B<);>"
10257 #. type: Plain text
10258 #: build/C/man3/printf.3:68
10259 msgid "B<snprintf>(), B<vsnprintf>():"
10260 msgstr "B<snprintf>(), B<vsnprintf>():"
10262 #. type: Plain text
10263 #: build/C/man3/printf.3:71
10265 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE || "
10266 "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
10268 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE || "
10269 "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
10271 #. type: Plain text
10272 #: build/C/man3/printf.3:74 build/C/man3/scanf.3:85
10273 msgid "or I<cc -std=c99>"
10274 msgstr "または I<cc -std=c99>"
10276 #. type: Plain text
10277 #: build/C/man3/printf.3:101
10279 "The functions in the B<printf>() family produce output according to a "
10280 "I<format> as described below. The functions B<printf>() and B<vprintf>() "
10281 "write output to I<stdout>, the standard output stream; B<fprintf>() and "
10282 "B<vfprintf>() write output to the given output I<stream>; B<sprintf>(), "
10283 "B<snprintf>(), B<vsprintf>() and B<vsnprintf>() write to the character "
10286 "B<printf>() 関数グループは、以下で述べるように、 I<format> に従って出力を生"
10287 "成するものである。 B<printf>() と B<vprintf>() は出力を I<stdout> (標準出力"
10288 "ストリーム) に書き出す。 B<fprintf>() と B<vfprintf>() は出力を指定された出"
10289 "力 I<stream> に書き出す。 B<sprintf>(), B<snprintf>(), B<vsprintf>(), "
10290 "B<vsnprintf>() は出力を文字列 I<str> に書き込む。"
10292 #. type: Plain text
10293 #: build/C/man3/printf.3:110
10295 "The functions B<snprintf>() and B<vsnprintf>() write at most I<size> bytes "
10296 "(including the terminating null byte (\\(aq\\e0\\(aq)) to I<str>."
10298 "B<snprintf>() と B<vsnprintf>() は最大で I<size> バイトを I<str> に書き込"
10299 "む (I<size> には文字列を終端するヌルバイト (\\(aq\\e0\\(aq) もを含まれる)。"
10301 #. type: Plain text
10302 #: build/C/man3/printf.3:134
10304 "The functions B<vprintf>(), B<vfprintf>(), B<vsprintf>(), B<vsnprintf>() "
10305 "are equivalent to the functions B<printf>(), B<fprintf>(), B<sprintf>(), "
10306 "B<snprintf>(), respectively, except that they are called with a I<va_list> "
10307 "instead of a variable number of arguments. These functions do not call the "
10308 "I<va_end> macro. Because they invoke the I<va_arg> macro, the value of "
10309 "I<ap> is undefined after the call. See B<stdarg>(3)."
10311 "B<vprintf>(), B<vfprintf>(), B<vsprintf>(), B<vsnprintf>() の各関数はそれぞ"
10312 "れ B<printf>(), B<fprintf>(), B<sprintf>(), B<snprintf>(), の各関数と等価であ"
10313 "り、可変数引き数の代わりに I<va_list> を引き数として呼び出される点だけが異な"
10314 "る。 これらの関数では I<va_end> マクロは呼び出されない。 これらの関数は "
10315 "I<va_arg> を呼び出すので、呼び出し後の I<ap> の値は未定義である。 "
10316 "B<stdarg>(3) を参照のこと。"
10318 #. type: Plain text
10319 #: build/C/man3/printf.3:141
10321 "These eight functions write the output under the control of a I<format> "
10322 "string that specifies how subsequent arguments (or arguments accessed via "
10323 "the variable-length argument facilities of B<stdarg>(3)) are converted for "
10326 "これらの 8 つの関数は I<format> 文字列の制御に従って出力を書き出す。 "
10327 "I<format> 文字列は、これに続く引き数 (または B<stdarg>(3) の可変長引き数機構"
10328 "を使ってアクセスできる引き数) をどのように変換して出力するかを指定する。"
10330 #. type: Plain text
10331 #: build/C/man3/printf.3:152
10333 "C99 and POSIX.1-2001 specify that the results are undefined if a call to "
10334 "B<sprintf>(), B<snprintf>(), B<vsprintf>(), or B<vsnprintf>() would cause "
10335 "copying to take place between objects that overlap (e.g., if the target "
10336 "string array and one of the supplied input arguments refer to the same "
10337 "buffer). See NOTES."
10339 "C99 と POSIX.1-2001 では、 B<sprintf>(), B<snprintf>(), B<vsprintf>(), "
10340 "B<vsnprintf>() の呼び出しで、範囲が重複するオブジェクト間でコピーが発生する"
10341 "場合の 結果は不定であると規定されている (例えば、出力先の文字列と入力された "
10342 "引き数の一つが同じバッファを参照している場合などである)。 「注意」の節を参"
10346 #: build/C/man3/printf.3:152
10348 msgid "Return value"
10349 msgstr "Return Values"
10351 #. type: Plain text
10352 #: build/C/man3/printf.3:155
10354 "Upon successful return, these functions return the number of characters "
10355 "printed (excluding the null byte used to end output to strings)."
10357 "成功時には、上記の関数は書き込まれた文字数を返す (文字列の最後を示すために使"
10358 "用するヌルバイトは数に含まれない)。"
10360 #. type: Plain text
10361 #: build/C/man3/printf.3:171
10363 "The functions B<snprintf>() and B<vsnprintf>() do not write more than "
10364 "I<size> bytes (including the terminating null byte (\\(aq\\e0\\(aq)). If "
10365 "the output was truncated due to this limit, then the return value is the "
10366 "number of characters (excluding the terminating null byte) which would have "
10367 "been written to the final string if enough space had been available. Thus, "
10368 "a return value of I<size> or more means that the output was truncated. (See "
10369 "also below under NOTES.)"
10371 "B<snprintf>() と B<vsnprintf>() は、 I<size> バイトを越える文字数を書き込ま"
10372 "ない (I<size> には文字列を終端するヌルバイト (\\(aq\\e0\\(aq) も含まれる)。 "
10373 "この制限によって出力が切り詰められた場合には、 もし十分なスペースがあれば書き"
10374 "込まれたであろう文字の個数 (文字列を終端するヌルバイトを除く) を返す。 従っ"
10375 "て、返り値が I<size> 以上だった場合、出力が切り詰められたことを意味する (後述"
10378 #. type: Plain text
10379 #: build/C/man3/printf.3:173
10380 msgid "If an output error is encountered, a negative value is returned."
10381 msgstr "エラーが発生した場合は、負の数を返す。"
10384 #: build/C/man3/printf.3:173
10386 msgid "Format of the format string"
10387 msgstr "フォーマット文字列のフォーマット"
10389 #. type: Plain text
10390 #: build/C/man3/printf.3:195
10392 "The format string is a character string, beginning and ending in its initial "
10393 "shift state, if any. The format string is composed of zero or more "
10394 "directives: ordinary characters (not B<%>), which are copied unchanged to "
10395 "the output stream; and conversion specifications, each of which results in "
10396 "fetching zero or more subsequent arguments. Each conversion specification "
10397 "is introduced by the character B<%>, and ends with a I<conversion "
10398 "specifier>. In between there may be (in this order) zero or more I<flags>, "
10399 "an optional minimum I<field width>, an optional I<precision> and an optional "
10400 "I<length modifier>."
10402 "フォーマット文字列は文字の列で、 (もしあるなら) 初期シフト状態で始まり、初期"
10403 "シフト状態で終わる。 フォーマット用の文字列は 0 個以上の命令 (directives) に"
10404 "よって構成される。 命令には、通常文字と変換指定 (conversion specifications) "
10405 "がある。 通常文字は B<%> 以外の文字で、出力ストリームにそのままコピーされ"
10406 "る。 変換指定は、それぞれが 0 個以上の引き数を取る。 各変換指定は文字 B<%> で"
10407 "始まり、 I<変換指定子 (conversion specifier)> で終わる。 B<%> と変換指定子の"
10408 "間には、0 個以上の I<フラグ 、> 最小 I<フィールド幅 、> I<精度 、> I<長さ修飾"
10409 "子> を (この順序で) 置くことができる。"
10411 #. type: Plain text
10412 #: build/C/man3/printf.3:208
10414 "The arguments must correspond properly (after type promotion) with the "
10415 "conversion specifier. By default, the arguments are used in the order "
10416 "given, where each \\(aq*\\(aq and each conversion specifier asks for the "
10417 "next argument (and it is an error if insufficiently many arguments are "
10418 "given). One can also specify explicitly which argument is taken, at each "
10419 "place where an argument is required, by writing \"%m$\" instead of \\(aq%"
10420 "\\(aq and \"*m$\" instead of \\(aq*\\(aq, where the decimal integer m "
10421 "denotes the position in the argument list of the desired argument, indexed "
10422 "starting from 1. Thus,"
10424 "引き数は (型の格上げの後は) 変換指定子が表す型と正確に対応しなければならな"
10425 "い。 デフォルトでは、\\(aq*\\(aq や変換指定子が出てくる毎に次の引き数を要求さ"
10426 "れ、 引き数は指定された順序で使用されていく (指定された引き数の個数が不十分な"
10427 "らエラーとなる)。 また、引き数が必要な箇所で \\(aq%\\(aq の代わりに \"%m$"
10428 "\"、 \\(aq*\\(aqの代わりに \"*m$\" と書くことで、 明示的にどの引き数を使用す"
10429 "るかを指定することもできる。 ここで 10進の整数 m は希望の引き数の引き数リスト"
10430 "での位置を示す (最初の引き数の番号が 1 である)。 従って、"
10432 #. type: Plain text
10433 #: build/C/man3/printf.3:212
10435 msgid "printf(\"%*d\", width, num);\n"
10436 msgstr "printf(\"%*d\", width, num);\n"
10438 #. type: Plain text
10439 #: build/C/man3/printf.3:216
10443 #. type: Plain text
10444 #: build/C/man3/printf.3:220
10446 msgid "printf(\"%2$*1$d\", width, num);\n"
10447 msgstr "printf(\"%2$*1$d\", width, num);\n"
10449 #. type: Plain text
10450 #: build/C/man3/printf.3:236
10452 "are equivalent. The second style allows repeated references to the same "
10453 "argument. The C99 standard does not include the style using \\(aq$\\(aq, "
10454 "which comes from the Single UNIX Specification. If the style using \\(aq$"
10455 "\\(aq is used, it must be used throughout for all conversions taking an "
10456 "argument and all width and precision arguments, but it may be mixed with \"%%"
10457 "\" formats which do not consume an argument. There may be no gaps in the "
10458 "numbers of arguments specified using \\(aq$\\(aq; for example, if arguments "
10459 "1 and 3 are specified, argument 2 must also be specified somewhere in the "
10462 "は等価である。 二番目の書き方では同じ引き数を繰り返し参照することができる。 "
10463 "C99 標準には、 Single UNIX Specification 由来の \\(aq$\\(aq を使った書き方は"
10464 "含まれていない。 \\(aq$\\(aq を使ったスタイルを使うと、引き数を取る変換及び幅"
10465 "と精度の引き数を 全てこのスタイルで指定しなければならないが、 引き数を消費し"
10466 "ない \"%%\" フォーマットと混ざっているかもしれない。 \\(aq$\\(aq で指定される"
10467 "引き数の番号に空きがあってはならない。 例えば、もし引き数 1 と 3 が指定される"
10468 "と、引き数 2 もフォーマット文字列のどこかで 指定されなければならない。"
10470 #. type: Plain text
10471 #: build/C/man3/printf.3:246
10473 "For some numeric conversions a radix character (\"decimal point\") or "
10474 "thousands' grouping character is used. The actual character used depends on "
10475 "the B<LC_NUMERIC> part of the locale. The POSIX locale uses \\(aq.\\(aq as "
10476 "radix character, and does not have a grouping character. Thus,"
10478 "数値変換には小数点や 1000 単位の区切り文字を使うものもある。 実際にどの文字を"
10479 "使うかはロケールの B<LC_NUMERIC> による。 POSIX ロケールでは小数点に \\(aq."
10480 "\\(aq を用い、 区切り文字は使わない。 従って、"
10482 #. type: Plain text
10483 #: build/C/man3/printf.3:250
10485 msgid " printf(\"%\\(aq.2f\", 1234567.89);\n"
10486 msgstr "printf(\"%\\(aq.2f\", 1234567.89);\n"
10488 #. type: Plain text
10489 #: build/C/man3/printf.3:255
10491 "results in \"1234567.89\" in the POSIX locale, in \"1234567,89\" in the "
10492 "nl_NL locale, and in \"1.234.567,89\" in the da_DK locale."
10494 "は、 POSIX ロケールでは \"1234567.89\" 、 nl_NL ロケールでは "
10495 "\"1234567,89\"、 da_DK ロケールでは \"1.234.567,89\" となる。"
10498 #: build/C/man3/printf.3:255
10500 msgid "The flag characters"
10503 #. type: Plain text
10504 #: build/C/man3/printf.3:257
10505 msgid "The character % is followed by zero or more of the following flags:"
10506 msgstr "% 文字の後ろには 0 個以上のフラグ文字が続く。"
10509 #: build/C/man3/printf.3:257
10514 #. type: Plain text
10515 #: build/C/man3/printf.3:291
10517 "The value should be converted to an \"alternate form\". For B<o> "
10518 "conversions, the first character of the output string is made zero (by "
10519 "prefixing a 0 if it was not zero already). For B<x> and B<X> conversions, a "
10520 "nonzero result has the string \"0x\" (or \"0X\" for B<X> conversions) "
10521 "prepended to it. For B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, and B<G> "
10522 "conversions, the result will always contain a decimal point, even if no "
10523 "digits follow it (normally, a decimal point appears in the results of those "
10524 "conversions only if a digit follows). For B<g> and B<G> conversions, "
10525 "trailing zeros are not removed from the result as they would otherwise be. "
10526 "For other conversions, the result is undefined."
10528 "値は「別の形式」に変換される。 B<o> 変換の場合、(先頭文字が 0 になっていない"
10529 "場合に先頭に 0 を追加することで) 出力文字列の最初の文字を 0 にする。 B<x> "
10530 "と B<X> 変換の場合、数値が 0 でないときには文字列 \"0x\" (B<X> 変換の場合に"
10531 "は \"0X\") が前に付与される。 B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, B<G> "
10532 "変換では、 小数点に続く数字がなくても、 出力には常に小数点が含まれる (通常"
10533 "は、小数点の後に数字が続く場合にのみ、 小数点が表示される)。 B<g> と B<G> 変"
10534 "換の場合、他の変換とは異なり、末尾のゼロが変換結果から削除されない。 その他の"
10538 #: build/C/man3/printf.3:291
10543 #. type: Plain text
10544 #: build/C/man3/printf.3:331
10546 "The value should be zero padded. For B<d>, B<i>, B<o>, B<u>, B<x>, B<X>, "
10547 "B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, and B<G> conversions, the "
10548 "converted value is padded on the left with zeros rather than blanks. If the "
10549 "B<\\&0> and B<-> flags both appear, the B<\\&0> flag is ignored. If a "
10550 "precision is given with a numeric conversion (B<d>, B<i>, B<o>, B<u>, B<x>, "
10551 "and B<X>), the B<\\&0> flag is ignored. For other conversions, the behavior "
10554 "値をゼロで埋める。 B<d>, B<i>, B<o>, B<u>, B<x>, B<X>, B<a>, B<A>, B<e>, "
10555 "B<E>, B<f>, B<F>, B<g>, B<G> 変換では、変換した値の左側を空白文字の代わりにゼ"
10556 "ロで埋める。 B<\\&0> と B<-> が両方とも指定された場合は、 B<\\&0> フラグは無"
10557 "視される。 精度が数値変換 (B<d>, B<i>, B<o>, B<u>, B<x>, B<X>) と同時に指定"
10558 "された場合には、 B<\\&0> フラグは無視される。 その他の変換では、動作は未定義"
10562 #: build/C/man3/printf.3:331
10567 #. type: Plain text
10568 #: build/C/man3/printf.3:344
10570 "The converted value is to be left adjusted on the field boundary. (The "
10571 "default is right justification.) Except for B<n> conversions, the converted "
10572 "value is padded on the right with blanks, rather than on the left with "
10573 "blanks or zeros. A B<-> overrides a B<\\&0> if both are given."
10575 "変換値をフィールド境界で左揃えにする (デフォルトは右揃えである)。 B<n> 変換以"
10576 "外では、変換された値は 左側ではなく右側を空白文字やゼロで埋められる。 B<-> "
10577 "と B<\\&0> の両方が指定された場合には、 B<-> が優先される。"
10580 #: build/C/man3/printf.3:344
10582 msgid "B<\\(aq \\(aq>"
10585 #. type: Plain text
10586 #: build/C/man3/printf.3:348
10588 "(a space) A blank should be left before a positive number (or empty string) "
10589 "produced by a signed conversion."
10591 "(1個の半角スペース) 符号付き変換で生成された正の数字の前に空白 (または空文字"
10595 #: build/C/man3/printf.3:348
10600 #. type: Plain text
10601 #: build/C/man3/printf.3:356
10603 "A sign (+ or -) should always be placed before a number produced by a signed "
10604 "conversion. By default a sign is used only for negative numbers. A B<+> "
10605 "overrides a space if both are used."
10607 "符号付き変換によって出力される数字の前に、常に符号 (+ か -) が置かれる。 デ"
10608 "フォルトでは、符号は負の数字の場合のみ付与される。 B<+> と半角スペースの 両方"
10609 "が使われている場合には、 B<+> が優先される。"
10611 #. type: Plain text
10612 #: build/C/man3/printf.3:359
10614 "The five flag characters above are defined in the C standard. The SUSv2 "
10615 "specifies one further flag character."
10617 "上記の 5 つのフラグは C 標準で定義されている。 SUSv2 では、さらにもう一つフラ"
10621 #: build/C/man3/printf.3:359
10626 #. type: Plain text
10627 #: build/C/man3/printf.3:376
10629 "For decimal conversion (B<i>, B<d>, B<u>, B<f>, B<F>, B<g>, B<G>) the "
10630 "output is to be grouped with thousands' grouping characters if the locale "
10631 "information indicates any. Note that many versions of B<gcc>(1) cannot "
10632 "parse this option and will issue a warning. SUSv2 does not include I<%"
10635 "10進数変換 (B<i>, B<d>, B<u>, B<f>, B<F>, B<g>, B<G>) において、ロケール情報"
10636 "に指定があれば 1000 単位の区切り文字を出力する。 B<gcc>(1) の多くのバージョ"
10637 "ンは、このオプションを解釈することができず、 警告を出力することに注意せよ。 %"
10638 "\\(aqF は SUSv2 には含まれていない。"
10640 #. type: Plain text
10641 #: build/C/man3/printf.3:378
10642 msgid "glibc 2.2 adds one further flag character."
10643 msgstr "glibc 2.2 では、さらに一つフラグ文字が追加されている。"
10646 #: build/C/man3/printf.3:378
10651 #. outdigits keyword in locale file
10652 #. type: Plain text
10653 #: build/C/man3/printf.3:388
10655 "For decimal integer conversion (B<i>, B<d>, B<u>) the output uses the "
10656 "locale's alternative output digits, if any. For example, since glibc 2.2.3 "
10657 "this will give Arabic-Indic digits in the Persian (\"fa_IR\") locale."
10659 "10進整数変換 (B<i>, B<d>, B<u>) において、ロケールの代替出力数字があれば、そ"
10660 "れを用いて出力する。 例えば、 glibc 2.2.3 以降では、ペルシア (\"fa_IR\") ロ"
10661 "ケールで アラビア数字 (Arabic-Indic digits) を出力できる。"
10664 #: build/C/man3/printf.3:388
10666 msgid "The field width"
10669 #. type: Plain text
10670 #: build/C/man3/printf.3:404
10672 "An optional decimal digit string (with nonzero first digit) specifying a "
10673 "minimum field width. If the converted value has fewer characters than the "
10674 "field width, it will be padded with spaces on the left (or right, if the "
10675 "left-adjustment flag has been given). Instead of a decimal digit string one "
10676 "may write \"*\" or \"*m$\" (for some decimal integer I<m>) to specify that "
10677 "the field width is given in the next argument, or in the I<m>-th argument, "
10678 "respectively, which must be of type I<int>. A negative field width is taken "
10679 "as a \\(aq-\\(aq flag followed by a positive field width. In no case does a "
10680 "nonexistent or small field width cause truncation of a field; if the result "
10681 "of a conversion is wider than the field width, the field is expanded to "
10682 "contain the conversion result."
10684 "最小のフィールド幅を指定する 10進数の数値文字列 (文字列の最初の文字は ゼロ以"
10685 "外)。本項目はオプションである。 変換された値の文字数がフィールド長よりも少な"
10686 "い場合、 フィールドの左側をスペースで埋める (左揃えのフラグがある場合は右側を"
10687 "埋める)。 10進数の文字列の代わりに \"*\" や \"*m$\" (I<m> は 10進整数) を書く"
10688 "こともできる。 \"*\" と \"*m$\" はそれぞれ、次の引き数と I<m> 番目の引き数を"
10689 "フィールド幅として 使うことを指定する (これらの引き数は I<int> 型でなければな"
10690 "らない)。 フィールド幅に負の数が指定された場合は、 \\(aq-\\(aq フラグと正の数"
10691 "のフィールド幅として扱われる。 フィールド幅が小さかったり指定がなかったりして"
10692 "も、フィールドが切り詰められる ことはない。もし変換結果がフィールド幅よりも広"
10693 "かった場合、 フィールドは変換結果が入る幅に広げられる。"
10696 #: build/C/man3/printf.3:404
10698 msgid "The precision"
10701 #. type: Plain text
10702 #: build/C/man3/printf.3:441
10704 "An optional precision, in the form of a period (\\(aq.\\(aq) followed by an "
10705 "optional decimal digit string. Instead of a decimal digit string one may "
10706 "write \"*\" or \"*m$\" (for some decimal integer m) to specify that the "
10707 "precision is given in the next argument, or in the m-th argument, "
10708 "respectively, which must be of type I<int>. If the precision is given as "
10709 "just \\(aq.\\(aq, the precision is taken to be zero. A negative precision "
10710 "is taken as if the precision were omitted. This gives the minimum number of "
10711 "digits to appear for B<d>, B<i>, B<o>, B<u>, B<x>, and B<X> conversions, the "
10712 "number of digits to appear after the radix character for B<a>, B<A>, B<e>, "
10713 "B<E>, B<f>, and B<F> conversions, the maximum number of significant digits "
10714 "for B<g> and B<G> conversions, or the maximum number of characters to be "
10715 "printed from a string for B<s> and B<S> conversions."
10717 "オプションである精度は、ピリオド (\\(aq.\\(aq) とそれに続く10進数という 形式"
10718 "で指定する (10進数はオプション) 。 10進数の文字列の代わりに \"*\" や \"*m$"
10719 "\" (m は 10 進整数)を書くこともできる。 \"*\" と \"*m$\" はそれぞれ、次の引き"
10720 "数と m 番目の引き数を精度として 使うことを指定する (これらの引き数は I<int> "
10721 "型でなければならない)。 精度として \\(aq.\\(aq だけが指定された場合、 精度は"
10722 "ゼロとみなされる。 精度が負の数だった場合、 精度は指定されなかったものとみな"
10723 "される。 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変換では、表示される最小の桁数を"
10724 "指定する。 B<a>, B<A>, B<e>, B<E>, B<f>, B<F> 変換では、小数点以下に表示され"
10725 "る数字の桁数を指定する。 B<g> と B<G> 変換では、有効数字の最大桁数を指定す"
10726 "る。 B<s> と B<S> 変換では、文字列から出力される最大文字数を指定する。"
10729 #: build/C/man3/printf.3:441
10731 msgid "The length modifier"
10734 #. type: Plain text
10735 #: build/C/man3/printf.3:451
10737 "Here, \"integer conversion\" stands for B<d>, B<i>, B<o>, B<u>, B<x>, or "
10740 "「整数変換」とは、 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変換のことである。"
10743 #: build/C/man3/printf.3:451 build/C/man3/scanf.3:294
10748 #. type: Plain text
10749 #: build/C/man3/printf.3:462
10751 "A following integer conversion corresponds to a I<signed char> or I<unsigned "
10752 "char> argument, or a following B<n> conversion corresponds to a pointer to a "
10753 "I<signed char> argument."
10755 "整数変換に対応する引き数が I<signed char> か I<unsigned char> で、 B<n> 変換"
10756 "に対応する引き数が I<signed char> へのポインタであることを示す。"
10759 #: build/C/man3/printf.3:462 build/C/man3/scanf.3:284
10764 #. type: Plain text
10765 #: build/C/man3/printf.3:473
10767 "A following integer conversion corresponds to a I<short int> or I<unsigned "
10768 "short int> argument, or a following B<n> conversion corresponds to a pointer "
10769 "to a I<short int> argument."
10771 "整数変換に対応する引き数が I<short int> か I<unsigned short int> で、 B<n> 変"
10772 "換に対応する引き数が I<short int> へのポインタであることを示す。"
10775 #: build/C/man3/printf.3:473 build/C/man3/scanf.3:311
10780 #. type: Plain text
10781 #: build/C/man3/printf.3:492
10783 "(ell) A following integer conversion corresponds to a I<long int> or "
10784 "I<unsigned long int> argument, or a following B<n> conversion corresponds to "
10785 "a pointer to a I<long int> argument, or a following B<c> conversion "
10786 "corresponds to a I<wint_t> argument, or a following B<s> conversion "
10787 "corresponds to a pointer to I<wchar_t> argument."
10789 "各変換に対応する引き数が、 整数変換では I<long int>か I<unsigned long int>、 "
10790 "B<n> 変換では I<long long int> へのポインタ、 B<c> 変換では I<wint_t>、 B<s> "
10791 "変換では I<wchar_t> へのポインタであることを示す。"
10794 #: build/C/man3/printf.3:492
10797 msgstr "B<ll> (エルエル)"
10799 #. type: Plain text
10800 #: build/C/man3/printf.3:504
10802 "(ell-ell). A following integer conversion corresponds to a I<long long int> "
10803 "or I<unsigned long long int> argument, or a following B<n> conversion "
10804 "corresponds to a pointer to a I<long long int> argument."
10806 "整数変換に対応する引き数が I<long long int> か I<unsigned long long int> "
10807 "で、 B<n> 変換に対応する引き数が I<long int> へのポインタであることを示す。"
10810 #: build/C/man3/printf.3:504 build/C/man3/scanf.3:338
10815 #. type: Plain text
10816 #: build/C/man3/printf.3:520
10818 "A following B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, or B<G> conversion "
10819 "corresponds to a I<long double> argument. (C99 allows %LF, but SUSv2 does "
10822 "B<a>, B<A>, B<e>, B<E>, B<f>, B<F>, B<g>, B<G> 変換に対応する引き数が I<long "
10823 "double> であることを示す。 (C99 では %LF を使うことを認めているが、SUSv2 では"
10827 #: build/C/man3/printf.3:520 build/C/man3/scanf.3:354
10832 #. type: Plain text
10833 #: build/C/man3/printf.3:526
10835 "(\"quad\". 4.4BSD and Linux libc5 only. Don't use.) This is a synonym for "
10838 "(\"quad\"。 4.4BSD と Linux libc5 のみ有効。使ってはならない。) B<ll> と同じ"
10842 #: build/C/man3/printf.3:526 build/C/man3/scanf.3:302
10847 #. type: Plain text
10848 #: build/C/man3/printf.3:533
10850 "A following integer conversion corresponds to an I<intmax_t> or I<uintmax_t> "
10853 "整数変換に対応する引き数が I<intmax_t> か I<uintmax_t> であることを示す。"
10856 #: build/C/man3/printf.3:533 build/C/man3/scanf.3:366
10861 #. type: Plain text
10862 #: build/C/man3/printf.3:544
10864 "A following integer conversion corresponds to a I<size_t> or I<ssize_t> "
10865 "argument. (Linux libc5 has B<Z> with this meaning. Don't use it.)"
10867 "整数変換に対応する引き数が I<size_t> か I<ssize_t> であることを示す。 (Linux "
10868 "libc5 では、これを指定するのに B<Z> を用いる。使ってはならない。)"
10871 #: build/C/man3/printf.3:544 build/C/man3/scanf.3:359
10876 #. type: Plain text
10877 #: build/C/man3/printf.3:549
10878 msgid "A following integer conversion corresponds to a I<ptrdiff_t> argument."
10879 msgstr "整数変換に対応する引き数が I<ptrdiff_t> であることを示す。"
10881 #. type: Plain text
10882 #: build/C/man3/printf.3:578
10884 "The SUSv2 knows about only the length modifiers B<h> (in B<hd>, B<hi>, "
10885 "B<ho>, B<hx>, B<hX>, B<hn>) and B<l> (in B<ld>, B<li>, B<lo>, B<lx>, B<lX>, "
10886 "B<ln>, B<lc>, B<ls>) and B<L> (in B<Le>, B<LE>, B<Lf>, B<Lg>, B<LG>)."
10888 "SUSv2 で長さ修飾子として使用できるのは、 B<h> (B<hd>, B<hi>, B<ho>, B<hx>, "
10889 "B<hX>, B<hn>), B<l> (B<ld>, B<li>, B<lo>, B<lx>, B<lX>, B<ln>, B<lc>, "
10890 "B<ls>), B<L> (B<Le>, B<LE>, B<Lf>, B<Lg>, B<LG>) だけである。"
10893 #: build/C/man3/printf.3:578
10895 msgid "The conversion specifier"
10898 #. type: Plain text
10899 #: build/C/man3/printf.3:581
10901 "A character that specifies the type of conversion to be applied. The "
10902 "conversion specifiers and their meanings are:"
10904 "適用される変換の型を指定する文字。 変換指定子とその意味は以下の通りである。"
10907 #: build/C/man3/printf.3:581
10910 msgstr "B<d>, B<i>"
10912 #. type: Plain text
10913 #: build/C/man3/printf.3:591
10915 "The I<int> argument is converted to signed decimal notation. The precision, "
10916 "if any, gives the minimum number of digits that must appear; if the "
10917 "converted value requires fewer digits, it is padded on the left with zeros. "
10918 "The default precision is 1. When 0 is printed with an explicit precision 0, "
10919 "the output is empty."
10921 "I<int> 引き数を符号付き 10 進表記に変換する。 精度指定があれば、精度で指定し"
10922 "た桁数は必ず出力される。変換後の値が 指定された桁数に足りない場合は、左側が "
10923 "0 で埋められる。 デフォルトの精度は 1 である。 0 を表示しようとした時に、明示"
10924 "的に精度として 0 が指定されていると、 出力は空文字列となる。"
10927 #: build/C/man3/printf.3:591
10929 msgid "B<o>, B<u>, B<x>, B<X>"
10930 msgstr "B<o>, B<u>, B<x>, B<X>"
10932 #. type: Plain text
10933 #: build/C/man3/printf.3:618
10935 "The I<unsigned int> argument is converted to unsigned octal (B<o>), unsigned "
10936 "decimal (B<u>), or unsigned hexadecimal (B<x> and B<X>) notation. The "
10937 "letters B<abcdef> are used for B<x> conversions; the letters B<ABCDEF> are "
10938 "used for B<X> conversions. The precision, if any, gives the minimum number "
10939 "of digits that must appear; if the converted value requires fewer digits, it "
10940 "is padded on the left with zeros. The default precision is 1. When 0 is "
10941 "printed with an explicit precision 0, the output is empty."
10943 "I<unsigned int> 引き数を、 符号なし8進数 (B<o>), 符号なし10進数 (B<u>), 符号"
10944 "なし16進数 (B<x> と B<X>) に変換する。 B<x> 変換では B<abcdef> が使用され、 "
10945 "B<X> 変換では B<ABCDEF> が使用される。 精度指定があれば、精度で指定した桁数は"
10946 "必ず出力される。変換後の値が 指定された桁数に足りない場合は、左側が 0 で埋め"
10950 #: build/C/man3/printf.3:618
10953 msgstr "B<e>, B<E>"
10955 #. type: Plain text
10956 #: build/C/man3/printf.3:637
10958 "The I<double> argument is rounded and converted in the style [-]dB<\\&."
10959 ">dddB<e>\\(+-dd where there is one digit before the decimal-point character "
10960 "and the number of digits after it is equal to the precision; if the "
10961 "precision is missing, it is taken as 6; if the precision is zero, no decimal-"
10962 "point character appears. An B<E> conversion uses the letter B<E> (rather "
10963 "than B<e>) to introduce the exponent. The exponent always contains at "
10964 "least two digits; if the value is zero, the exponent is 00."
10966 "I<double> 引き数を丸めて [-]dB<\\&.>dddB<e>\\(+-dd の形に変換する。\n"
10967 "小数点の前には一桁の数字があり、小数点以下の桁数は精度で指定された桁数\n"
10968 "になる。精度は指定されなかった場合 6 とみなされる。 精度が 0 の場合には、\n"
10969 "小数点以下は表示されない。B<E> 変換では、指数を表現するときに (B<e> で\n"
10970 "はなく) B<E> が使われる。指数部分は少なくとも 2桁表示される。つまり、\n"
10971 "指数の値が 0 の場合には、00 と表示される。"
10974 #: build/C/man3/printf.3:637
10977 msgstr "B<f>, B<F>"
10979 #. type: Plain text
10980 #: build/C/man3/printf.3:648
10982 "The I<double> argument is rounded and converted to decimal notation in the "
10983 "style [-]dddB<\\&.>ddd, where the number of digits after the decimal-point "
10984 "character is equal to the precision specification. If the precision is "
10985 "missing, it is taken as 6; if the precision is explicitly zero, no decimal-"
10986 "point character appears. If a decimal point appears, at least one digit "
10987 "appears before it."
10989 "I<double> 引き数を丸めて [-]dddB<\\&.>ddd の形の10進表現に変換する。 小数点の"
10990 "後の桁数は、精度で指定された値となる。 精度が指定されていない場合には 6 とし"
10991 "て扱われる。 精度として明示的に 0 が指定されたときには、小数点以下は表示され"
10992 "ない。 小数点を表示する際には、小数点の前に少なくとも一桁は数字が表示される。"
10994 #. type: Plain text
10995 #: build/C/man3/printf.3:659
10997 "(The SUSv2 does not know about B<F> and says that character string "
10998 "representations for infinity and NaN may be made available. The C99 "
10999 "standard specifies \"[-]inf\" or \"[-]infinity\" for infinity, and a string "
11000 "starting with \"nan\" for NaN, in the case of B<f> conversion, and \"[-]INF"
11001 "\" or \"[-]INFINITY\" or \"NAN*\" in the case of B<F> conversion.)"
11003 "(SUSv2 では、B<F> は規定されておらず、無限や NaN に関する文字列表現を\n"
11004 "行ってもよいことになっている。\n"
11005 " C99 標準では、B<f> 変換では、無限は \"[-]inf\" か \"[-]infinity\" と表示"
11007 "NaN は文字列の先頭に `nan' をつけて表示するように規定されている。\n"
11008 "B<F> 変換の場合は \"[-]INF\", \"[-]INFINITY\", \"NAN*\" と表示される。)"
11011 #: build/C/man3/printf.3:659
11014 msgstr "B<g>, B<G>"
11016 #. type: Plain text
11017 #: build/C/man3/printf.3:684
11019 "The I<double> argument is converted in style B<f> or B<e> (or B<F> or B<E> "
11020 "for B<G> conversions). The precision specifies the number of significant "
11021 "digits. If the precision is missing, 6 digits are given; if the precision "
11022 "is zero, it is treated as 1. Style B<e> is used if the exponent from its "
11023 "conversion is less than -4 or greater than or equal to the precision. "
11024 "Trailing zeros are removed from the fractional part of the result; a decimal "
11025 "point appears only if it is followed by at least one digit."
11027 "I<double> 引き数を B<f> か B<e> (B<G> 変換の場合は B<F> か B<E>) の形式に変"
11028 "換する。 精度は表示する桁数を指定する。 精度が指定されない場合は、6桁とみなさ"
11029 "れる。 精度が 0 の場合は、1桁とみなされる。 変換される値の指数が、 -4 より小"
11030 "さいか、精度以上の場合に、 B<e> 形式が使用される。 変換された結果の小数部分の"
11031 "末尾の 0 は削除される。小数点が表示されるのは、 小数点以下に数字が少なくとも"
11035 #: build/C/man3/printf.3:684
11038 msgstr "B<a>, B<A>"
11040 #. type: Plain text
11041 #: build/C/man3/printf.3:708
11043 "(C99; not in SUSv2) For B<a> conversion, the I<double> argument is converted "
11044 "to hexadecimal notation (using the letters abcdef) in the style [-]B<0x>hB<"
11045 "\\&.>hhhhB<p>\\(+-; for B<A> conversion the prefix B<0X>, the letters "
11046 "ABCDEF, and the exponent separator B<P> is used. There is one hexadecimal "
11047 "digit before the decimal point, and the number of digits after it is equal "
11048 "to the precision. The default precision suffices for an exact "
11049 "representation of the value if an exact representation in base 2 exists and "
11050 "otherwise is sufficiently large to distinguish values of type I<double>. "
11051 "The digit before the decimal point is unspecified for nonnormalized numbers, "
11052 "and nonzero but otherwise unspecified for normalized numbers."
11054 "(C99 にはあるが SUSv2 にはない) B<a> 変換では、 I<double> 引き数を\n"
11055 "(abcdef の文字を使って) [-]B<0x>hB<\\&.>hhhhB<p>\\(+- 形式の\n"
11057 "B<A> 変換では、前置文字列 B<0X>, 文字 ABCDEF, 指数文字 B<P> を用いる。\n"
11058 "小数点の前には 1 桁の 16 進数が置かれ、小数点の後ろの桁数は 精度で指定\n"
11059 "された値となる。デフォルトの精度は、その値が 2 進数で正確に表現できる\n"
11060 "場合には、その値を正確に表現できる桁数となる。それ以外の場合は、\n"
11061 "I<double> 型の値を区別するのに十分な大きさとなる。 小数点の前の数字は、\n"
11062 "正規化されていない数の場合はいくつになるか分からない。 正規化された数の\n"
11063 "場合は、 0 以外の値になるが、いくつになるかは分からない。"
11066 #: build/C/man3/printf.3:708 build/C/man3/scanf.3:459
11067 #: build/C/man3/wprintf.3:149
11072 #. type: Plain text
11073 #: build/C/man3/printf.3:726
11075 "If no B<l> modifier is present, the I<int> argument is converted to an "
11076 "I<unsigned char>, and the resulting character is written. If an B<l> "
11077 "modifier is present, the I<wint_t> (wide character) argument is converted to "
11078 "a multibyte sequence by a call to the B<wcrtomb>(3) function, with a "
11079 "conversion state starting in the initial state, and the resulting multibyte "
11080 "string is written."
11082 "B<l> 修飾子がなければ、 I<int> 引き数を I<unsigned char> に変換して、その結果"
11083 "に対応する文字を出力する。 B<l> 修飾子があれば、 I<wint_t> (ワイド文字) 引き"
11084 "数を、 B<wcrtomb>(3) 関数を初期シフト状態で呼び出してマルチバイト文字列に変"
11085 "換し、 変換されたマルチバイト文字列を出力する。"
11088 #: build/C/man3/printf.3:726 build/C/man3/scanf.3:451
11089 #: build/C/man3/wprintf.3:163
11094 #. type: Plain text
11095 #: build/C/man3/printf.3:741
11097 "If no B<l> modifier is present: The I<const char\\ *> argument is expected "
11098 "to be a pointer to an array of character type (pointer to a string). "
11099 "Characters from the array are written up to (but not including) a "
11100 "terminating null byte (\\(aq\\e0\\(aq); if a precision is specified, no more "
11101 "than the number specified are written. If a precision is given, no null "
11102 "byte need be present; if the precision is not specified, or is greater than "
11103 "the size of the array, the array must contain a terminating null byte."
11105 "B<l> 修飾子がない場合、 引き数は I<const char\\ *> 型で文字型の配列へのポイン"
11106 "タ (文字列へのポインタ) であることが 期待されている。配列中の文字は、終端の "
11107 "ヌルバイト (\\(aq\\e0\\(aq) が出てくるまで出力される (終端文字は出力されな"
11108 "い)。 精度が指定されていると、指定された字数以上は出力されない。 精度が指定さ"
11109 "れた場合には、終端バイトが存在する必要はない。 精度が指定されていなかったり、"
11110 "精度の値が配列の大きさより大きい場合には、 配列は終端のヌルバイトを含んでいな"
11113 #. type: Plain text
11114 #: build/C/man3/printf.3:768
11116 "If an B<l> modifier is present: The I<const wchar_t\\ *> argument is "
11117 "expected to be a pointer to an array of wide characters. Wide characters "
11118 "from the array are converted to multibyte characters (each by a call to the "
11119 "B<wcrtomb>(3) function, with a conversion state starting in the initial "
11120 "state before the first wide character), up to and including a terminating "
11121 "null wide character. The resulting multibyte characters are written up to "
11122 "(but not including) the terminating null byte. If a precision is specified, "
11123 "no more bytes than the number specified are written, but no partial "
11124 "multibyte characters are written. Note that the precision determines the "
11125 "number of I<bytes> written, not the number of I<wide characters> or I<screen "
11126 "positions>. The array must contain a terminating null wide character, "
11127 "unless a precision is given and it is so small that the number of bytes "
11128 "written exceeds it before the end of the array is reached."
11130 "B<l> 修飾子が指定されている場合、 引き数は I<const wchar_t\\ *> 型でワイド文"
11131 "字の配列へのポインタであることが期待されている。 配列中のワイド文字は (1文字"
11132 "毎に B<wcrtomb>(3) を呼び出して) マルチバイト文字に変換される (最初のワイド"
11133 "文字の変換の前に B<wcrtomb>() のシフト状態を初期状態に戻してから変換は行われ"
11134 "る)。 マルチバイト文字への変換は、文字列を終端するヌルワイド文字が 出てくるま"
11135 "で行われ、終端ヌルワイド文字も含めて変換される。 結果のマルチバイト文字列は、"
11136 "終端のヌルバイトが出てくるまで 出力される (終端のヌルバイトは出力されない)。 "
11137 "精度が指定された場合、指定されたバイト数以上には出力されない。 但し、マルチバ"
11138 "イト文字の一部分だけが出力されることはない。 精度は「バイト」数を指定するもの"
11139 "であり、「ワイド文字」数や 「画面での位置」を指定するものではないことに注"
11140 "意。 精度が指定されていて、さらに出力が配列の末尾に達する前に出力バイト数が "
11141 "精度の値を超える場合だけは、配列はヌルワイド文字で終端されていなくてもよい。 "
11142 "それ以外の場合は、必ず配列はヌルワイド文字で終端されていなければならない。"
11145 #: build/C/man3/printf.3:768
11150 #. type: Plain text
11151 #: build/C/man3/printf.3:774
11152 msgid "(Not in C99, but in SUSv2.) Synonym for B<lc>. Don't use."
11153 msgstr "(C99 にはないが SUSv2 にはある) B<lc> と同じ。使ってはならない。"
11156 #: build/C/man3/printf.3:774
11161 #. type: Plain text
11162 #: build/C/man3/printf.3:780
11163 msgid "(Not in C99, but in SUSv2.) Synonym for B<ls>. Don't use."
11164 msgstr "(C99 にはないが SUSv2 にはある) B<ls> と同じ。使ってはならない。"
11167 #: build/C/man3/printf.3:780 build/C/man3/scanf.3:502
11172 #. type: Plain text
11173 #: build/C/man3/printf.3:788
11175 "The I<void\\ *> pointer argument is printed in hexadecimal (as if by B<%#x> "
11178 "I<void\\ *> ポインタ引き数を (B<%#x> や B<%#lx> のような) 16 進数で出力する。"
11181 #: build/C/man3/printf.3:788 build/C/man3/scanf.3:510
11186 #. type: Plain text
11187 #: build/C/man3/printf.3:795
11189 "The number of characters written so far is stored into the integer indicated "
11190 "by the I<int\\ *> (or variant) pointer argument. No argument is converted."
11192 "これまでに出力された文字数を I<int\\ *> (または類似の型) のポインタ引き数が指"
11193 "す整数に保存する。 引き数の変換は行われない。"
11196 #: build/C/man3/printf.3:795
11201 #. type: Plain text
11202 #: build/C/man3/printf.3:801
11204 "(Glibc extension.) Print output of I<strerror(errno)>. No argument is "
11207 "(glibc での拡張) I<strerror(errno)> の出力を表示する。引き数は必要ない。"
11210 #: build/C/man3/printf.3:801 build/C/man3/scanf.3:377
11215 #. type: Plain text
11216 #: build/C/man3/printf.3:807
11218 "A \\(aq%\\(aq is written. No argument is converted. The complete "
11219 "conversion specification is \\(aq%%\\(aq."
11221 "\\(aq%\\(aq 文字を出力する。変換される引き数は無い。 変換指定全体を書くと \"%"
11224 #. type: Plain text
11225 #: build/C/man3/printf.3:822
11227 "The B<fprintf>(), B<printf>(), B<sprintf>(), B<vprintf>(), B<vfprintf>(), "
11228 "and B<vsprintf>() functions conform to C89 and C99. The B<snprintf>() and "
11229 "B<vsnprintf>() functions conform to C99."
11231 "B<fprintf>(), B<printf>(), B<sprintf>(), B<vprintf>(), B<vfprintf>(), "
11232 "B<vsprintf>() 関数は、C89 と C99 に準拠している。 B<snprintf>() と "
11233 "B<vsnprintf>() は C99 に準拠している。"
11235 #. type: Plain text
11236 #: build/C/man3/printf.3:835
11238 "Concerning the return value of B<snprintf>(), SUSv2 and C99 contradict each "
11239 "other: when B<snprintf>() is called with I<size>=0 then SUSv2 stipulates an "
11240 "unspecified return value less than 1, while C99 allows I<str> to be NULL in "
11241 "this case, and gives the return value (as always) as the number of "
11242 "characters that would have been written in case the output string has been "
11245 "B<snprintf>() の返り値を見ると、 SUSv2 と C99 標準は互いに矛盾している。 "
11246 "SUSv2 では、 B<snprintf>() が I<size>=0 で呼び出された場合、 1 未満の値を何"
11247 "か返り値とするように規定している。 一方 C99 では、このような場合 I<str> を "
11248 "NULL とし、返り値として (通常通り) 出力バッファが十分な大きさが あった場合に"
11251 #. type: Plain text
11252 #: build/C/man3/printf.3:849
11254 "Linux libc4 knows about the five C standard flags. It knows about the "
11255 "length modifiers B<h>, B<l>, B<L>, and the conversions B<c>, B<d>, B<e>, "
11256 "B<E>, B<f>, B<F>, B<g>, B<G>, B<i>, B<n>, B<o>, B<p>, B<s>, B<u>, B<x>, and "
11257 "B<X>, where B<F> is a synonym for B<f>. Additionally, it accepts B<D>, "
11258 "B<O>, and B<U> as synonyms for B<ld>, B<lo>, and B<lu>. (This is bad, and "
11259 "caused serious bugs later, when support for B<%D> disappeared.) No locale-"
11260 "dependent radix character, no thousands' separator, no NaN or infinity, no "
11261 "\"%m$\" and \"*m$\"."
11263 "Linux libc4 では、 5 つの C 標準のフラグ、 長さ修飾子 B<h>, B<l>, B<L>、変換 "
11264 "B<c>, B<d>, B<e>, B<E>, B<f>, B<F>, B<g>, B<G>, B<i>, B<n>, B<o>, B<p>, "
11265 "B<s>, B<u>, B<x>, B<X> が使える。 但し B<F> は B<f> と同義である。 また、 "
11266 "B<D>, B<O>, and B<U> を B<ld>, B<lo>, and B<lu> と同じものとして使える (これ"
11267 "はまずい仕様で、 後に B<%D> の対応が打ち切られた時に深刻なバグを 引き起こし"
11268 "た)。ロケール依存の小数点、1000 区切り、 NaN と無限、 \"%m$\" と \"*m$\" は使"
11271 #. type: Plain text
11272 #: build/C/man3/printf.3:860
11274 "Linux libc5 knows about the five C standard flags and the \\(aq flag, "
11275 "locale, \"%m$\" and \"*m$\". It knows about the length modifiers B<h>, "
11276 "B<l>, B<L>, B<Z>, and B<q>, but accepts B<L> and B<q> both for I<long "
11277 "double> and for I<long long int> (this is a bug). It no longer recognizes "
11278 "B<F>, B<D>, B<O>, and B<U>, but adds the conversion character B<m>, which "
11279 "outputs I<strerror(errno)>."
11281 "Linux libc5 では、 5 つの C 標準のフラグと \\(aq フラグ、ロケール、 \"%m$\" "
11282 "と \"*m$\" が使える。 また、長さ修飾子 B<h>, B<l>, B<L>, B<Z>, iand B<q> が使"
11283 "えるが、 B<L> と B<q> は両方とも I<long double> と I<long long int> に対応し"
11284 "ている (これはバグである)。 現在では変換 B<F>, B<D>, B<O>, B<U> は認識されな"
11285 "いが、変換文字 B<m> が追加された。これは I<strerror(errno)> を出力するもので"
11288 #. type: Plain text
11289 #: build/C/man3/printf.3:862
11290 msgid "glibc 2.0 adds conversion characters B<C> and B<S>."
11291 msgstr "glibc 2.0 では、変換文字 B<C> と B<S> が追加された。"
11293 #. type: Plain text
11294 #: build/C/man3/printf.3:865
11296 "glibc 2.1 adds length modifiers B<hh>, B<j>, B<t>, and B<z> and conversion "
11297 "characters B<a> and B<A>."
11299 "glibc 2.1 では、長さ修飾子 B<hh>, B<j>, B<t>, B<z> と変換文字 B<a>, B<A> が追"
11302 #. type: Plain text
11303 #: build/C/man3/printf.3:868
11305 "glibc 2.2 adds the conversion character B<F> with C99 semantics, and the "
11306 "flag character B<I>."
11308 "glibc 2.2 では、 C99 で規定された意味での変換文字 B<F> と フラグ文字 B<I> が"
11311 #. type: Plain text
11312 #: build/C/man3/printf.3:870
11313 msgid "Some programs imprudently rely on code such as the following"
11315 "テキストを I<buf> に追加するのに、軽率にも次のようなコードを使っているプログ"
11318 #. type: Plain text
11319 #: build/C/man3/printf.3:872
11321 msgid " sprintf(buf, \"%s some further text\", buf);\n"
11322 msgstr " sprintf(buf, \"%s some further text\", buf);\n"
11324 #. http://sourceware.org/bugzilla/show_bug.cgi?id=7075
11325 #. type: Plain text
11326 #: build/C/man3/printf.3:888
11328 "to append text to I<buf>. However, the standards explicitly note that the "
11329 "results are undefined if source and destination buffers overlap when calling "
11330 "B<sprintf>(), B<snprintf>(), B<vsprintf>(), and B<vsnprintf>(). Depending "
11331 "on the version of B<gcc>(1) used, and the compiler options employed, calls "
11332 "such as the above will B<not> produce the expected results."
11334 "しかしながら、標準規格では、 B<sprintf>(), B<snprintf>(), B<vsprintf>(), "
11335 "B<vsnprintf>() の呼び出しにおいて、コピー元とコピー先のバッファが重なってい"
11336 "た場合の 結果は不定である、と明記されている。 使用する B<gcc>(1) のバージョ"
11337 "ンや指定したコンパイラのオプション次第では、 上記のような呼び出しで、期待した"
11341 #. UNIX V7 defines the three routines
11345 #. and has the flag \-, the width or precision *, the length modifier l,
11346 #. and the conversions doxfegcsu, and also D,O,U,X as synonyms for ld,lo,lu,lx.
11347 #. This is still true for 2.9.1BSD, but 2.10BSD has the flags
11348 #. #, + and <space> and no longer mentions D,O,U,X.
11351 #. .BR vfprintf (),
11352 #. .BR vsprintf (),
11353 #. and warns not to use D,O,U,X.
11354 #. 4.3BSD Reno has the flag 0, the length modifiers h and L,
11355 #. and the conversions n, p, E, G, X (with current meaning)
11356 #. and deprecates D,O,U.
11357 #. 4.4BSD introduces the functions
11360 #. .BR vsnprintf (),
11361 #. and the length modifier q.
11362 #. FreeBSD also has functions
11365 #. .BR vasprintf (),
11366 #. that allocate a buffer large enough for
11368 #. In glibc there are functions
11372 #. that print to a file descriptor instead of a stream.
11373 #. type: Plain text
11374 #: build/C/man3/printf.3:930
11376 "The glibc implementation of the functions B<snprintf>() and B<vsnprintf>() "
11377 "conforms to the C99 standard, that is, behaves as described above, since "
11378 "glibc version 2.1. Until glibc 2.0.6 they would return -1 when the output "
11381 "glibc の B<snprintf>() と B<vsnprintf>() の実装は、バージョン 2.1 以降は "
11382 "C99 標準に準拠しており、 上記の通りの動作をする。 glibc 2.0.6 までは、出力が"
11383 "切り詰められた場合は -1 を返す。"
11385 #. type: Plain text
11386 #: build/C/man3/printf.3:947
11388 "Because B<sprintf>() and B<vsprintf>() assume an arbitrarily long string, "
11389 "callers must be careful not to overflow the actual space; this is often "
11390 "impossible to assure. Note that the length of the strings produced is "
11391 "locale-dependent and difficult to predict. Use B<snprintf>() and "
11392 "B<vsnprintf>() instead (or B<asprintf>(3) and B<vasprintf>(3))."
11394 "B<sprintf>() と B<vsprintf>() は勝手に十分に長い文字列領域があると仮定する"
11395 "ので、呼び出し側は 実際の領域からあふれないように注意しなければならない。 し"
11396 "かし、これを保証することが不可能な場合が多い。 生成される文字列の長さはロケー"
11397 "ル依存であり、予測が難しいことに注意。 代わりに B<snprintf>() と "
11398 "B<vsnprintf>() (または B<asprintf>(3) と B<vasprintf>(3)) を使うこと。"
11400 #. type: Plain text
11401 #: build/C/man3/printf.3:960
11403 "Linux libc4.[45] does not have a B<snprintf>(), but provides a libbsd that "
11404 "contains an B<snprintf>() equivalent to B<sprintf>(), that is, one that "
11405 "ignores the I<size> argument. Thus, the use of B<snprintf>() with early "
11406 "libc4 leads to serious security problems."
11408 "Linux libc4.[45] には B<snprintf>() はないが、 libbsd が提供されており、 そ"
11409 "の中には B<sprintf>() と等価な (つまり I<size> 引き数を無視する) "
11410 "B<snprintf>() がある。 したがって、初期の libc4 で B<snprintf>() を使うと、"
11411 "深刻なセキュリティ問題を引き起こすことがある。"
11414 #. Some floating-point conversions under early libc4
11415 #. caused memory leaks.
11416 #. type: Plain text
11417 #: build/C/man3/printf.3:974
11419 "Code such as B<printf(>I<foo>B<);> often indicates a bug, since I<foo> may "
11420 "contain a % character. If I<foo> comes from untrusted user input, it may "
11421 "contain B<%n>, causing the B<printf>() call to write to memory and creating "
11424 "B<printf(>I<foo>B<);> のようなコードはしばしばバグを引き起こす。 なぜなら "
11425 "I<foo> に % 文字が含まれてるかもしれないからである。 I<foo> が信頼できない"
11426 "ユーザー入力から作られている場合には、 その中に B<%n> が含まれていることがあ"
11427 "り、 B<printf>() 呼び出し時にメモリへの書き込みが起こり、 セキュリティーホー"
11430 #. type: Plain text
11431 #: build/C/man3/printf.3:978
11432 msgid "To print I<Pi> to five decimal places:"
11433 msgstr "I<Pi> を 5 桁で出力する。"
11435 #. type: Plain text
11436 #: build/C/man3/printf.3:984
11439 "#include E<lt>math.hE<gt>\n"
11440 "#include E<lt>stdio.hE<gt>\n"
11441 "fprintf(stdout, \"pi = %.5f\\en\", 4 * atan(1.0));\n"
11443 "#include E<lt>math.hE<gt>\n"
11444 "#include E<lt>stdio.hE<gt>\n"
11445 "fprintf(stdout, \"pi = %.5f\\en\", 4 * atan(1.0));\n"
11447 #. type: Plain text
11448 #: build/C/man3/printf.3:993
11450 "To print a date and time in the form \"Sunday, July 3, 10:02\", where "
11451 "I<weekday> and I<month> are pointers to strings:"
11453 "日付と時間を \"Sunday, July 3, 10:02\" の形式で出力する。 (I<weekday> と "
11454 "I<month> は文字列へのポインタである)"
11456 #. type: Plain text
11457 #: build/C/man3/printf.3:999
11460 "#include E<lt>stdio.hE<gt>\n"
11461 "fprintf(stdout, \"%s, %s %d, %.2d:%.2d\\en\",\n"
11462 " weekday, month, day, hour, min);\n"
11464 "#include E<lt>stdio.hE<gt>\n"
11465 "fprintf(stdout, \"%s, %s %d, %.2d:%.2d\\en\",\n"
11466 "\tweekday, month, day, hour, min);\n"
11468 #. type: Plain text
11469 #: build/C/man3/printf.3:1005
11471 "Many countries use the day-month-year order. Hence, an internationalized "
11472 "version must be able to print the arguments in an order specified by the "
11475 "日 - 月 - 年 の順序で表示を行う国も多い。 従って、国際版では書式で指定された"
11476 "順番で 引き数を表示できなければならない。"
11478 #. type: Plain text
11479 #: build/C/man3/printf.3:1011
11482 "#include E<lt>stdio.hE<gt>\n"
11483 "fprintf(stdout, format,\n"
11484 " weekday, month, day, hour, min);\n"
11486 "#include E<lt>stdio.hE<gt>\n"
11487 "fprintf(stdout, format,\n"
11488 "\tweekday, month, day, hour, min);\n"
11490 #. type: Plain text
11491 #: build/C/man3/printf.3:1018
11493 "where I<format> depends on locale, and may permute the arguments. With the "
11496 "I<format> はロケールに依存しており、引き数の順番を変えることもできる。 "
11499 #. type: Plain text
11500 #: build/C/man3/printf.3:1022
11502 msgid "\"%1$s, %3$d. %2$s, %4$d:%5$.2d\\en\"\n"
11503 msgstr "\"%1$s, %3$d. %2$s, %4$d:%5$.2d\\en\"\n"
11505 #. type: Plain text
11506 #: build/C/man3/printf.3:1026
11507 msgid "one might obtain \"Sonntag, 3. Juli, 10:02\"."
11508 msgstr "であれば、 \"Sonntag, 3. Juli, 10:02\" という結果になる。"
11510 #. type: Plain text
11511 #: build/C/man3/printf.3:1029
11513 "To allocate a sufficiently large string and print into it (code correct for "
11514 "both glibc 2.0 and glibc 2.1):"
11516 "十分に大きな文字列領域を確保して、そこにメッセージを格納するには (glibc 2.0 "
11517 "と glibc 2.1 の両方で正しく動作するコード):"
11519 #. type: Plain text
11520 #: build/C/man3/printf.3:1034
11523 "#include E<lt>stdio.hE<gt>\n"
11524 "#include E<lt>stdlib.hE<gt>\n"
11525 "#include E<lt>stdarg.hE<gt>\n"
11527 "#include E<lt>stdio.hE<gt>\n"
11528 "#include E<lt>stdlib.hE<gt>\n"
11529 "#include E<lt>stdarg.hE<gt>\n"
11531 #. type: Plain text
11532 #: build/C/man3/printf.3:1042
11536 "make_message(const char *fmt, ...)\n"
11539 " int size = 100; /* Guess we need no more than 100 bytes */\n"
11544 "make_message(const char *fmt, ...)\n"
11547 " int size = 100; /* Guess we need no more than 100 bytes */\n"
11551 #. type: Plain text
11552 #: build/C/man3/printf.3:1046
11555 " p = malloc(size);\n"
11556 " if (p == NULL)\n"
11559 " p = malloc(size);\n"
11560 " if (p == NULL)\n"
11563 #. type: Plain text
11564 #: build/C/man3/printf.3:1048
11566 msgid " while (1) {\n"
11567 msgstr " while (1) {\n"
11569 #. type: Plain text
11570 #: build/C/man3/printf.3:1050
11572 msgid " /* Try to print in the allocated space */\n"
11573 msgstr " /* Try to print in the allocated space */\n"
11575 #. type: Plain text
11576 #: build/C/man3/printf.3:1054
11579 " va_start(ap, fmt);\n"
11580 " n = vsnprintf(p, size, fmt, ap);\n"
11583 " va_start(ap, fmt);\n"
11584 " n = vsnprintf(p, size, fmt, ap);\n"
11587 #. type: Plain text
11588 #: build/C/man3/printf.3:1056
11590 msgid " /* Check error code */\n"
11591 msgstr " /* Check error code */\n"
11593 #. type: Plain text
11594 #: build/C/man3/printf.3:1061
11597 " if (n E<lt> 0) {\n"
11602 " if (n E<lt> 0) {\n"
11607 #. type: Plain text
11608 #: build/C/man3/printf.3:1063
11610 msgid " /* If that worked, return the string */\n"
11611 msgstr " /* If that worked, return the string */\n"
11613 #. type: Plain text
11614 #: build/C/man3/printf.3:1066
11617 " if (n E<lt> size)\n"
11620 " if (n E<lt> size)\n"
11623 #. type: Plain text
11624 #: build/C/man3/printf.3:1068
11626 msgid " /* Else try again with more space */\n"
11627 msgstr " /* Else try again with more space */\n"
11629 #. type: Plain text
11630 #: build/C/man3/printf.3:1070
11632 msgid " size = n + 1; /* Precisely what is needed */\n"
11633 msgstr " size = n + 1; /* Precisely what is needed */\n"
11635 #. type: Plain text
11636 #: build/C/man3/printf.3:1081
11639 " np = realloc(p, size);\n"
11640 " if (np == NULL) {\n"
11649 " np = realloc(p, size);\n"
11650 " if (np == NULL) {\n"
11659 #. type: Plain text
11660 #: build/C/man3/printf.3:1085
11662 "If truncation occurs in glibc versions prior to 2.0.6, this is treated as an "
11663 "error instead of being handled gracefully."
11665 "バージョン 2.0.6 より前の glibc で切り詰めが起こった場合、切り詰めは適切に処"
11668 #. type: Plain text
11669 #: build/C/man3/printf.3:1094
11671 "B<printf>(1), B<asprintf>(3), B<dprintf>(3), B<scanf>(3), B<setlocale>(3), "
11672 "B<wcrtomb>(3), B<wprintf>(3), B<locale>(5)"
11674 "B<printf>(1), B<asprintf>(3), B<dprintf>(3), B<scanf>(3), B<setlocale>(3), "
11675 "B<wcrtomb>(3), B<wprintf>(3), B<locale>(5)"
11678 #: build/C/man3/puts.3:26
11684 #: build/C/man3/puts.3:26 build/C/man3/scanf.3:52
11687 msgstr "2014-01-11"
11689 #. type: Plain text
11690 #: build/C/man3/puts.3:29
11691 msgid "fputc, fputs, putc, putchar, puts - output of characters and strings"
11692 msgstr "fputc, fputs, putc, putchar, puts - 文字と文字列の出力"
11694 #. type: Plain text
11695 #: build/C/man3/puts.3:34
11697 msgid "B<int fputc(int >I<c>B<, FILE *>I<stream>B<);>\n"
11698 msgstr "B<int fputc(int >I<c>B<, FILE *>I<stream>B<);>\n"
11700 #. type: Plain text
11701 #: build/C/man3/puts.3:36
11703 msgid "B<int fputs(const char *>I<s>B<, FILE *>I<stream>B<);>\n"
11704 msgstr "B<int fputs(const char *>I<s>B<, FILE *>I<stream>B<);>\n"
11706 #. type: Plain text
11707 #: build/C/man3/puts.3:38
11709 msgid "B<int putc(int >I<c>B<, FILE *>I<stream>B<);>\n"
11710 msgstr "B<int putc(int >I<c>B<, FILE *>I<stream>B<);>\n"
11712 #. type: Plain text
11713 #: build/C/man3/puts.3:40
11715 msgid "B<int putchar(int >I<c>B<);>\n"
11716 msgstr "B<int putchar(int >I<c>B<);>\n"
11718 #. type: Plain text
11719 #: build/C/man3/puts.3:42
11721 msgid "B<int puts(const char *>I<s>B<);>\n"
11722 msgstr "B<int puts(const char *>I<s>B<);>\n"
11724 #. type: Plain text
11725 #: build/C/man3/puts.3:51
11727 "B<fputc>() writes the character I<c>, cast to an I<unsigned char>, to "
11730 "B<fputc>() は、キャラクタ I<c> を I<unsigned char> にキャストし、 I<stream> "
11733 #. type: Plain text
11734 #: build/C/man3/puts.3:58
11736 "B<fputs>() writes the string I<s> to I<stream>, without its terminating "
11737 "null byte (\\(aq\\e0\\(aq)."
11739 "B<fputs>() は、文字列 I<s> を I<stream> に書き込む。 文字列終端のヌルバイト "
11740 "(\\(aq\\e0\\(aq) は出力しない。"
11742 #. type: Plain text
11743 #: build/C/man3/puts.3:65
11745 "B<putc>() is equivalent to B<fputc>() except that it may be implemented as "
11746 "a macro which evaluates I<stream> more than once."
11748 "B<putc>() は、 I<stream> を一度以上評価するマクロとして実装されているかも知"
11749 "れないという点を除き、 B<fputc>() と同じである。"
11751 #. type: Plain text
11752 #: build/C/man3/puts.3:69
11753 msgid "B<putchar(>I<c>B<);> is equivalent to B<putc(>I<c>B<, >I<stdout>B<).>"
11754 msgstr "B<putchar(>I<c>B<);> は、 B<putc(>I<c>B<,>I<stdout>B<)> と同じである。"
11756 #. type: Plain text
11757 #: build/C/man3/puts.3:76
11758 msgid "B<puts>() writes the string I<s> and a trailing newline to I<stdout>."
11759 msgstr "B<puts>() は、文字列 I<s> と改行を I<stdout> に書き込む。"
11761 #. type: Plain text
11762 #: build/C/man3/puts.3:81
11764 "Calls to the functions described here can be mixed with each other and with "
11765 "calls to other output functions from the I<stdio> library for the same "
11768 "ここで説明された関数はお互いに混在して使用することができ、また、 I<stdio> ラ"
11769 "イブラリに含まれる他の出力関数を同じ出力ストリームに対して 呼び出す事が出来"
11772 #. type: Plain text
11773 #: build/C/man3/puts.3:96
11775 "B<fputc>(), B<putc>() and B<putchar>() return the character written as an "
11776 "I<unsigned char> cast to an I<int> or B<EOF> on error."
11778 "B<fputc>(), B<putc>(), B<putchar>() は I<unsigned char> として書き込まれた文"
11779 "字を I<int> にキャストして返す。 エラーが発生した場合は B<EOF> を返す。"
11781 #. type: Plain text
11782 #: build/C/man3/puts.3:103
11784 "B<puts>() and B<fputs>() return a nonnegative number on success, or B<EOF> "
11787 "B<puts>() と B<fputs>() は、成功すると負ではない数を、エラーが発生した場合"
11790 #. type: Plain text
11791 #: build/C/man3/puts.3:112
11793 "It is not advisable to mix calls to output functions from the I<stdio> "
11794 "library with low-level calls to B<write>(2) for the file descriptor "
11795 "associated with the same output stream; the results will be undefined and "
11796 "very probably not what you want."
11798 "I<stdio> ライブラリに含まれる出力関数と、同じ出力ストリームに結びつけられた "
11799 "ファイルディスクリプタに対する B<write>(2) の低レベル呼び出しを混在して 使用"
11800 "することは賢明ではない。 その結果は定義されておらず、望む結果が得られない可能"
11803 #. type: Plain text
11804 #: build/C/man3/puts.3:124
11806 "B<write>(2), B<ferror>(3), B<fgets>(3), B<fopen>(3), B<fputwc>(3), "
11807 "B<fputws>(3), B<fseek>(3), B<fwrite>(3), B<putwchar>(3), B<scanf>(3), "
11808 "B<unlocked_stdio>(3)"
11810 "B<write>(2), B<ferror>(3), B<fgets>(3), B<fopen>(3), B<fputwc>(3), "
11811 "B<fputws>(3), B<fseek>(3), B<fwrite>(3), B<putwchar>(3), B<scanf>(3), "
11812 "B<unlocked_stdio>(3)"
11815 #: build/C/man2/read.2:35
11821 #: build/C/man2/read.2:35 build/C/man2/write.2:39
11824 msgstr "2014-05-04"
11826 #. type: Plain text
11827 #: build/C/man2/read.2:38
11828 msgid "read - read from a file descriptor"
11829 msgstr "read - ファイルディスクリプタから読み込む"
11831 #. type: Plain text
11832 #: build/C/man2/read.2:43
11834 msgid "B<ssize_t read(int >I<fd>B<, void *>I<buf>B<, size_t >I<count>B<);>\n"
11835 msgstr "B<ssize_t read(int >I<fd>B<, void *>I<buf>B<, size_t >I<count>B<);>\n"
11837 #. type: Plain text
11838 #: build/C/man2/read.2:52
11840 "B<read>() attempts to read up to I<count> bytes from file descriptor I<fd> "
11841 "into the buffer starting at I<buf>."
11843 "B<read>() はファイルディスクリプタ (file descriptor) I<fd> から最大 "
11844 "I<count> バイトを I<buf> で始まるバッファーへ読み込もうとする。"
11846 #. type: Plain text
11847 #: build/C/man2/read.2:60
11849 "On files that support seeking, the read operation commences at the current "
11850 "file offset, and the file offset is incremented by the number of bytes "
11851 "read. If the current file offset is at or past the end of file, no bytes "
11852 "are read, and B<read>() returns zero."
11854 "seek に対応しているファイルでは、read は現在のファイルオフセットから行われ、"
11855 "ファイルオフセットは読み込んだバイト数分だけ進められる。現在のファイルオフ"
11856 "セットがファイル末尾かそれより先の場合は、読み出しは行われず、 B<read>() は "
11859 #. type: Plain text
11860 #: build/C/man2/read.2:75
11862 "If I<count> is zero, B<read>() I<may> detect the errors described below. "
11863 "In the absence of any errors, or if B<read>() does not check for errors, a "
11864 "B<read>() with a I<count> of 0 returns zero and has no other effects."
11866 "I<count> が 0 の場合、 B<read>() は以下で説明するエラーを検出するI<場合がある"
11867 ">。 どのエラーもなかった場合、もしくは B<read>() がエラーのチェックを行わない"
11868 "場合、 I<count> が 0 で呼び出された B<read>() は 0 を返し、何も行わない。"
11870 #. type: Plain text
11871 #: build/C/man2/read.2:81
11872 msgid "If I<count> is greater than B<SSIZE_MAX>, the result is unspecified."
11873 msgstr "I<count> が B<SSIZE_MAX> より大きければ、結果は規定できない。"
11875 #. type: Plain text
11876 #: build/C/man2/read.2:95
11878 "On success, the number of bytes read is returned (zero indicates end of "
11879 "file), and the file position is advanced by this number. It is not an error "
11880 "if this number is smaller than the number of bytes requested; this may "
11881 "happen for example because fewer bytes are actually available right now "
11882 "(maybe because we were close to end-of-file, or because we are reading from "
11883 "a pipe, or from a terminal), or because B<read>() was interrupted by a "
11884 "signal. On error, -1 is returned, and I<errno> is set appropriately. In "
11885 "this case, it is left unspecified whether the file position (if any) changes."
11887 "成功した場合、読み込んだバイト数を返す (0 はファイルの終りを意味する)。 ファ"
11888 "イル位置はこの数だけ進められる。 この数が要求した数より小さかったとしてもエ"
11889 "ラーではない; 例えば今すぐには実際にそれだけの数しかない場合 (ファイルの最後"
11890 "に近いのかも しれないし、パイプ (pipe) や端末 (terminal) から読み込んでいるか"
11891 "もしれない) や B<read>() がシグナル (signal) によって割り込まれた場合にこれ"
11892 "は起こりえる。 エラーの場合は、-1 が返され、 I<errno> が適切に設定される。こ"
11893 "の場合はファイル位置が変更されるかどうかは 不定である。"
11896 #: build/C/man2/read.2:96 build/C/man3/scanf.3:548 build/C/man2/write.2:108
11901 #. type: Plain text
11902 #: build/C/man2/read.2:103
11904 "The file descriptor I<fd> refers to a file other than a socket and has been "
11905 "marked nonblocking (B<O_NONBLOCK>), and the read would block."
11907 "ファイルディスクリプタ I<fd> がソケット以外のファイルを参照していて、 非停止 "
11908 "(nonblocking) モード (B<O_NONBLOCK>) に設定されており、読み込みを行うと停止"
11912 #: build/C/man2/read.2:103 build/C/man2/write.2:115
11914 msgid "B<EAGAIN> or B<EWOULDBLOCK>"
11915 msgstr "B<EAGAIN> または B<EWOULDBLOCK>"
11917 #. Actually EAGAIN on Linux
11918 #. type: Plain text
11919 #: build/C/man2/read.2:114
11921 "The file descriptor I<fd> refers to a socket and has been marked nonblocking "
11922 "(B<O_NONBLOCK>), and the read would block. POSIX.1-2001 allows either error "
11923 "to be returned for this case, and does not require these constants to have "
11924 "the same value, so a portable application should check for both "
11927 "ファイルディスクリプタ I<fd> がソケットを参照していて、非停止 (nonblocking) "
11928 "モード (B<O_NONBLOCK>) に設定されており、読み込みを行うと停止する状況にあ"
11929 "る。 POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 これ"
11930 "ら 2 つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なア"
11931 "プリケーションでは、両方の可能性を 確認すべきである。"
11933 #. type: Plain text
11934 #: build/C/man2/read.2:118
11935 msgid "I<fd> is not a valid file descriptor or is not open for reading."
11937 "I<fd> が有効なファイルディスクリプタでないか、読み込みのために オープン "
11940 #. type: Plain text
11941 #: build/C/man2/read.2:122 build/C/man2/write.2:145
11942 msgid "I<buf> is outside your accessible address space."
11943 msgstr "I<buf> がアクセス可能なアドレス空間の外にある。"
11945 #. type: Plain text
11946 #: build/C/man2/read.2:126
11948 "The call was interrupted by a signal before any data was read; see "
11951 "何のデータも読み込まないうちにシグナルに割り込まれた。 B<signal>(7) 参照。"
11953 #. type: Plain text
11954 #: build/C/man2/read.2:137
11956 "I<fd> is attached to an object which is unsuitable for reading; or the file "
11957 "was opened with the B<O_DIRECT> flag, and either the address specified in "
11958 "I<buf>, the value specified in I<count>, or the current file offset is not "
11959 "suitably aligned."
11961 "I<fd> は読み込みに適していないオブジェクトを参照している。 もしくは、ファイル"
11962 "が B<O_DIRECT> フラグを指定してオープンされているが、 I<buf> に指定されたアド"
11963 "レス、 I<count> に指定された値、 現在のファイルオフセットのいずれかの アライ"
11966 #. type: Plain text
11967 #: build/C/man2/read.2:147
11969 "I<fd> was created via a call to B<timerfd_create>(2) and the wrong size "
11970 "buffer was given to B<read>(); see B<timerfd_create>(2) for further "
11973 "I<fd> が B<timerfd_create>(2) の呼び出しで作成されたが、 B<read>() に間違っ"
11974 "たサイズのバッファが渡された。 さらなる情報は B<timerfd_create>(2) を参照の"
11977 #. type: Plain text
11978 #: build/C/man2/read.2:158
11980 "I/O error. This will happen for example when the process is in a background "
11981 "process group, tries to read from its controlling terminal, and either it is "
11982 "ignoring or blocking B<SIGTTIN> or its process group is orphaned. It may "
11983 "also occur when there is a low-level I/O error while reading from a disk or "
11986 "I/O エラー。これは例えばプロセスがバックグランド・プロセスグループで、それを"
11987 "制御している端末から読み込もうとし、 B<SIGTTIN> が無視 (ignore) または禁止 "
11988 "(blocking) されている場合や、 そのプロセスグループが孤立 (orphan) している場"
11989 "合に起こる。 またディスクやテープを読んでいる時に低レベル I/O エラー が発生し"
11992 #. type: Plain text
11993 #: build/C/man2/read.2:162
11994 msgid "I<fd> refers to a directory."
11995 msgstr "I<fd> がディレクトリを参照している。"
11997 #. type: Plain text
11998 #: build/C/man2/read.2:173
12000 "Other errors may occur, depending on the object connected to I<fd>. POSIX "
12001 "allows a B<read>() that is interrupted after reading some data to return -1 "
12002 "(with I<errno> set to B<EINTR>) or to return the number of bytes already "
12005 "I<fd> が接続しているオブジェクトによっては他のエラーも起こりえる。 POSIX で"
12006 "は、 いくらかのデータを読んだ後に割り込みが起こった場合、 B<read>() は "
12007 "(I<errno> に B<EINTR> を設定して) -1 を返してもよいし、 既に読み込んだバイト"
12010 #. type: Plain text
12011 #: build/C/man2/read.2:187
12013 "On NFS filesystems, reading small amounts of data will update the timestamp "
12014 "only the first time, subsequent calls may not do so. This is caused by "
12015 "client side attribute caching, because most if not all NFS clients leave "
12016 "st_atime (last file access time) updates to the server and client side "
12017 "reads satisfied from the client's cache will not cause st_atime updates on "
12018 "the server as there are no server side reads. UNIX semantics can be "
12019 "obtained by disabling client side attribute caching, but in most situations "
12020 "this will substantially increase server load and decrease performance."
12022 "NFS において。少量のデータを読み込む場合、最初の時のみにタイム スタンプが更新"
12023 "され、続くコールでは更新されないだろう。 これはクライアント側で属性のキャッシ"
12024 "ングを行なうためである。 なぜならば、もし全ての NFS クライアントが st_atime "
12025 "(最終ファイルアクセス時刻) の更新をサーバーに送らず、クライアント側でキャッ"
12026 "シュを読むことに満足して いれば、サーバー側での read は発生しないので "
12027 "st_atime の更新は行なわれからだ。 UNIX の方式では、クライアント側の属性の"
12028 "キャッシングを無効にすることで、 これを得ることができる。しかしほとんどの状況"
12029 "ではこれは続くサーバーの 負荷を増加させ、パフォーマンスの低下をもたらす。"
12031 #. type: Plain text
12032 #: build/C/man2/read.2:190 build/C/man2/write.2:214
12034 "According to POSIX.1-2008/SUSv4 Section XSI 2.9.7 (\"Thread Interactions "
12035 "with Regular File Operations\"):"
12038 #. type: Plain text
12039 #: build/C/man2/read.2:195 build/C/man2/write.2:219
12041 "All of the following functions shall be atomic with respect to each other in "
12042 "the effects specified in POSIX.1-2008 when they operate on regular files or "
12043 "symbolic links: ..."
12047 #. http://thread.gmane.org/gmane.linux.kernel/1649458
12048 #. From: Michael Kerrisk (man-pages <mtk.manpages <at> gmail.com>
12049 #. Subject: Update of file offset on write() etc. is non-atomic with I/O
12050 #. Date: 2014-02-17 15:41:37 GMT
12051 #. Newsgroups: gmane.linux.kernel, gmane.linux.file-systems
12052 #. commit 9c225f2655e36a470c4f58dbbc99244c5fc7f2d4
12053 #. Author: Linus Torvalds <torvalds@linux-foundation.org>
12054 #. Date: Mon Mar 3 09:36:58 2014 -0800
12055 #. vfs: atomic f_pos accesses as per POSIX
12056 #. type: Plain text
12057 #: build/C/man2/read.2:226
12059 "Among the APIs subsequently listed are B<read>() and B<readv>(2). And "
12060 "among the effects that should be atomic across threads (and processes) are "
12061 "updates of the file offset. However, on Linux before version 3.14, this was "
12062 "not the case: if two processes that share an open file description (see "
12063 "B<open>(2)) perform a B<read>() (or B<readv>(2)) at the same time, then "
12064 "the I/O operations were not atomic with respect updating the file offset, "
12065 "with the result that the reads in the two processes might (incorrectly) "
12066 "overlap in the blocks of data that they obtained. This problem was fixed in "
12070 #. type: Plain text
12071 #: build/C/man2/read.2:239
12073 "B<close>(2), B<fcntl>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), B<pread>(2), "
12074 "B<readdir>(2), B<readlink>(2), B<readv>(2), B<select>(2), B<write>(2), "
12077 "B<close>(2), B<fcntl>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), B<pread>(2), "
12078 "B<readdir>(2), B<readlink>(2), B<readv>(2), B<select>(2), B<write>(2), "
12082 #: build/C/man2/readlink.2:44
12087 #. type: Plain text
12088 #: build/C/man2/readlink.2:47
12089 msgid "readlink, readlinkat - read value of a symbolic link"
12090 msgstr "readlink, readlinkat - シンボリックリンクの値を読む"
12092 #. type: Plain text
12093 #: build/C/man2/readlink.2:53
12095 msgid "B<ssize_t readlink(const char *>I<pathname>B<, char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
12096 msgstr "B<ssize_t readlink(const char *>I<pathname>B<, char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
12098 #. type: Plain text
12099 #: build/C/man2/readlink.2:59
12102 "B<ssize_t readlinkat(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
12103 "B< char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
12105 "B<ssize_t readlinkat(int >I<dirfd>B<, const char *>I<pathname>B<,>\n"
12106 "B< char *>I<buf>B<, size_t >I<bufsiz>B<);>\n"
12108 #. type: Plain text
12109 #: build/C/man2/readlink.2:68
12110 msgid "B<readlink>():"
12111 msgstr "B<readlink>():"
12113 #. type: Plain text
12114 #: build/C/man2/readlink.2:71 build/C/man2/symlink.2:59
12116 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12117 "_XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
12119 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
12120 "_XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
12122 #. type: Plain text
12123 #: build/C/man2/readlink.2:74
12124 msgid "B<readlinkat>():"
12125 msgstr "B<readlinkat>():"
12127 #. type: Plain text
12128 #: build/C/man2/readlink.2:100
12130 "B<readlink>() places the contents of the symbolic link I<pathname> in the "
12131 "buffer I<buf>, which has size I<bufsiz>. B<readlink>() does not append a "
12132 "null byte to I<buf>. It will truncate the contents (to a length of "
12133 "I<bufsiz> characters), in case the buffer is too small to hold all of the "
12136 "B<readlink>() は I<pathname> で与えられたシンボリックリンクの内容を I<buf> "
12137 "バッファーへ格納する、 I<buf> のサイズは I<bufsiz> である。 B<readlink>() は"
12138 "ヌルバイトを I<buf> に追加しない。 その内容全てを格納するのにバッファーが小さ"
12139 "過ぎる場合は、 (I<bufsiz> バイトの長さに) 内容を切り詰める。"
12142 #: build/C/man2/readlink.2:100
12144 msgid "readlinkat()"
12145 msgstr "readlinkat()"
12147 #. type: Plain text
12148 #: build/C/man2/readlink.2:106
12150 "The B<readlinkat>() system call operates in exactly the same way as "
12151 "B<readlink>(), except for the differences described here."
12153 "B<readlinkat>() システムコールは B<readlink>() と全く同様に動作するが、以下で"
12156 #. type: Plain text
12157 #: build/C/man2/readlink.2:116
12159 "If the pathname given in I<pathname> is relative, then it is interpreted "
12160 "relative to the directory referred to by the file descriptor I<dirfd> "
12161 "(rather than relative to the current working directory of the calling "
12162 "process, as is done by B<readlink>() for a relative pathname)."
12164 "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
12165 "リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
12166 "(B<readlink>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
12167 "ワーキングディレクトリに対する相対パスではない)。"
12169 #. type: Plain text
12170 #: build/C/man2/readlink.2:128
12172 "If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, "
12173 "then I<pathname> is interpreted relative to the current working directory of "
12174 "the calling process (like B<readlink>())."
12176 "I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
12177 "の場合、 (B<readlink>() と同様に) I<pathname> は呼び出したプロセスのカレント"
12178 "ワーキングディレクトリに対する相対パスと解釈される。"
12180 #. commit 65cfc6722361570bfe255698d9cd4dccaf47570d
12181 #. type: Plain text
12182 #: build/C/man2/readlink.2:148
12184 "Since Linux 2.6.39, I<pathname> can be an empty string, in which case the "
12185 "call operates on the file referred to by I<dirfd> (which may have been "
12186 "obtained using the B<open>(2) B<O_PATH> flag). In this case, I<dirfd> can "
12187 "refer to any type of file, not just a directory."
12189 "Linux 2.6.39 以降では、 I<pathname> に空文字列を指定できる。 その場合、呼び出"
12190 "しは I<dirfd> が参照するファイルに対して行われる (I<dirfd> は B<open>(2) の "
12191 "B<O_PATH> フラグを使って取得できる)。 この場合、 I<dirfd> はディレクトリだけ"
12192 "でなく、ファイルを参照していてもよい。"
12194 #. type: Plain text
12195 #: build/C/man2/readlink.2:153
12196 msgid "See B<openat>(2) for an explanation of the need for B<readlinkat>()."
12197 msgstr "B<readlinkat>() の必要性についての説明については B<openat>(2) を参照。"
12199 #. type: Plain text
12200 #: build/C/man2/readlink.2:159
12202 "On success, these calls return the number of bytes placed in I<buf>. On "
12203 "error, -1 is returned and I<errno> is set to indicate the error."
12205 "成功すると、これらのシステムコールは I<buf> に格納されたバイト数を返す。 エ"
12206 "ラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
12208 #. type: Plain text
12209 #: build/C/man2/readlink.2:165
12211 "Search permission is denied for a component of the path prefix. (See also "
12212 "B<path_resolution>(7).)"
12214 "パスのディレクトリ部分に検索許可が与えられていない (B<path_resolution>(7) も"
12217 #. type: Plain text
12218 #: build/C/man2/readlink.2:169
12219 msgid "I<buf> extends outside the process's allocated address space."
12220 msgstr "I<buf> がプロセスに割り当てられたアドレス空間の外を指している。"
12222 #. At the glibc level, bufsiz is unsigned, so this error can only occur
12223 #. if bufsiz==0. However, the in the kernel syscall, bufsiz is signed,
12224 #. and this error can also occur if bufsiz < 0.
12225 #. See: http://thread.gmane.org/gmane.linux.man/380
12226 #. Subject: [patch 0/3] [RFC] kernel/glibc mismatch of "readlink" syscall?
12227 #. type: Plain text
12228 #: build/C/man2/readlink.2:178
12229 msgid "I<bufsiz> is not positive."
12230 msgstr "I<bufsiz> が正でない。"
12232 #. type: Plain text
12233 #: build/C/man2/readlink.2:181
12234 msgid "The named file is not a symbolic link."
12235 msgstr "指定したファイルがシンボリックリンクでない。"
12237 #. type: Plain text
12238 #: build/C/man2/readlink.2:184
12239 msgid "An I/O error occurred while reading from the filesystem."
12240 msgstr "ファイルシステムの読み込み中に I/O エラーが起こった。"
12242 #. type: Plain text
12243 #: build/C/man2/readlink.2:187
12244 msgid "Too many symbolic links were encountered in translating the pathname."
12245 msgstr "パス名にシンボリックリンクが多すぎる。"
12247 #. type: Plain text
12248 #: build/C/man2/readlink.2:190
12249 msgid "A pathname, or a component of a pathname, was too long."
12250 msgstr "パス名かパス名の一部分が長過ぎる。"
12252 #. type: Plain text
12253 #: build/C/man2/readlink.2:193
12254 msgid "The named file does not exist."
12255 msgstr "その名前のファイルが存在しない。"
12257 #. type: Plain text
12258 #: build/C/man2/readlink.2:199
12259 msgid "A component of the path prefix is not a directory."
12260 msgstr "パスのディレクトリ部分がディレクトリでない。"
12262 #. type: Plain text
12263 #: build/C/man2/readlink.2:202
12264 msgid "The following additional errors can occur for B<readlinkat>():"
12265 msgstr "B<readlinkat>() では以下のエラーも発生する。"
12267 #. type: Plain text
12268 #: build/C/man2/readlink.2:212 build/C/man2/unlink.2:269
12270 "I<pathname> is relative and I<dirfd> is a file descriptor referring to a "
12271 "file other than a directory."
12273 "I<pathname> が相対パスで、 I<dirfd> がディレクトリ以外のファイルを参照してい"
12276 #. type: Plain text
12277 #: build/C/man2/readlink.2:216
12279 "B<readlinkat>() was added to Linux in kernel 2.6.16; library support was "
12280 "added to glibc in version 2.4."
12282 "B<readlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
12283 "ポートはバージョン 2.4 で glibc に追加された。"
12285 #. type: Plain text
12286 #: build/C/man2/readlink.2:222
12288 "B<readlink>(): 4.4BSD (B<readlink>() first appeared in 4.2BSD), "
12289 "POSIX.1-2001, POSIX.1-2008."
12291 "4.4BSD (B<readlink>() は 4.2BSD で初めて登場した), POSIX.1-2001, "
12294 #. type: Plain text
12295 #: build/C/man2/readlink.2:225
12296 msgid "B<readlinkat>(): POSIX.1-2008."
12297 msgstr "B<readlinkat>(): POSIX.1-2008."
12299 #. type: Plain text
12300 #: build/C/man2/readlink.2:233
12302 "In versions of glibc up to and including glibc 2.4, the return type of "
12303 "B<readlink>() was declared as I<int>. Nowadays, the return type is "
12304 "declared as I<ssize_t>, as (newly) required in POSIX.1-2001."
12306 "バージョン 2.4 以前の glibc (バージョン 2.4 を含む) では、 B<readlink>() の"
12307 "返り値の型は I<int> で宣言されていた。現在では、返り値の型は I<ssize_t> であ"
12308 "る (返り値 I<ssize_t> は POSIX.1-2001 で (新たに) 必須となった)。"
12310 #. type: Plain text
12311 #: build/C/man2/readlink.2:256
12313 "Using a statically sized buffer might not provide enough room for the "
12314 "symbolic link contents. The required size for the buffer can be obtained "
12315 "from the I<stat.st_size> value returned by a call to B<lstat>(2) on the "
12316 "link. However, the number of bytes written by B<readlink>() and "
12317 "B<readlinkat>() should be checked to make sure that the size of the "
12318 "symbolic link did not increase between the calls. Dynamically allocating "
12319 "the buffer for B<readlink>() and B<readlinkat>() also addresses a common "
12320 "portability problem when using I<PATH_MAX> for the buffer size, as this "
12321 "constant is not guaranteed to be defined per POSIX if the system does not "
12324 "静的な大きさのバッファを使うと、 シンボリックリンクの内容を格納するのに十分な"
12325 "領域がない場合がある。 バッファに必要なサイズは、 そのシンボリックリンクに対"
12326 "して B<lstat>(2) の呼び出しで返される I<stat.st_size> の値から取得できる。 た"
12327 "だし、 B<readlink>() や B<readlinkat>() が書き込んだバイト数をチェックして、 "
12328 "シンボリックリンクのサイズが二つの呼び出しの間で増えていないことを確認すべき"
12329 "である。 B<readlink>() や B<readlinkat>() 用のバッファを動的に割り当てる方法"
12330 "でも、 バッファサイズとして I<PATH_MAX> を使用する場合に共通する移植性の問題"
12331 "を解決することができる。 なぜなら、POSIX では、 システムがそのような上限値を"
12332 "定義していない場合には、 I<PATH_MAX> が定義されることが保証されていないからで"
12335 #. type: Plain text
12336 #: build/C/man2/readlink.2:262
12338 "The following program allocates the buffer needed by B<readlink>() "
12339 "dynamically from the information provided by B<lstat>(), making sure there's "
12340 "no race condition between the calls."
12342 "以下のプログラムは、 B<readlink>() が必要とするバッファを、\n"
12343 "B<lstat>() が提供する情報に基づいて動的に割り当てる。\n"
12344 "また、両方の呼び出し間で競合条件がないことを保証している。"
12346 #. type: Plain text
12347 #: build/C/man2/readlink.2:269
12350 "#include E<lt>sys/types.hE<gt>\n"
12351 "#include E<lt>sys/stat.hE<gt>\n"
12352 "#include E<lt>stdio.hE<gt>\n"
12353 "#include E<lt>stdlib.hE<gt>\n"
12354 "#include E<lt>unistd.hE<gt>\n"
12356 "#include E<lt>sys/types.hE<gt>\n"
12357 "#include E<lt>sys/stat.hE<gt>\n"
12358 "#include E<lt>stdio.hE<gt>\n"
12359 "#include E<lt>stdlib.hE<gt>\n"
12360 "#include E<lt>unistd.hE<gt>\n"
12362 #. type: Plain text
12363 #: build/C/man2/readlink.2:276
12367 "main(int argc, char *argv[])\n"
12369 " struct stat sb;\n"
12370 " char *linkname;\n"
12374 "main(int argc, char *argv[])\n"
12376 " struct stat sb;\n"
12377 " char *linkname;\n"
12380 #. type: Plain text
12381 #: build/C/man2/readlink.2:281
12384 " if (argc != 2) {\n"
12385 " fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt>\\en\", argv[0]);\n"
12386 " exit(EXIT_FAILURE);\n"
12389 " if (argc != 2) {\n"
12390 " fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt>\\en\", argv[0]);\n"
12391 " exit(EXIT_FAILURE);\n"
12394 #. type: Plain text
12395 #: build/C/man2/readlink.2:286
12398 " if (lstat(argv[1], &sb) == -1) {\n"
12399 " perror(\"lstat\");\n"
12400 " exit(EXIT_FAILURE);\n"
12403 " if (lstat(argv[1], &sb) == -1) {\n"
12404 " perror(\"lstat\");\n"
12405 " exit(EXIT_FAILURE);\n"
12408 #. type: Plain text
12409 #: build/C/man2/readlink.2:292
12412 " linkname = malloc(sb.st_size + 1);\n"
12413 " if (linkname == NULL) {\n"
12414 " fprintf(stderr, \"insufficient memory\\en\");\n"
12415 " exit(EXIT_FAILURE);\n"
12418 " linkname = malloc(sb.st_size + 1);\n"
12419 " if (linkname == NULL) {\n"
12420 " fprintf(stderr, \"insufficient memory\\en\");\n"
12421 " exit(EXIT_FAILURE);\n"
12424 #. type: Plain text
12425 #: build/C/man2/readlink.2:294
12427 msgid " r = readlink(argv[1], linkname, sb.st_size + 1);\n"
12428 msgstr " r = readlink(argv[1], linkname, sb.st_size + 1);\n"
12430 #. type: Plain text
12431 #: build/C/man2/readlink.2:299
12434 " if (r == -1) {\n"
12435 " perror(\"readlink\");\n"
12436 " exit(EXIT_FAILURE);\n"
12439 " if (r == -1) {\n"
12440 " perror(\"readlink\");\n"
12441 " exit(EXIT_FAILURE);\n"
12444 #. type: Plain text
12445 #: build/C/man2/readlink.2:305
12448 " if (r E<gt> sb.st_size) {\n"
12449 " fprintf(stderr, \"symlink increased in size \"\n"
12450 " \"between lstat() and readlink()\\en\");\n"
12451 " exit(EXIT_FAILURE);\n"
12454 " if (r E<gt> sb.st_size) {\n"
12455 " fprintf(stderr, \"symlink increased in size \"\n"
12456 " \"between lstat() and readlink()\\en\");\n"
12457 " exit(EXIT_FAILURE);\n"
12460 #. type: Plain text
12461 #: build/C/man2/readlink.2:307
12463 msgid " linkname[r] = \\(aq\\e0\\(aq;\n"
12464 msgstr " linkname[r] = \\(aq\\e0\\(aq;\n"
12466 #. type: Plain text
12467 #: build/C/man2/readlink.2:309
12469 msgid " printf(\"\\(aq%s\\(aq points to \\(aq%s\\(aq\\en\", argv[1], linkname);\n"
12470 msgstr " printf(\"\\(aq%s\\(aq points to \\(aq%s\\(aq\\en\", argv[1], linkname);\n"
12472 #. type: Plain text
12473 #: build/C/man2/readlink.2:320
12475 "B<readlink>(1), B<lstat>(2), B<stat>(2), B<symlink>(2), "
12476 "B<path_resolution>(7), B<symlink>(7)"
12478 "B<readlink>(1), B<lstat>(2), B<stat>(2), B<symlink>(2), "
12479 "B<path_resolution>(7), B<symlink>(7)"
12482 #: build/C/man2/readv.2:32
12488 #: build/C/man2/readv.2:32
12491 msgstr "2010-11-17"
12493 #. type: Plain text
12494 #: build/C/man2/readv.2:35
12496 "readv, writev, preadv, pwritev - read or write data into multiple buffers"
12497 msgstr "readv, writev, preadv, pwritev - 複数のバッファへの読み書きを行なう"
12499 #. type: Plain text
12500 #: build/C/man2/readv.2:38
12502 msgid "B<#include E<lt>sys/uio.hE<gt>>\n"
12503 msgstr "B<#include E<lt>sys/uio.hE<gt>>\n"
12505 #. type: Plain text
12506 #: build/C/man2/readv.2:40
12508 msgid "B<ssize_t readv(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<);>\n"
12509 msgstr "B<ssize_t readv(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<);>\n"
12511 #. type: Plain text
12512 #: build/C/man2/readv.2:42
12514 msgid "B<ssize_t writev(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<);>\n"
12515 msgstr "B<ssize_t writev(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<);>\n"
12517 #. type: Plain text
12518 #: build/C/man2/readv.2:45
12521 "B<ssize_t preadv(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<,>\n"
12522 "B< off_t >I<offset>B<);>\n"
12524 "B<ssize_t preadv(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<,>\n"
12525 "B< off_t >I<offset>B<);>\n"
12527 #. type: Plain text
12528 #: build/C/man2/readv.2:48
12531 "B<ssize_t pwritev(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<,>\n"
12532 "B< off_t >I<offset>B<);>\n"
12534 "B<ssize_t pwritev(int >I<fd>B<, const struct iovec *>I<iov>B<, int >I<iovcnt>B<,>\n"
12535 "B< off_t >I<offset>B<);>\n"
12537 #. type: Plain text
12538 #: build/C/man2/readv.2:58
12539 msgid "B<preadv>(), B<pwritev>(): _BSD_SOURCE"
12540 msgstr "B<preadv>(), B<pwritev>(): _BSD_SOURCE"
12542 #. type: Plain text
12543 #: build/C/man2/readv.2:68
12545 "The B<readv>() system call reads I<iovcnt> buffers from the file associated "
12546 "with the file descriptor I<fd> into the buffers described by I<iov> "
12547 "(\"scatter input\")."
12549 "B<readv>() システムコールは、ファイルディスクリプタ I<fd> に関連付けられた\n"
12550 "ファイルから、 I<iovcnt> 個のバッファ分のデータを読み込み、 I<iov> で指定\n"
12551 "されたバッファに格納する (\"scatter input\";「ばらまき入力」)。"
12553 #. type: Plain text
12554 #: build/C/man2/readv.2:78
12556 "The B<writev>() system call writes I<iovcnt> buffers of data described by "
12557 "I<iov> to the file associated with the file descriptor I<fd> (\"gather output"
12560 "B<writev>() システムコールは、 I<iov> で指定されたバッファから最大 "
12562 "個のバッファ分のデータを取り出し、 ファイルディスクリプタ I<fd> に関連付け"
12564 "れたファイルに書き込む (\"gather output\";「かき集め出力」)。"
12566 #. type: Plain text
12567 #: build/C/man2/readv.2:87
12569 "The pointer I<iov> points to an array of I<iovec> structures, defined in "
12570 "I<E<lt>sys/uio.hE<gt>> as:"
12572 "ポインタ I<iov> は I<iovec> 構造体の配列へのポインタである。 I<iovec> 構造体"
12573 "は I<E<lt>sys/uio.hE<gt>> で以下のように定義されている:"
12575 #. type: Plain text
12576 #: build/C/man2/readv.2:95
12580 " void *iov_base; /* Starting address */\n"
12581 " size_t iov_len; /* Number of bytes to transfer */\n"
12585 " void *iov_base; /* Starting address */\n"
12586 " size_t iov_len; /* Number of bytes to transfer */\n"
12589 #. type: Plain text
12590 #: build/C/man2/readv.2:103
12592 "The B<readv>() system call works just like B<read>(2) except that multiple "
12593 "buffers are filled."
12595 "B<readv>() システムコールは、複数のバッファにデータを読み込む点を除いて\n"
12596 "B<read>(2) と全く同様の動作を行う。"
12598 #. type: Plain text
12599 #: build/C/man2/readv.2:109
12601 "The B<writev>() system call works just like B<write>(2) except that "
12602 "multiple buffers are written out."
12604 "B<writev>() システムコールは、複数のバッファのデータを書き出す点以外は\n"
12605 "B<write>(2) と全く同様の動作を行う。"
12607 #. type: Plain text
12608 #: build/C/man2/readv.2:128
12610 "Buffers are processed in array order. This means that B<readv>() "
12611 "completely fills I<iov>[0] before proceeding to I<iov>[1], and so on. (If "
12612 "there is insufficient data, then not all buffers pointed to by I<iov> may be "
12613 "filled.) Similarly, B<writev>() writes out the entire contents of "
12614 "I<iov>[0] before proceeding to I<iov>[1], and so on."
12616 "バッファは配列の順序で処理される。これは、 B<readv>() が I<iov>[0] が完全に"
12617 "一杯になるまでデータを詰めてから、 I<iov>[1] などに進むことを意味する (データ"
12618 "が十分ない場合は、 I<iov> が指すバッファのいずれも一杯にならない)。 同様に、 "
12619 "B<writev>() は I<iov>[0] の内容を全部書き出してから I<iov>[1] などに進む。"
12621 #. type: Plain text
12622 #: build/C/man2/readv.2:146
12624 "The data transfers performed by B<readv>() and B<writev>() are atomic: the "
12625 "data written by B<writev>() is written as a single block that is not "
12626 "intermingled with output from writes in other processes (but see B<pipe>(7) "
12627 "for an exception); analogously, B<readv>() is guaranteed to read a "
12628 "contiguous block of data from the file, regardless of read operations "
12629 "performed in other threads or processes that have file descriptors referring "
12630 "to the same open file description (see B<open>(2))."
12632 "B<readv>() と B<writev>() によるデータ転送は atomic に行われる。つまり、 "
12633 "B<writev>() によるデータ書き込みは一つのブロックとして行われ、他のプロセス"
12634 "の write による書き込みと混ざり合うことはない (例外に関しては B<pipe>(7) を"
12635 "参照のこと)。同様に、 B<readv>() はファイルから連続するデータブロックが読み"
12636 "出すことが保証され、 同じファイル記述 (file description; B<open>(2) 参照) を"
12637 "参照するファイルディスクリプタを持つ他のスレッドやプロセスが 実行した read 操"
12641 #: build/C/man2/readv.2:146
12643 msgid "preadv() and pwritev()"
12644 msgstr "preadv() と pwritev()"
12646 #. type: Plain text
12647 #: build/C/man2/readv.2:159
12649 "The B<preadv>() system call combines the functionality of B<readv>() and "
12650 "B<pread>(2). It performs the same task as B<readv>(), but adds a fourth "
12651 "argument, I<offset>, which specifies the file offset at which the input "
12652 "operation is to be performed."
12654 "B<preadv>() システムコールは B<readv>() と B<preadv>(2) の機能を\n"
12656 "B<readv>() と同じ処理を実行するが、\n"
12657 "4 番目の引き数 I<offset> が追加されており、\n"
12658 "この引き数は入力操作を行うファイルオフセットを指定する。"
12660 #. type: Plain text
12661 #: build/C/man2/readv.2:172
12663 "The B<pwritev>() system call combines the functionality of B<writev>() and "
12664 "B<pwrite>(2). It performs the same task as B<writev>(), but adds a fourth "
12665 "argument, I<offset>, which specifies the file offset at which the output "
12666 "operation is to be performed."
12668 "B<pwritev>() システムコールは B<writev>() と B<pwrite>(2) の機能を\n"
12670 "B<writev>() と同じ処理を実行するが、\n"
12671 "4 番目の引き数 I<offset> が追加されており、\n"
12672 "この引き数は出力操作を行うファイルオフセットを指定する。"
12674 #. type: Plain text
12675 #: build/C/man2/readv.2:177
12677 "The file offset is not changed by these system calls. The file referred to "
12678 "by I<fd> must be capable of seeking."
12680 "これらのシステムコールで、ファイルオフセットは変更されない。\n"
12681 "I<fd> が参照するファイルは seek 可能でなければならない。"
12683 #. type: Plain text
12684 #: build/C/man2/readv.2:188
12686 "On success, B<readv>() and B<preadv>() return the number of bytes read; "
12687 "B<writev>() and B<pwritev>() return the number of bytes written. On "
12688 "error, -1 is returned, and I<errno> is set appropriately."
12690 "成功した場合、 B<readv>() と B<preadv> は読み込んだバイト数を返し、\n"
12691 "B<writev>() と B<pwritev>()は書き込んだバイト数を返す。\n"
12692 "エラーの場合 -1 を返し、I<errno> を適切に設定する。"
12694 #. type: Plain text
12695 #: build/C/man2/readv.2:200
12697 "The errors are as given for B<read>(2) and B<write>(2). Furthermore, "
12698 "B<preadv>() and B<pwritev>() can also fail for the same reasons as "
12699 "B<lseek>(2). Additionally, the following error is defined:"
12701 "B<read>(2) や B<write>(2) と同じエラーが定義されている。\n"
12702 "さらに、 B<preadv>() と B<pwritev>() は B<lseek>(2) と同じ理由でも失敗す"
12704 "また、追加で以下のエラーが定義されている:"
12706 #. type: Plain text
12707 #: build/C/man2/readv.2:209
12709 "The sum of the I<iov_len> values overflows an I<ssize_t> value. Or, the "
12710 "vector count I<iovcnt> is less than zero or greater than the permitted "
12713 "I<iov_len> の合計が I<ssize_t> の範囲をオーバーフローした。もしくは、 ベクタ"
12714 "数 I<iovcnt> が 0 より小さいか許可された最大値よりも大きかった。"
12716 #. type: Plain text
12717 #: build/C/man2/readv.2:214
12719 "B<preadv>() and B<pwritev>() first appeared in Linux 2.6.30; library "
12720 "support was added in glibc 2.10."
12722 "B<preadv>() と B<pwritev>() は Linux 2.6.30 で初めて登場した。\n"
12723 "ライブラリによるサポートは glibc 2.10 で追加された。"
12725 #. The readv/writev system calls were buggy before Linux 1.3.40.
12726 #. (Says release.libc.)
12727 #. type: Plain text
12728 #: build/C/man2/readv.2:222
12730 "B<readv>(), B<writev>(): 4.4BSD (these system calls first appeared in "
12731 "4.2BSD), POSIX.1-2001. Linux libc5 used I<size_t> as the type of the "
12732 "I<iovcnt> argument, and I<int> as the return type."
12734 "B<readv>(), B<writev>(): \n"
12735 "4.4BSD (これらのシステムコールは 4.2BSD で最初に現われた)、POSIX.1-2001。 \n"
12736 "Linux libc5 では、 I<iovcnt> 引き数の型として I<size_t> を、\n"
12737 "返り値の型として I<int> を使用していた。"
12739 #. type: Plain text
12740 #: build/C/man2/readv.2:226
12742 "B<preadv>(), B<pwritev>(): nonstandard, but present also on the modern BSDs."
12743 msgstr "B<preadv>(), B<pwritev>(): 非標準だが、最近の BSD にも存在する。"
12746 #: build/C/man2/readv.2:227
12748 msgid "Linux notes"
12749 msgstr "Linux での注意"
12751 #. type: Plain text
12752 #: build/C/man2/readv.2:258
12754 "POSIX.1-2001 allows an implementation to place a limit on the number of "
12755 "items that can be passed in I<iov>. An implementation can advertise its "
12756 "limit by defining B<IOV_MAX> in I<E<lt>limits.hE<gt>> or at run time via the "
12757 "return value from I<sysconf(_SC_IOV_MAX)>. On Linux, the limit advertised "
12758 "by these mechanisms is 1024, which is the true kernel limit. However, the "
12759 "glibc wrapper functions do some extra work if they detect that the "
12760 "underlying kernel system call failed because this limit was exceeded. In "
12761 "the case of B<readv>(). the wrapper function allocates a temporary buffer "
12762 "large enough for all of the items specified by I<iov>, passes that buffer in "
12763 "a call to B<read>(2), copies data from the buffer to the locations specified "
12764 "by the I<iov_base> fields of the elements of I<iov>, and then frees the "
12765 "buffer. The wrapper function for B<writev>() performs the analogous task "
12766 "using a temporary buffer and a call to B<write>(2)."
12768 "POSIX.1-2001 では、 I<iov> で渡すことができる要素数に上限を設ける実装が認めら"
12769 "れている。 実装は、 I<E<lt>limits.hE<gt>> の B<IOV_MAX> を定義することや、実"
12770 "行時に I<sysconf(_SC_IOV_MAX)> の返り値経由で、この上限を広告することができ"
12771 "る。 Linux では、この仕組みにより広告される上限は 1024 であり、 この値はカー"
12772 "ネルでの上限そのものである。 一方で、glibc のラッパー関数は、その関数の内部で"
12773 "呼ばれるカーネル システムコールがこの上限を超過して失敗したことを検出する"
12774 "と、 追加の動作をする。 B<readv>() の場合、ラッパー関数は I<iov> で指定され"
12775 "た全ての要素を格納できる大きさの一時バッファを割り当て、 B<read>(2) を呼び出"
12776 "す際にそのバッファを渡し、 そのバッファのデータを I<iov> の各要素の "
12777 "I<iov_base> フィールドが指定する場所にコピーしてから、 そのバッファを解放す"
12778 "る。 B<writev>() のラッパー関数も、同じように一時バッファを使って "
12779 "B<write>(2) を呼び出す。"
12781 #. type: Plain text
12782 #: build/C/man2/readv.2:265
12784 "It is not advisable to mix calls to B<readv>() or B<writev>(), which "
12785 "operate on file descriptors, with the functions from the stdio library; the "
12786 "results will be undefined and probably not what you want."
12788 "ファイルディスクリプタに対する操作を行う B<readv>() や B<writev>() と、\n"
12789 "標準入出力ライブラリの関数をごちゃまぜにして呼ぶのはお薦めしない。\n"
12790 "どんな結果になるかは定義されておらず、おそらく期待する結果は\n"
12793 #. type: Plain text
12794 #: build/C/man2/readv.2:268
12795 msgid "The following code sample demonstrates the use of B<writev>():"
12796 msgstr "以下のサンプルコードは B<writev>() の使用方法を示すものである。"
12798 #. type: Plain text
12799 #: build/C/man2/readv.2:275
12802 "char *str0 = \"hello \";\n"
12803 "char *str1 = \"world\\en\";\n"
12804 "struct iovec iov[2];\n"
12805 "ssize_t nwritten;\n"
12807 "char *str0 = \"hello \";\n"
12808 "char *str1 = \"world\\en\";\n"
12809 "struct iovec iov[2];\n"
12810 "ssize_t nwritten;\n"
12812 #. type: Plain text
12813 #: build/C/man2/readv.2:280
12816 "iov[0].iov_base = str0;\n"
12817 "iov[0].iov_len = strlen(str0);\n"
12818 "iov[1].iov_base = str1;\n"
12819 "iov[1].iov_len = strlen(str1);\n"
12821 "iov[0].iov_base = str0;\n"
12822 "iov[0].iov_len = strlen(str0);\n"
12823 "iov[1].iov_base = str1;\n"
12824 "iov[1].iov_len = strlen(str1);\n"
12826 #. type: Plain text
12827 #: build/C/man2/readv.2:282
12829 msgid "nwritten = writev(STDOUT_FILENO, iov, 2);\n"
12830 msgstr "nwritten = writev(STDOUT_FILENO, iov, 2);\n"
12832 #. type: Plain text
12833 #: build/C/man2/readv.2:288
12834 msgid "B<pread>(2), B<read>(2), B<write>(2)"
12835 msgstr "B<pread>(2), B<read>(2), B<write>(2)"
12838 #: build/C/man3/remove.3:31
12844 #: build/C/man3/remove.3:31
12847 msgstr "2014-03-10"
12849 #. type: Plain text
12850 #: build/C/man3/remove.3:34
12851 msgid "remove - remove a file or directory"
12852 msgstr "remove - ファイルやディレクトリを削除する"
12854 #. type: Plain text
12855 #: build/C/man3/remove.3:38
12856 msgid "B<int remove(const char *>I<pathname>B<);>"
12857 msgstr "B<int remove(const char *>I<pathname>B<);>"
12859 #. type: Plain text
12860 #: build/C/man3/remove.3:46
12862 "B<remove>() deletes a name from the filesystem. It calls B<unlink>(2) for "
12863 "files, and B<rmdir>(2) for directories."
12865 "B<remove>() はファイルシステムからファイル名を削除する。 ファイルに対しては "
12866 "B<unlink>(2) を、ディレクトリに対しては B<rmdir>(2) を呼び出す。"
12868 #. type: Plain text
12869 #: build/C/man3/remove.3:50
12871 "If the removed name was the last link to a file and no processes have the "
12872 "file open, the file is deleted and the space it was using is made available "
12875 "もしその名前が ファイルへの最後のリンクで、かつ、どのプロセスもそのファイル"
12876 "を 開いていないなら、ファイルも削除する。ファイルの占めていた 領域は他で使う"
12879 #. type: Plain text
12880 #: build/C/man3/remove.3:55
12882 "If the name was the last link to a file, but any processes still have the "
12883 "file open, the file will remain in existence until the last file descriptor "
12884 "referring to it is closed."
12886 "名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開"
12887 "いているなら、ファイルの最後のファイル記述子 (file descriptor) が閉じられるま"
12890 #. type: Plain text
12891 #: build/C/man3/remove.3:57 build/C/man2/unlink.2:78
12892 msgid "If the name referred to a symbolic link, the link is removed."
12893 msgstr "名前が指しているのがシンボリックリンクなら、そのリンクを削除する。"
12895 #. type: Plain text
12896 #: build/C/man3/remove.3:60
12898 "If the name referred to a socket, FIFO, or device, the name is removed, but "
12899 "processes which have the object open may continue to use it."
12901 "名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、 その"
12902 "ソケットなどを開いているプロセスはそのまま使い続けることができる。"
12904 #. type: Plain text
12905 #: build/C/man3/remove.3:70
12906 msgid "The errors that occur are those for B<unlink>(2) and B<rmdir>(2)."
12907 msgstr "発生するエラーは B<unlink>(2) および B<rmdir>(2) と同じものである。"
12909 #. type: Plain text
12910 #: build/C/man3/remove.3:75
12911 msgid "The B<remove>() function is thread-safe."
12912 msgstr "関数 B<remove>() はスレッドセーフである。"
12914 #. type: Plain text
12915 #: build/C/man3/remove.3:77
12916 msgid "C89, C99, 4.3BSD, POSIX.1-2001."
12917 msgstr "C89, C99, 4.3BSD, POSIX.1-2001."
12919 #. type: Plain text
12920 #: build/C/man3/remove.3:83
12922 "Under libc4 and libc5, B<remove>() was an alias for B<unlink>(2) (and "
12923 "hence would not remove directories)."
12925 "libc4 と libc5 においては、 B<remove>() は B<unlink>(2) の別名であった "
12926 "(従ってディレクトリを削除できなかった)。"
12928 #. type: Plain text
12929 #: build/C/man3/remove.3:86 build/C/man2/unlink.2:284
12931 "Infelicities in the protocol underlying NFS can cause the unexpected "
12932 "disappearance of files which are still being used."
12934 "NFS プロトコルに内在する問題により、まだ使用中のファイルが想定外に消えてしま"
12937 #. type: Plain text
12938 #: build/C/man3/remove.3:97
12940 "B<rm>(1), B<unlink>(1), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
12941 "B<rmdir>(2), B<unlink>(2), B<mkfifo>(3), B<symlink>(7)"
12943 "B<rm>(1), B<unlink>(1), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
12944 "B<rmdir>(2), B<unlink>(2), B<mkfifo>(3), B<symlink>(7)"
12947 #: build/C/man2/rename.2:33
12952 #. type: Plain text
12953 #: build/C/man2/rename.2:36
12954 msgid "rename, renameat, renameat2 - change the name or location of a file"
12955 msgstr "rename, renameat, renameat2 - ファイルの名前や位置を変更する"
12957 #. type: Plain text
12958 #: build/C/man2/rename.2:41
12960 msgid "B<int rename(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
12961 msgstr "B<int rename(const char *>I<oldpath>B<, const char *>I<newpath>B<);>\n"
12963 #. type: Plain text
12964 #: build/C/man2/rename.2:44
12967 "B<#include E<lt>fcntl.hE<gt> >/* Definition of AT_* constants */\n"
12968 "B<#include E<lt>stdio.hE<gt>>\n"
12970 "B<#include E<lt>fcntl.hE<gt> >/* AT_* 定数の定義 */\n"
12971 "B<#include E<lt>stdio.hE<gt>>\n"
12973 #. type: Plain text
12974 #: build/C/man2/rename.2:47
12977 "B<int renameat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
12978 "B< int >I<newdirfd>B<, const char *>I<newpath>B<);>\n"
12980 "B<int renameat(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
12981 "B< int >I<newdirfd>B<, const char *>I<newpath>B<);>\n"
12983 #. type: Plain text
12984 #: build/C/man2/rename.2:51
12987 "B<int renameat2(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
12988 "B< int >I<newdirfd>B<, const char *>I<newpath>B<, unsigned int >I<flags>B<);>\n"
12990 "B<int renameat2(int >I<olddirfd>B<, const char *>I<oldpath>B<,>\n"
12991 "B< int >I<newdirfd>B<, const char *>I<newpath>B<, unsigned int >I<flags>B<);>\n"
12993 #. type: Plain text
12994 #: build/C/man2/rename.2:59
12995 msgid "B<renameat>():"
12996 msgstr "B<renameat>():"
12998 #. type: Plain text
12999 #: build/C/man2/rename.2:81
13001 "B<rename>() renames a file, moving it between directories if required. Any "
13002 "other hard links to the file (as created using B<link>(2)) are unaffected. "
13003 "Open file descriptors for I<oldpath> are also unaffected."
13005 "B<rename>() はファイルの名前を変更し、必要ならばディレクトリ間の移動を行な"
13006 "う。 そのファイルに対する (B<link>(2) を使用して作られた) 他のハードリンク "
13007 "(hard link) には影響はない。 オープン済の I<oldpath> に対するファイルディスク"
13010 #. type: Plain text
13011 #: build/C/man2/rename.2:89
13013 "If I<newpath> already exists, it will be atomically replaced (subject to a "
13014 "few conditions; see ERRORS below), so that there is no point at which "
13015 "another process attempting to access I<newpath> will find it missing."
13017 "I<newpath> が既に存在する場合、それは不可分操作で (atomically) 置き換えられ"
13018 "る (ただし、いくつかの条件がある; 以下の「エラー」のセクションを参照)。 その"
13019 "ため、 I<newpath> にアクセスしようとしている他のプロセスがファイルを見失うこ"
13020 "とはない (訳註: 常にアクセス可能である)。"
13022 #. type: Plain text
13023 #: build/C/man2/rename.2:97
13025 "If I<oldpath> and I<newpath> are existing hard links referring to the same "
13026 "file, then B<rename>() does nothing, and returns a success status."
13028 "I<oldpath> と I<newpath> がどちらも既存のハードリンクで、同じファイルを参照し"
13029 "ている場合、 B<rename>() は何も行わず、ステータスとして成功を返す。"
13031 #. type: Plain text
13032 #: build/C/man2/rename.2:105
13034 "If I<newpath> exists but the operation fails for some reason, B<rename>() "
13035 "guarantees to leave an instance of I<newpath> in place."
13037 "I<newpath> が存在し、何らかの理由で操作が失敗した場合、 B<rename>() は "
13038 "I<newpath> の実体を元のまま残すことを保証する。"
13040 #. type: Plain text
13041 #: build/C/man2/rename.2:111
13043 "I<oldpath> can specify a directory. In this case, I<newpath> must either "
13044 "not exist, or it must specify an empty directory."
13046 "I<oldpath> にはディレクトリを指定することもできる。 この場合、 I<newpath> は"
13047 "存在しないか、空のディレクトリでなければならない。"
13049 #. type: Plain text
13050 #: build/C/man2/rename.2:118
13052 "However, when overwriting there will probably be a window in which both "
13053 "I<oldpath> and I<newpath> refer to the file being renamed."
13055 "一方で、上書きを行なう場合は、rename が行なわれるファイルを I<oldpath> と "
13056 "I<newpath> の両方で参照できる瞬間がおそらく存在する。"
13058 #. type: Plain text
13059 #: build/C/man2/rename.2:124
13061 "If I<oldpath> refers to a symbolic link, the link is renamed; if I<newpath> "
13062 "refers to a symbolic link, the link will be overwritten."
13064 "I<oldpath> がシンボリックリンク (symbolic link) を参照している場合は、 リンク"
13065 "の名前が変更される。 また、 I<newpath> がシンボリックリンクを参照している場合"
13069 #: build/C/man2/rename.2:124
13071 msgid "renameat ()"
13072 msgstr "renameat ()"
13074 #. type: Plain text
13075 #: build/C/man2/rename.2:130
13077 "The B<renameat>() system call operates in exactly the same way as "
13078 "B<rename>(), except for the differences described here."
13080 "B<renameat>() システムコールは B<rename>() と全く同様に動作するが、以下で説明"
13083 #. type: Plain text
13084 #: build/C/man2/rename.2:140
13086 "If the pathname given in I<oldpath> is relative, then it is interpreted "
13087 "relative to the directory referred to by the file descriptor I<olddirfd> "
13088 "(rather than relative to the current working directory of the calling "
13089 "process, as is done by B<rename>() for a relative pathname)."
13091 "I<oldpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスクリ"
13092 "プター I<olddirfd> が参照するディレクトリに対する相対パスと解釈される "
13093 "(B<rename>(2) に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
13094 "ワーキングディレクトリに対する相対パスではない)。"
13096 #. type: Plain text
13097 #: build/C/man2/rename.2:152
13099 "If I<oldpath> is relative and I<olddirfd> is the special value B<AT_FDCWD>, "
13100 "then I<oldpath> is interpreted relative to the current working directory of "
13101 "the calling process (like B<rename>())."
13103 "I<oldpath> で指定されたパス名が相対パスで、 I<olddirfd> が特別な値 "
13104 "B<AT_FDCWD> の場合、 (B<rename>(2) と同様に) I<oldpath> は呼び出したプロセス"
13105 "のカレントワーキングディレクトリに対する相対パスと解釈される。"
13107 #. type: Plain text
13108 #: build/C/man2/rename.2:171
13109 msgid "See B<openat>(2) for an explanation of the need for B<renameat>()."
13110 msgstr "B<renameat>() の必要性についての説明については B<openat>(2) を参照。"
13113 #: build/C/man2/rename.2:171
13115 msgid "renameat2()"
13116 msgstr "renameat2()"
13118 #. type: Plain text
13119 #: build/C/man2/rename.2:182
13121 "B<renameat2>() has an additional I<flags> argument. A B<renameat2>() call "
13122 "with a zero I<flags> argument is equivalent to B<renameat>()."
13125 #. type: Plain text
13126 #: build/C/man2/rename.2:186
13128 #| msgid "The character % is followed by zero or more of the following flags:"
13130 "The I<flags> argument is a bit mask consisting of zero or more of the "
13132 msgstr "% 文字の後ろには 0 個以上のフラグ文字が続く。"
13135 #: build/C/man2/rename.2:186
13137 msgid "B<RENAME_NOREPLACE>"
13140 #. type: Plain text
13141 #: build/C/man2/rename.2:194
13143 "Don't overwrite I<newpath>. of the rename. Return an error if I<newpath> "
13148 #: build/C/man2/rename.2:194
13150 msgid "B<RENAME_EXCHANGE>"
13151 msgstr "B<RENAME_EXCHANGE>"
13153 #. type: Plain text
13154 #: build/C/man2/rename.2:203
13156 "Atomically exchange I<oldpath> and I<newpath>. Both pathnames must exist "
13157 "but may be of different types (e.g., one could be a non-empty directory and "
13158 "the other a symbolic link)."
13161 #. type: Plain text
13162 #: build/C/man2/rename.2:228
13164 "Write permission is denied for the directory containing I<oldpath> or "
13165 "I<newpath>, or, search permission is denied for one of the directories in "
13166 "the path prefix of I<oldpath> or I<newpath>, or I<oldpath> is a directory "
13167 "and does not allow write permission (needed to update the I<..> entry). "
13168 "(See also B<path_resolution>(7).)"
13170 "I<oldpath> または I<newpath> を含んでいるディレクトリの書き込み許可がない。 "
13171 "または、 I<oldpath> または I<newpath> のディレクトリ部分のどれかに検索許可が"
13172 "ない。 または、 I<oldpath> がディレクトリで (I<..> エントリを更新するのに必要"
13173 "な) 書き込み許可がない (B<path_resolution>(7) も参照)。"
13176 #: build/C/man2/rename.2:228 build/C/man2/rmdir.2:55 build/C/man2/unlink.2:169
13181 #. type: Plain text
13182 #: build/C/man2/rename.2:245
13184 "The rename fails because I<oldpath> or I<newpath> is a directory that is in "
13185 "use by some process (perhaps as current working directory, or as root "
13186 "directory, or because it was open for reading) or is in use by the system "
13187 "(for example as mount point), while the system considers this an error. "
13188 "(Note that there is no requirement to return B<EBUSY> in such cases"
13189 "\\(emthere is nothing wrong with doing the rename anyway\\(embut it is "
13190 "allowed to return B<EBUSY> if the system cannot otherwise handle such "
13193 "I<oldpath> または I<newpath> がディレクトリで、何らかのプロセスが使用中 (多"
13194 "分、カレントワーキングディレクトリか、ルートディレクトリか、 読み込みのために"
13195 "オープンされているかでろう) もしくは、システムが使用中 (例えばマウントポイン"
13196 "トである) であり、システムがこれをエラーであると判断したために rename が失敗"
13197 "した。 (このような場合に B<EBUSY> を返すことは規格では要求されていない点に注"
13198 "意すること。 このような場合に、rename をとにかく実行してみるのは何の問題もな"
13199 "い。 ただし、そのような状況で、システムが他に返すエラーがない場合には "
13200 "B<EBUSY> を返すことが許されている。)"
13202 #. type: Plain text
13203 #: build/C/man2/rename.2:255
13205 "The new pathname contained a path prefix of the old, or, more generally, an "
13206 "attempt was made to make a directory a subdirectory of itself."
13208 "I<newpath> が I<oldpath> のパス部分を含んでいる。ディレクトリを自分自身のサブ"
13209 "ディレクトリに 変更しようとした場合がほとんどである。"
13211 #. type: Plain text
13212 #: build/C/man2/rename.2:261
13213 msgid "I<newpath> is an existing directory, but I<oldpath> is not a directory."
13215 "I<newpath> は存在しているディレクトリであるが、 I<oldpath> はディレクトリでな"
13218 #. type: Plain text
13219 #: build/C/man2/rename.2:272
13221 "I<oldpath> already has the maximum number of links to it, or it was a "
13222 "directory and the directory containing I<newpath> has the maximum number of "
13225 "I<oldpath> は既に最大数までのリンクを持っているか、それがディレクトリで "
13226 "I<newpath> を含んでいるディレクトリが最大数までのリンクを持っている。"
13228 #. type: Plain text
13229 #: build/C/man2/rename.2:288
13231 "The link named by I<oldpath> does not exist; or, a directory component in "
13232 "I<newpath> does not exist; or, I<oldpath> or I<newpath> is an empty string."
13234 "I<oldpath> という名前のリンクが存在しない。 または、 I<newpath> というディレ"
13235 "クトリが存在しない。 または、 I<oldpath> か I<newpath> が空の文字列である。"
13237 #. type: Plain text
13238 #: build/C/man2/rename.2:305
13240 "A component used as a directory in I<oldpath> or I<newpath> is not, in fact, "
13241 "a directory. Or, I<oldpath> is a directory, and I<newpath> exists but is "
13244 "I<oldpath> か I<newpath> に含まれているディレクトリ部分が 実際にはディレクト"
13245 "リでない。 または I<oldpath> がディレクトリで、 I<newpath> が存在してディレク"
13249 #: build/C/man2/rename.2:305
13251 msgid "B<ENOTEMPTY> or B<EEXIST>"
13252 msgstr "B<ENOTEMPTY または EEXIST>"
13254 #. type: Plain text
13255 #: build/C/man2/rename.2:309
13257 "I<newpath> is a nonempty directory, that is, contains entries other than \"."
13260 "I<newpath> が空でないディレクトリである。すなわち \".\" と \"..\" 以外を含ん"
13264 #: build/C/man2/rename.2:309 build/C/man2/unlink.2:224
13266 msgid "B<EPERM> or B<EACCES>"
13267 msgstr "B<EPERM> または B<EACCES>"
13269 #. type: Plain text
13270 #: build/C/man2/rename.2:333
13272 "The directory containing I<oldpath> has the sticky bit (B<S_ISVTX>) set and "
13273 "the process's effective user ID is neither the user ID of the file to be "
13274 "deleted nor that of the directory containing it, and the process is not "
13275 "privileged (Linux: does not have the B<CAP_FOWNER> capability); or "
13276 "I<newpath> is an existing file and the directory containing it has the "
13277 "sticky bit set and the process's effective user ID is neither the user ID of "
13278 "the file to be replaced nor that of the directory containing it, and the "
13279 "process is not privileged (Linux: does not have the B<CAP_FOWNER> "
13280 "capability); or the filesystem containing I<pathname> does not support "
13281 "renaming of the type requested."
13283 "I<oldpath> のあるディレクトリにスティッキービット (sticky bit) "
13284 "(B<S_ISVTX>) が設定されており、 プロセスの実効ユーザー ID が 削除しようとす"
13285 "るファイルのユーザー ID と そのファイルを含むディレクトリのユーザー ID のいず"
13286 "れとも一致せず、かつ プロセスに特権がない (Linux では B<CAP_FOWNER> ケーパビ"
13287 "リティ (capability) がない)。 または、 I<newpath> がすでに存在するファイル"
13288 "で、親ディレクトリにスティッキービットが設定されており、 プロセスの実効ユー"
13289 "ザー ID が 置き換えようとするファイルのユーザー ID と そのファイルを含むディ"
13290 "レクトリのユーザー ID のいずれとも一致せず、かつ プロセスに特権がない (Linux "
13291 "では B<CAP_FOWNER> ケーパビリティがない)。 または I<oldpath> と I<newpath> が"
13292 "存在するファイルシステムが、要求された種類の名前の変更を サポートしていない。"
13294 #. type: Plain text
13295 #: build/C/man2/rename.2:344
13297 "I<oldpath> and I<newpath> are not on the same mounted filesystem. (Linux "
13298 "permits a filesystem to be mounted at multiple points, but B<rename>() does "
13299 "not work across different mount points, even if the same filesystem is "
13300 "mounted on both.)"
13302 "I<oldpath> と I<newpath> が同じマウントされたファイルシステムに存在しない。 "
13303 "(Linux は 1 つのファイルシステムを複数のマウント位置に マウントすることを許可"
13304 "している。 しかし B<rename>() は、たとえ同じファイルシステムであっても、 "
13305 "別々のマウント位置を跨いでは動作しない。)"
13307 #. type: Plain text
13308 #: build/C/man2/rename.2:349
13310 "The following additional errors can occur for B<renameat>() and "
13312 msgstr "B<renameat>() と B<renameat2>() では以下のエラーも発生する。"
13314 #. type: Plain text
13315 #: build/C/man2/rename.2:368
13316 msgid "The following additional errors can occur for B<renameat2>():"
13317 msgstr "B<renameat2>() では以下のエラーも発生する。"
13319 #. type: Plain text
13320 #: build/C/man2/rename.2:376
13321 msgid "I<flags> contains B<RENAME_NOREPLACE> and I<newpath> already exists."
13324 #. type: Plain text
13325 #: build/C/man2/rename.2:385
13327 "An invalid flag was specified in I<flags>, or both B<RENAME_NOREPLACE> and "
13328 "B<RENAME_EXCHANGE> were specified."
13331 #. type: Plain text
13332 #: build/C/man2/rename.2:389
13334 #| msgid "The filesystem does not allow unlinking of files."
13335 msgid "The filesystem does not support one of the flags in I<flags>."
13336 msgstr "ファイルシステムがファイルに対する unlink 操作を許していない。"
13338 #. type: Plain text
13339 #: build/C/man2/rename.2:397
13340 msgid "I<flags> contains B<RENAME_EXCHANGE> and I<newpath> does not exist."
13343 #. type: Plain text
13344 #: build/C/man2/rename.2:401
13346 "B<renameat>() was added to Linux in kernel 2.6.16; library support was "
13347 "added to glibc in version 2.4."
13349 "B<renameat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
13350 "ポートはバージョン 2.4 で glibc に追加された。"
13352 #. FIXME glibc support is pending.
13353 #. type: Plain text
13354 #: build/C/man2/rename.2:405
13355 msgid "B<renameat2>() was added to Linux in kernel 3.15."
13356 msgstr "B<renameat2>() はカーネル 2.6.16 で Linux に追加された。"
13358 #. type: Plain text
13359 #: build/C/man2/rename.2:408
13360 msgid "B<rename>(): 4.3BSD, C89, C99, POSIX.1-2001, POSIX.1-2008."
13361 msgstr "B<rename>(): 4.3BSD, C89, C99, POSIX.1-2001, POSIX.1-2008."
13363 #. type: Plain text
13364 #: build/C/man2/rename.2:411
13365 msgid "B<renameat>(): POSIX.1-2008."
13366 msgstr "B<renameat>(): POSIX.1-2008."
13368 #. type: Plain text
13369 #: build/C/man2/rename.2:414
13370 msgid "B<renameat2()> is Linux-specific."
13371 msgstr "B<renameat2>() は Linux 固有である。"
13373 #. type: Plain text
13374 #: build/C/man2/rename.2:425
13376 "On NFS filesystems, you can not assume that if the operation failed, the "
13377 "file was not renamed. If the server does the rename operation and then "
13378 "crashes, the retransmitted RPC which will be processed when the server is up "
13379 "again causes a failure. The application is expected to deal with this. See "
13380 "B<link>(2) for a similar problem."
13382 "NFS ファイルシステムでは、操作が失敗したからといって、 ファイルの名前が変更で"
13383 "きなかったと決めてかかることはできない。 サーバが rename 操作を終えてからク"
13384 "ラッシュした場合、 サーバが再び立ち上がったときに、 再送信された RPC が処理さ"
13385 "れるが、これは失敗となる。 アプリケーションはこの問題を正しく取り扱うことが期"
13386 "待されている。 同様の問題について B<link>(2) にも書かれている。"
13388 #. type: Plain text
13389 #: build/C/man2/rename.2:433
13391 "B<mv>(1), B<chmod>(2), B<link>(2), B<symlink>(2), B<unlink>(2), "
13392 "B<path_resolution>(7), B<symlink>(7)"
13394 "B<mv>(1), B<chmod>(2), B<link>(2), B<symlink>(2), B<unlink>(2), "
13395 "B<path_resolution>(7), B<symlink>(7)"
13398 #: build/C/man2/rmdir.2:30
13404 #: build/C/man2/rmdir.2:30
13407 msgstr "2008-05-08"
13409 #. type: Plain text
13410 #: build/C/man2/rmdir.2:33
13411 msgid "rmdir - delete a directory"
13412 msgstr "rmdir - ディレクトリを削除する"
13414 #. type: Plain text
13415 #: build/C/man2/rmdir.2:37
13416 msgid "B<int rmdir(const char *>I<pathname>B<);>"
13417 msgstr "B<int rmdir(const char *>I<pathname>B<);>"
13419 #. type: Plain text
13420 #: build/C/man2/rmdir.2:40
13421 msgid "B<rmdir>() deletes a directory, which must be empty."
13423 "B<rmdir>() はディレクトリを削除する。削除するディレクトリは空でなければなら"
13426 #. type: Plain text
13427 #: build/C/man2/rmdir.2:55
13429 "Write access to the directory containing I<pathname> was not allowed, or one "
13430 "of the directories in the path prefix of I<pathname> did not allow search "
13431 "permission. (See also B<path_resolution>(7)."
13433 "I<pathname> を含んでいるディレクトリへの書き込みアクセスが プロセスの実効 "
13434 "(effective) UID に対して許可されていないか、 I<pathname> に含まれているディレ"
13435 "クトリのどれかに検索 (実行) 許可がないか、 I<pathname> に至るまでのディレクト"
13436 "リのいずれかに対する検索許可がなかった。 (B<path_resolution>(7) も参照のこ"
13439 #. type: Plain text
13440 #: build/C/man2/rmdir.2:64
13442 "I<pathname> is currently in use by the system or some process that prevents "
13443 "its removal. On Linux this means I<pathname> is currently used as a mount "
13444 "point or is the root directory of the calling process."
13446 "I<pathname> がシステムや別のプロセスにより使用中で削除することができない。 "
13447 "Linux では、 I<pathname> がマウントポイントとして使用されているか、 呼び出し"
13448 "たプロセスのルートディレクトリであることを意味する。"
13450 #. type: Plain text
13451 #: build/C/man2/rmdir.2:73
13452 msgid "I<pathname> has I<.> as last component."
13453 msgstr "I<pathname> の最後のディレクトリ部分が I<.> である。"
13455 #. type: Plain text
13456 #: build/C/man2/rmdir.2:85
13458 "A directory component in I<pathname> does not exist or is a dangling "
13461 "I<pathname> の中のディレクトリ部分が存在しないか、壊れた (dangling) シンボ"
13462 "リックリンク (symbolic link) である。"
13464 #. type: Plain text
13465 #: build/C/man2/rmdir.2:94
13467 "I<pathname>, or a component used as a directory in I<pathname>, is not, in "
13468 "fact, a directory."
13470 "I<pathname> か I<pathname> に含まれているディレクトリ部分が、実際には、ディレ"
13474 #: build/C/man2/rmdir.2:94
13476 msgid "B<ENOTEMPTY>"
13477 msgstr "B<ENOTEMPTY>"
13479 #. type: Plain text
13480 #: build/C/man2/rmdir.2:107
13482 "I<pathname> contains entries other than I<.> and I<..> ; or, I<pathname> has "
13483 "I<..> as its final component. POSIX.1-2001 also allows B<EEXIST> for this "
13486 "ディレクトリ I<pathname> に I<.> と I<..> 以外のエントリがある。または、 "
13487 "I<pathname> を構成する最後の要素が I<..> である。 POSIX.1-2001 は、この状況"
13488 "で B<EEXIST> を返すことを認めている。"
13490 #. type: Plain text
13491 #: build/C/man2/rmdir.2:118
13493 "The directory containing I<pathname> has the sticky bit (B<S_ISVTX>) set "
13494 "and the process's effective user ID is neither the user ID of the file to be "
13495 "deleted nor that of the directory containing it, and the process is not "
13496 "privileged (Linux: does not have the B<CAP_FOWNER> capability)."
13498 "I<pathname> を含んでいるディレクトリにスティッキービット(sticky-bit) "
13499 "(B<S_ISVTX>) が設定されていて、プロセスの実効ユーザーID が削除しようとする"
13500 "ファイルの ユーザID とそのファイルを含むディレクトリのユーザーID のどちらとも"
13501 "異なり、 プロセスも権限 (Linux では B<CAP_FOWNER> ケーパビリティ) がない。"
13503 #. type: Plain text
13504 #: build/C/man2/rmdir.2:123
13506 "The filesystem containing I<pathname> does not support the removal of "
13509 "I<pathname> を含んでいるファイルシステムがディレクトリの 削除をサポートしてい"
13512 #. type: Plain text
13513 #: build/C/man2/rmdir.2:127
13514 msgid "I<pathname> refers to a directory on a read-only filesystem."
13516 "I<pathname> が読み込み専用のファイルシステム上のディレクトリを参照している。"
13518 #. type: Plain text
13519 #: build/C/man2/rmdir.2:132
13521 "Infelicities in the protocol underlying NFS can cause the unexpected "
13522 "disappearance of directories which are still being used."
13524 "NFS プロトコルに潜在している欠陥によって、まだ使用中のディレクトリが 突然消滅"
13525 "する現象が引き起こされることがある。"
13527 #. type: Plain text
13528 #: build/C/man2/rmdir.2:141
13530 "B<rm>(1), B<rmdir>(1), B<chdir>(2), B<chmod>(2), B<mkdir>(2), B<rename>(2), "
13531 "B<unlink>(2), B<unlinkat>(2)"
13533 "B<rm>(1), B<rmdir>(1), B<chdir>(2), B<chmod>(2), B<mkdir>(2), B<rename>(2), "
13534 "B<unlink>(2), B<unlinkat>(2)"
13537 #: build/C/man3/scanf.3:52
13542 #. type: Plain text
13543 #: build/C/man3/scanf.3:55
13545 "scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf - input format conversion"
13546 msgstr "scanf, fscanf, sscanf, vscanf, vsscanf, vfscanf - 書式付き入力変換"
13548 #. type: Plain text
13549 #: build/C/man3/scanf.3:62
13552 "B<int scanf(const char *>I<format>B<, ...);>\n"
13553 "B<int fscanf(FILE *>I<stream>B<, const char *>I<format>B<, ...);>\n"
13554 "B<int sscanf(const char *>I<str>B<, const char *>I<format>B<, ...);>\n"
13556 "B<int scanf(const char *>I<format>B<, ...);>\n"
13557 "B<int fscanf(FILE *>I<stream>B<, const char *>I<format>B<, ...);>\n"
13558 "B<int sscanf(const char *>I<str>B<, const char *>I<format>B<, ...);>\n"
13560 #. type: Plain text
13561 #: build/C/man3/scanf.3:64
13563 msgid "B<#include E<lt>stdarg.hE<gt>>\n"
13564 msgstr "B<#include E<lt>stdarg.hE<gt>>\n"
13566 #. type: Plain text
13567 #: build/C/man3/scanf.3:68
13570 "B<int vscanf(const char *>I<format>B<, va_list >I<ap>B<);>\n"
13571 "B<int vsscanf(const char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>\n"
13572 "B<int vfscanf(FILE *>I<stream>B<, const char *>I<format>B<, va_list >I<ap>B<);>\n"
13574 "B<int vscanf(const char *>I<format>B<, va_list >I<ap>B<);>\n"
13575 "B<int vsscanf(const char *>I<str>B<, const char *>I<format>B<, va_list >I<ap>B<);>\n"
13576 "B<int vfscanf(FILE *>I<stream>B<, const char *>I<format>B<, va_list >I<ap>B<);>\n"
13578 #. type: Plain text
13579 #: build/C/man3/scanf.3:79
13580 msgid "B<vscanf>(), B<vsscanf>(), B<vfscanf>():"
13581 msgstr "B<vscanf>(), B<vsscanf>(), B<vfscanf>():"
13583 #. type: Plain text
13584 #: build/C/man3/scanf.3:82
13586 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ "
13589 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ "
13592 #. type: Plain text
13593 #: build/C/man3/scanf.3:104
13595 "The B<scanf>() family of functions scans input according to I<format> as "
13596 "described below. This format may contain I<conversion specifications>; the "
13597 "results from such conversions, if any, are stored in the locations pointed "
13598 "to by the I<pointer> arguments that follow I<format>. Each I<pointer> "
13599 "argument must be of a type that is appropriate for the value returned by the "
13600 "corresponding conversion specification."
13602 "B<scanf>() 関数グループは、以下に述べるように、 I<format> に従って入力を読み"
13603 "込むものである。 この書式には I<「変換指定」 (conversion specifications)> を"
13604 "含めることができ、変換指定があれば、その変換の結果は I<format> に続く "
13605 "I<pointer> 引き数が指す場所に格納される。 それぞれの I<pointer> 引き数の型"
13606 "は、対応する変換指定が返す値に 適合していなければならない。"
13608 #. type: Plain text
13609 #: build/C/man3/scanf.3:115
13611 "If the number of conversion specifications in I<format> exceeds the number "
13612 "of I<pointer> arguments, the results are undefined. If the number of "
13613 "I<pointer> arguments exceeds the number of conversion specifications, then "
13614 "the excess I<pointer> arguments are evaluated, but are otherwise ignored."
13616 "I<format> 中の変換指定の個数が I<pointer> 引き数の数より多かった場合の結果は"
13617 "未定義である。 I<pointer> 引き数の数が変換指定の個数よりも多かった場合、 余分"
13618 "な I<pointer> 引き数の評価は行われるが、それ以外は行われず無視される。"
13620 #. type: Plain text
13621 #: build/C/man3/scanf.3:127
13623 "The B<scanf>() function reads input from the standard input stream "
13624 "I<stdin>, B<fscanf>() reads input from the stream pointer I<stream>, and "
13625 "B<sscanf>() reads its input from the character string pointed to by I<str>."
13627 "B<scanf>() 関数は標準入力ストリーム I<stdin> からの入力を読み込む。 "
13628 "B<fscanf>() はストリームポインタ I<stream> からの入力を読み込む。 "
13629 "B<sscanf>() は文字列ポインタ I<str> で示された文字列からの入力を読み込む。"
13631 #. type: Plain text
13632 #: build/C/man3/scanf.3:145
13634 "The B<vfscanf>() function is analogous to B<vfprintf>(3) and reads input "
13635 "from the stream pointer I<stream> using a variable argument list of pointers "
13636 "(see B<stdarg>(3). The B<vscanf>() function scans a variable argument list "
13637 "from the standard input and the B<vsscanf>() function scans it from a "
13638 "string; these are analogous to the B<vprintf>(3) and B<vsprintf>(3) "
13639 "functions respectively."
13641 "B<vfscanf>() 関数は B<vfprintf>(3) と同様に、ストリームポインタ I<stream> "
13642 "からの入力をポインタの可変長引き数リストを用いて読み込む (B<stdarg>(3) を参"
13643 "照)。 B<vscanf>() 関数は、可変長引き数のリストに基づき標準入力からの読み取り"
13644 "を行う。 B<vsscanf>() 関数はそのリストに基づき文字列から読み取る。 これらの"
13645 "関係は B<vprintf>(3) と B<vsprintf>(3) 関数の関係と同様である。"
13647 #. type: Plain text
13648 #: build/C/man3/scanf.3:159
13650 "The I<format> string consists of a sequence of I<directives> which describe "
13651 "how to process the sequence of input characters. If processing of a "
13652 "directive fails, no further input is read, and B<scanf>() returns. A "
13653 "\"failure\" can be either of the following: I<input failure>, meaning that "
13654 "input characters were unavailable, or I<matching failure>, meaning that the "
13655 "input was inappropriate (see below)."
13657 "I<format> 文字列は I<「命令」 (directive)> の列で構成される。命令は入力文字の"
13658 "系列をどのように処理するかを指示する ものである。ある命令の処理が失敗すると、"
13659 "入力はそれ以上読み込まれず、 B<scanf>() は返る。「失敗」は I<「入力の失敗」 "
13660 "(input failure)> と I<「一致の失敗」 (matching failure)> のいずれかである。 "
13661 "入力の失敗は入力文字が使用できなかったことを意味し、 一致の失敗は入力が不適切"
13662 "であったこと (下記参照) を意味する。"
13664 #. type: Plain text
13665 #: build/C/man3/scanf.3:161
13666 msgid "A directive is one of the following:"
13667 msgstr "命令は以下のいずれかである:"
13670 #: build/C/man3/scanf.3:161 build/C/man3/scanf.3:167 build/C/man3/scanf.3:171
13671 #: build/C/man3/scanf.3:190 build/C/man3/scanf.3:201 build/C/man3/scanf.3:220
13672 #: build/C/man3/scanf.3:232 build/C/man3/scanf.3:246
13677 #. type: Plain text
13678 #: build/C/man3/scanf.3:167
13680 "A sequence of white-space characters (space, tab, newline, etc.; see "
13681 "B<isspace>(3)). This directive matches any amount of white space, including "
13682 "none, in the input."
13684 "ホワイトスペース (スペース、タブ、改行など; B<isspace>(3) 参照) の列。 この"
13685 "命令は、入力中の任意の個数のホワイトスペースに一致する。 (「何もなし」にも一"
13688 #. type: Plain text
13689 #: build/C/man3/scanf.3:171
13691 "An ordinary character (i.e., one other than white space or \\(aq%\\(aq). "
13692 "This character must exactly match the next character of input."
13694 "通常文字 (つまり、ホワイトスペースと \\(aq%\\(aq 以外の文字)。 この文字は入力"
13695 "の次の文字に正確に一致しなければならない。"
13697 #. type: Plain text
13698 #: build/C/man3/scanf.3:182
13700 "A conversion specification, which commences with a \\(aq%\\(aq (percent) "
13701 "character. A sequence of characters from the input is converted according "
13702 "to this specification, and the result is placed in the corresponding "
13703 "I<pointer> argument. If the next item of input does not match the "
13704 "conversion specification, the conversion fails\\(emthis is a I<matching "
13707 "変換指定。変換指定は \\(aq%\\(aq (パーセント) 文字で始まる。 入力された文字の"
13708 "系列はこの指定にもとづいて変換され、 変換結果は対応する I<pointer> 引き数が指"
13709 "す場所に格納される。 入力の次の文字が変換指定と一致しない場合は、変換は失敗す"
13710 "る \\(emこれが I<「一致の失敗」 (matching failure)> である。"
13712 #. type: Plain text
13713 #: build/C/man3/scanf.3:190
13715 "Each I<conversion specification> in I<format> begins with either the "
13716 "character \\(aq%\\(aq or the character sequence \"B<%>I<n>B<$>\" (see below "
13717 "for the distinction) followed by:"
13719 "I<format> 中の各々の I<「変換指定」> は文字 \\(aq%\\(aq か文字系列 \"B<"
13720 "%>I<n>B<$>\" (違いについては後述) で始まり、以下の要素が続く。"
13722 #. type: Plain text
13723 #: build/C/man3/scanf.3:201
13725 "An optional \\(aq*\\(aq assignment-suppression character: B<scanf>() reads "
13726 "input as directed by the conversion specification, but discards the input. "
13727 "No corresponding I<pointer> argument is required, and this specification is "
13728 "not included in the count of successful assignments returned by B<scanf>()."
13730 "代入抑制文字 \\(aq*\\(aq (省略可能)。 B<scanf>() は変換指定に指示された通り"
13731 "入力を読み込むが、その入力は捨てられる。 対応する I<pointer> 引き数は必要な"
13732 "く、 B<scanf>() が返す代入が成功した数にこの指定は含まれない。"
13734 #. type: Plain text
13735 #: build/C/man3/scanf.3:220
13737 "An optional \\(aqm\\(aq character. This is used with string conversions (I<"
13738 "%s>, I<%c>, I<%[>), and relieves the caller of the need to allocate a "
13739 "corresponding buffer to hold the input: instead, B<scanf>() allocates a "
13740 "buffer of sufficient size, and assigns the address of this buffer to the "
13741 "corresponding I<pointer> argument, which should be a pointer to a I<char\\ "
13742 "*> variable (this variable does not need to be initialized before the "
13743 "call). The caller should subsequently B<free>(3) this buffer when it is no "
13746 "文字 \\(aqm\\(aq (省略可能)。これは文字列変換 (I<%s>, I<%c>, I<%[>) とともに"
13747 "使用され、これを使うと 呼び出し元が入力を保持する対応するバッファを確保する必"
13748 "要がなくなる。 代わりに B<scanf>() が必要な大きさのバッファを確保し、この"
13749 "バッファのアドレスを 対応する I<pointer> 引き数に代入する。 I<pointer> 引き数"
13750 "は I<char\\ *> 型の変数へのポインタでなければならない (変数自体は呼び出し前に"
13751 "初期化されている必要はない)。 呼び出し元は、不要になった時点で、このバッファ"
13752 "を B<free>(3) すべきである。"
13754 #. type: Plain text
13755 #: build/C/man3/scanf.3:232
13757 "An optional decimal integer which specifies the I<maximum field width>. "
13758 "Reading of characters stops either when this maximum is reached or when a "
13759 "nonmatching character is found, whichever happens first. Most conversions "
13760 "discard initial white space characters (the exceptions are noted below), and "
13761 "these discarded characters don't count toward the maximum field width. "
13762 "String input conversions store a terminating null byte (\\(aq\\e0\\(aq) to "
13763 "mark the end of the input; the maximum field width does not include this "
13766 "I<「最大フィールド幅」> を指定する 10進数 (省略可能)。 この最大値に達するか、"
13767 "一致しない文字が見つかるか、のどちらかに なると、文字の読み込みを停止する。 "
13768 "ほとんどの変換では、先頭のホワイトスペース文字は捨てられ (例外については後述"
13769 "する)、 捨てられたこれらの文字は最大フィールド幅の計算には含まれない。 文字列"
13770 "の入力変換では、入力の末尾を示す終端のヌルバイト (\\(aq\\e0\\(aq) も格納され"
13771 "るが、最大フィールド幅にはこの終端バイトは含まれない。"
13773 #. type: Plain text
13774 #: build/C/man3/scanf.3:246
13776 "An optional I<type modifier character>. For example, the B<l> type modifier "
13777 "is used with integer conversions such as B<%d> to specify that the "
13778 "corresponding I<pointer> argument refers to a I<long int> rather than a "
13779 "pointer to an I<int>."
13781 "I<「型修飾子」 (type modifier characters)> (省略可能)。 例えば、型修飾子 "
13782 "B<l> を B<%d> などの整数変換と一緒に使うと、対応する I<pointer> 引き数が "
13783 "I<int> ではなく I<long int> を参照していることを指定できる。"
13785 #. type: Plain text
13786 #: build/C/man3/scanf.3:251
13788 "A I<conversion specifier> that specifies the type of input conversion to be "
13790 msgstr "I<「変換指定」> : 実行すべき入力変換の種類を指定する。"
13792 #. type: Plain text
13793 #: build/C/man3/scanf.3:280
13795 "The conversion specifications in I<format> are of two forms, either "
13796 "beginning with \\(aq%\\(aq or beginning with \"B<%>I<n>B<$>\". The two "
13797 "forms should not be mixed in the same I<format> string, except that a string "
13798 "containing \"B<%>I<n>B<$>\" specifications can include B<%%> and B<%*>. If "
13799 "I<format> contains \\(aq%\\(aq specifications, then these correspond in "
13800 "order with successive I<pointer> arguments. In the \"B<%>I<n>B<$>\" form "
13801 "(which is specified in POSIX.1-2001, but not C99), I<n> is a decimal integer "
13802 "that specifies that the converted input should be placed in the location "
13803 "referred to by the I<n>-th I<pointer> argument following I<format>."
13805 "I<format> 中の変換指定は、\\(aq%\\(aq で始まるか、 \"B<%>I<n>B<$>\" で始まる"
13806 "かの、いずれかの形式である。 これら 2つの形式を同じ I<format> 文字列に混ぜる"
13807 "ことはできない。但し、\"B<%>I<n>B<$>\" を 含む文字列に B<%%> と B<%*> を含め"
13808 "ることはできる。 I<format> に \\(aq%\\(aq 指定が含まれている場合、各々の "
13809 "\\(aq%\\(aq 指定と 後続の I<pointer> 引き数はその順番通りに対応する。 \"B<"
13810 "%>I<n>B<$>\" 形式 (POSIX.1-2001 では規定されているが、C99 にはない) では、 "
13811 "I<n> は 10進数であり、変換後の入力を I<format> の後ろの I<n> 番目の "
13812 "I<pointer> 引き数が参照する場所に格納することを指定する。"
13815 #: build/C/man3/scanf.3:280
13817 msgid "Conversions"
13820 #. type: Plain text
13821 #: build/C/man3/scanf.3:284
13823 "The following I<type modifier characters> can appear in a conversion "
13825 msgstr "変換指定には、以下の I<「型修飾子」> を入れることができる。"
13827 #. type: Plain text
13828 #: build/C/man3/scanf.3:294
13830 "Indicates that the conversion will be one of B<d>, B<i>, B<o>, B<u>, B<x>, "
13831 "B<X>, or B<n> and the next pointer is a pointer to a I<short int> or "
13832 "I<unsigned short int> (rather than I<int>)."
13834 "変換が B<d>, B<i>, B<o>, B<u>, B<x>, B<X>, B<n> のいずれかであり、次のポイン"
13835 "タが (I<int> ではなく) I<short int> か I<unsigned short int> へのポインタで"
13838 #. type: Plain text
13839 #: build/C/man3/scanf.3:302
13841 "As for B<h>, but the next pointer is a pointer to a I<signed char> or "
13842 "I<unsigned char>."
13844 "B<h> と同じだが、次のポインタが I<signed char> か I<unsigned char> へのポイン"
13847 #. type: Plain text
13848 #: build/C/man3/scanf.3:311
13850 "As for B<h>, but the next pointer is a pointer to an I<intmax_t> or a "
13851 "I<uintmax_t>. This modifier was introduced in C99."
13853 "B<h> と同じだが、次のポインタが I<intmax_t> か I<uintmax_t> へのポインタであ"
13854 "ることを示す。 この修飾子は C99 で導入された。"
13856 #. This use of l was introduced in Amendment 1 to ISO C90.
13857 #. type: Plain text
13858 #: build/C/man3/scanf.3:338
13860 "Indicates either that the conversion will be one of B<d>, B<i>, B<o>, B<u>, "
13861 "B<x>, B<X>, or B<n> and the next pointer is a pointer to a I<long int> or "
13862 "I<unsigned long int> (rather than I<int>), or that the conversion will be "
13863 "one of B<e>, B<f>, or B<g> and the next pointer is a pointer to I<double> "
13864 "(rather than I<float>). Specifying two B<l> characters is equivalent to "
13865 "B<L>. If used with B<%c> or B<%s>, the corresponding parameter is "
13866 "considered as a pointer to a wide character or wide-character string "
13869 "変換が B<d>, B<i>, B<o>, B<u>, B<x>, B<X>, B<n> か B<n> のいずれかであり次の"
13870 "ポインタが (I<int> ではなく) I<long int> か I<unsigned long int> へのポイン"
13871 "タであること、または、変換が B<e>, B<f>, B<g> のうちのひとつであり次のポイン"
13872 "タが (I<float> ではなく) I<double> へのポインタであることのいずれかであるこ"
13873 "とを示す。 B<l> 文字を二つ指定すると、 B<L> と同じ意味となる。 B<%c> や B<"
13874 "%s> とともに使用すると、 パラメータはそれぞれワイド文字やワイド文字列へのポイ"
13877 #. MTK, Jul 05: The following is no longer true for modern
13878 #. ANSI C (i.e., C99):
13879 #. (Note that long long is not an
13881 #. type. Any program using this will not be portable to all
13883 #. type: Plain text
13884 #: build/C/man3/scanf.3:354
13886 "Indicates that the conversion will be either B<e>, B<f>, or B<g> and the "
13887 "next pointer is a pointer to I<long double> or the conversion will be B<d>, "
13888 "B<i>, B<o>, B<u>, or B<x> and the next pointer is a pointer to I<long long>."
13890 "B<e>, B<f>, B<g> 変換で、次のポインタが I<long double> へのポインタであること"
13891 "を示す。もしくは、 B<d>, B<i>, B<o>, B<u>, B<x> 変換で、次のポインタが "
13892 "I<long long> へのポインタであることのいずれかであることを示す。"
13894 #. type: Plain text
13895 #: build/C/man3/scanf.3:359
13896 msgid "equivalent to B<L>. This specifier does not exist in ANSI C."
13897 msgstr "B<L> と同一である。 この修飾子は ANSI C には存在しない。"
13899 #. type: Plain text
13900 #: build/C/man3/scanf.3:366
13902 "As for B<h>, but the next pointer is a pointer to a I<ptrdiff_t>. This "
13903 "modifier was introduced in C99."
13905 "B<h> と同様だが、次のポインタが I<ptrdiff_t> へのポインタであることを示す。 "
13906 "この修飾子は C99 で導入された。"
13908 #. type: Plain text
13909 #: build/C/man3/scanf.3:373
13911 "As for B<h>, but the next pointer is a pointer to a I<size_t>. This "
13912 "modifier was introduced in C99."
13914 "B<h> と同様だが、次のポインタが I<size_t> へのポインタであることを示す。 この"
13917 #. type: Plain text
13918 #: build/C/man3/scanf.3:377
13919 msgid "The following I<conversion specifiers> are available:"
13920 msgstr "以下の I<「変換指定子」> が利用可能である。"
13922 #. type: Plain text
13923 #: build/C/man3/scanf.3:386
13925 "Matches a literal \\(aq%\\(aq. That is, B<%\\&%> in the format string "
13926 "matches a single input \\(aq%\\(aq character. No conversion is done (but "
13927 "initial white space characters are discarded), and assignment does not occur."
13929 "文字 \\(aq%\\(aq に対応する。 書式文字列の中の B<%\\&%> は単一の文字 \\(aq%"
13930 "\\(aq に対応する。 変換は行われず (但し、先頭のホワイトスペース文字は捨てられ"
13934 #: build/C/man3/scanf.3:386
13939 #. type: Plain text
13940 #: build/C/man3/scanf.3:391
13942 "Matches an optionally signed decimal integer; the next pointer must be a "
13943 "pointer to I<int>."
13945 "符号つきの 10進の整数に対応する。 次のポインタは I<int> へのポインタでなけれ"
13949 #: build/C/man3/scanf.3:391
13954 #. type: Plain text
13955 #: build/C/man3/scanf.3:400
13957 "Equivalent to I<ld>; this exists only for backward compatibility. (Note: "
13958 "thus only in libc4. In libc5 and glibc the B<%D> is silently ignored, "
13959 "causing old programs to fail mysteriously.)"
13961 "I<ld> と同一である。これは以前の仕様との互換性だけのためにある。 (注意: これ"
13962 "は libc4 の場合だけである。 libc5 や glibc では B<%D> は暗黙のうちに無視さ"
13963 "れ、古いプログラムにおいて謎に満ちた失敗の原因となる。)"
13966 #: build/C/man3/scanf.3:400
13971 #. type: Plain text
13972 #: build/C/man3/scanf.3:412
13974 "Matches an optionally signed integer; the next pointer must be a pointer to "
13975 "I<int>. The integer is read in base 16 if it begins with I<0x> or I<0X>, in "
13976 "base 8 if it begins with I<0>, and in base 10 otherwise. Only characters "
13977 "that correspond to the base are used."
13979 "符号つき整数に対応する。 次のポインタは I<int> へのポインタでなければならな"
13980 "い。 この整数は I<0x> または I<0X> で開始する場合には 16 進数、 I<0> で開始す"
13981 "る場合には 8 進数、その他の場合には 10進数として読み込まれる。 この変換で使用"
13982 "される文字は、これらの基数に対応しているものだけである。"
13985 #: build/C/man3/scanf.3:412
13990 #. type: Plain text
13991 #: build/C/man3/scanf.3:416
13993 "Matches an unsigned octal integer; the next pointer must be a pointer to "
13996 "符号なしの 8 進の整数に対応する。 次のポインタは I<unsigned int> でなければな"
14000 #: build/C/man3/scanf.3:416
14005 #. type: Plain text
14006 #: build/C/man3/scanf.3:421
14008 "Matches an unsigned decimal integer; the next pointer must be a pointer to "
14011 "符号なしの 10進の整数に対応する。 次のポインタは I<unsigned int> へのポインタ"
14014 #. type: Plain text
14015 #: build/C/man3/scanf.3:426
14017 "Matches an unsigned hexadecimal integer; the next pointer must be a pointer "
14018 "to I<unsigned int>."
14020 "符号なしの 16 進の整数に対応する。 次のポインタは I<unsigned int> へのポイン"
14024 #: build/C/man3/scanf.3:426
14029 #. type: Plain text
14030 #: build/C/man3/scanf.3:430
14031 msgid "Equivalent to B<x>."
14032 msgstr "B<x> と同一である。"
14035 #: build/C/man3/scanf.3:430
14040 #. type: Plain text
14041 #: build/C/man3/scanf.3:435
14043 "Matches an optionally signed floating-point number; the next pointer must be "
14044 "a pointer to I<float>."
14046 "符号つき浮動小数点実数に対応する。 次のポインタは I<float> へのポインタでなけ"
14050 #: build/C/man3/scanf.3:435
14055 #. type: Plain text
14056 #: build/C/man3/scanf.3:439 build/C/man3/scanf.3:443 build/C/man3/scanf.3:447
14057 msgid "Equivalent to B<f>."
14058 msgstr "B<f> と同一である。"
14061 #: build/C/man3/scanf.3:439
14067 #: build/C/man3/scanf.3:443
14072 #. type: Plain text
14073 #: build/C/man3/scanf.3:451
14074 msgid "(C99) Equivalent to B<f>."
14075 msgstr "(C99) B<f> と同一である。"
14077 #. type: Plain text
14078 #: build/C/man3/scanf.3:459
14080 "Matches a sequence of non-white-space characters; the next pointer must be a "
14081 "pointer to character array that is long enough to hold the input sequence "
14082 "and the terminating null byte (\\(aq\\e0\\(aq), which is added "
14083 "automatically. The input string stops at white space or at the maximum "
14084 "field width, whichever occurs first."
14086 "ホワイトスペースではない文字で構成された文字列に対応する。 次のポインタは文字"
14087 "の配列へのポインタでなければならず、 その文字配列は、入力された文字列と (自動"
14088 "的に追加される) 終端のヌルバイト (\\(aq\\e0\\(aq) を格納するのに十分な大きさ"
14089 "でなければならない。 文字列の入力は、ホワイトスペースが入力されるか、最大"
14090 "フィールド幅に 達するか、のどちらかが起こると停止される。"
14092 #. type: Plain text
14093 #: build/C/man3/scanf.3:469
14095 "Matches a sequence of characters whose length is specified by the I<maximum "
14096 "field width> (default 1); the next pointer must be a pointer to I<char>, and "
14097 "there must be enough room for all the characters (no terminating null byte "
14098 "is added). The usual skip of leading white space is suppressed. To skip "
14099 "white space first, use an explicit space in the format."
14101 "I<「最大フィールド幅」> (デフォルトは 1) で指定された幅の文字の列に対応す"
14102 "る。 次のポインタは I<char> へのポインタで、すべての文字を格納するのに十分な"
14103 "領域が なければならない (終端のヌルバイトは追加されない)。 通常行われる先頭の"
14104 "ホワイトスペースの読み飛ばしは行われない。 先頭のホワイトスペースを読み飛ばす"
14105 "ためには、 フォーマット文の中で明示的にスペースを使用すれば良い。"
14108 #: build/C/man3/scanf.3:469
14113 #. type: Plain text
14114 #: build/C/man3/scanf.3:502
14116 "Matches a nonempty sequence of characters from the specified set of accepted "
14117 "characters; the next pointer must be a pointer to I<char>, and there must be "
14118 "enough room for all the characters in the string, plus a terminating null "
14119 "byte. The usual skip of leading white space is suppressed. The string is "
14120 "to be made up of characters in (or not in) a particular set; the set is "
14121 "defined by the characters between the open bracket B<[> character and a "
14122 "close bracket B<]> character. The set I<excludes> those characters if the "
14123 "first character after the open bracket is a circumflex (B<^>). To include a "
14124 "close bracket in the set, make it the first character after the open bracket "
14125 "or the circumflex; any other position will end the set. The hyphen "
14126 "character B<-> is also special; when placed between two other characters, it "
14127 "adds all intervening characters to the set. To include a hyphen, make it "
14128 "the last character before the final close bracket. For instance, "
14129 "B<[^]0-9-]> means the set \"everything except close bracket, zero through "
14130 "nine, and hyphen\". The string ends with the appearance of a character not "
14131 "in the (or, with a circumflex, in) set or when the field width runs out."
14133 "格納された文字列のうちから取り出された、 指定された文字の集合で構成される空で"
14134 "はない文字の列に対応する。 次のポインタは I<char> へのポインタでなければなら"
14135 "ず、 そこには文字列中のすべての文字と終端のヌルバイト を格納するための十分な"
14136 "領域がなければならない。 通常行われる先頭のホワイトスペースの読み飛ばしは行わ"
14137 "れない。 この文字列は特別な集合の中の文字で構成されている。 この集合は 開き括"
14138 "弧 B<[> と閉じ括弧 B<]> の間の文字で定義される。 開き括弧のあとの最初の文字が"
14139 "曲アクセント記号 (B<^>) の場合、集合はこれらの文字を含まないものとなる。 閉"
14140 "じ括弧を集合に含ませるためには、この文字を開き括弧または 曲アクセント記号のあ"
14141 "との最初の文字にすればよい。 つまり、他の位置に閉じ括弧を置くと文字の集合が終"
14142 "る。 ハイフン B<-> もまた特殊文字である。 二つの異なる文字の間に置かれた時、"
14143 "この文字は、 その間にある全ての文字を集合に加える。 ハイフン自体を含ませるた"
14144 "めには、 括弧が閉じる前の最後の一文字をハイフンにすればよい。 例えば、 "
14145 "B<[^]0-9-]> は「閉じ括弧、0 〜 9、ハイフンの 3 種類を除く全ての文字」の集合を"
14146 "意味する。 この文字列は 集合に含まれていない (曲アクセントの場合には含まれ"
14147 "る) 文字の 出現または確保された領域が使い切られた時に終了する。"
14149 #. type: Plain text
14150 #: build/C/man3/scanf.3:510
14152 "Matches a pointer value (as printed by B<%p> in B<printf>(3); the next "
14153 "pointer must be a pointer to a pointer to I<void>."
14155 "(B<printf>(3) の B<%p> で印字されるような) ポインタ値に対応する。 次のポイン"
14156 "タは I<void> へのポインタへのポインタでなければならない。"
14158 #. type: Plain text
14159 #: build/C/man3/scanf.3:530
14161 "Nothing is expected; instead, the number of characters consumed thus far "
14162 "from the input is stored through the next pointer, which must be a pointer "
14163 "to I<int>. This is I<not> a conversion, although it can be suppressed with "
14164 "the B<*> assignment-suppression character. The C standard says: \"Execution "
14165 "of a B<%n> directive does not increment the assignment count returned at the "
14166 "completion of execution\" but the Corrigendum seems to contradict this. "
14167 "Probably it is wise not to make any assumptions on the effect of B<%n> "
14168 "conversions on the return value."
14170 "どんな入力も必要としない。 そのかわりに、 入力からここまで消費された文字数が"
14171 "次のポインタで指定された場所に 格納される。 このポインタは I<int> へのポイン"
14172 "タでなければならない。 変換を抑制するのであれば B<*> 代入抑制文字を使って抑制"
14173 "することができるのだが、 この変換指定子は変換では「ない」。 C 言語の標準規格"
14174 "では「実行の完了時に返される代入の回数は B<%n> 命令の実行では増加しない」と"
14175 "なっているが、 正誤表の内容はこれと矛盾するようである。おそらく、 B<%n> 変換"
14176 "が返り値に与える影響についてはどのような仮定もしないのが 賢明であろう。"
14178 #. type: Plain text
14179 #: build/C/man3/scanf.3:535
14181 "These functions return the number of input items successfully matched and "
14182 "assigned, which can be fewer than provided for, or even zero in the event of "
14183 "an early matching failure."
14185 "これらの関数は、一致と代入が成功した入力要素の個数を返す。 返される値は渡され"
14186 "た変換の個数よりも少ないこともあり、 最初に一致の失敗があった場合には 0 にな"
14189 #. type: Plain text
14190 #: build/C/man3/scanf.3:547
14192 "The value B<EOF> is returned if the end of input is reached before either "
14193 "the first successful conversion or a matching failure occurs. B<EOF> is "
14194 "also returned if a read error occurs, in which case the error indicator for "
14195 "the stream (see B<ferror>(3)) is set, and I<errno> is set indicate the "
14198 "最初の変換が成功する前に入力の最後に達して、一致の失敗が起こった場合には、 "
14199 "B<EOF> が返される。また、 読み込みエラーが発生した場合にも B<EOF> が返され"
14200 "る。読み込みエラーの場合には、そのストリームの エラー指示子がセットされ "
14201 "(B<ferror>(3) 参照)、 I<errno> にエラーを示す値がセットされる。"
14203 #. type: Plain text
14204 #: build/C/man3/scanf.3:553
14206 "The file descriptor underlying I<stream> is marked nonblocking, and the read "
14207 "operation would block."
14209 "I<stream> に対応するファイルディスクリプタが nonblocking となっており、 読み"
14210 "込み操作は停止 (block) することになる。"
14212 #. type: Plain text
14213 #: build/C/man3/scanf.3:558
14215 "The file descriptor underlying I<stream> is invalid, or not open for reading."
14217 "I<stream> に対応するファイルディスクリプタが無効であるが、 読み込み用にオープ"
14220 #. type: Plain text
14221 #: build/C/man3/scanf.3:561
14222 msgid "Input byte sequence does not form a valid character."
14223 msgstr "入力されたバイト列が有効な文字を構成していない。"
14225 #. type: Plain text
14226 #: build/C/man3/scanf.3:565
14227 msgid "The read operation was interrupted by a signal; see B<signal>(7)."
14228 msgstr "読み込み操作がシグナルにより割り込まれた。 B<signal>(7) 参照。"
14230 #. type: Plain text
14231 #: build/C/man3/scanf.3:570
14232 msgid "Not enough arguments; or I<format> is NULL."
14233 msgstr "引き数が十分でない。または I<format> が NULL である。"
14235 #. type: Plain text
14236 #: build/C/man3/scanf.3:573
14237 msgid "Out of memory."
14241 #: build/C/man3/scanf.3:573
14246 #. type: Plain text
14247 #: build/C/man3/scanf.3:577
14249 "The result of an integer conversion would exceed the size that can be stored "
14250 "in the corresponding integer type."
14251 msgstr "整数変換の結果が、対応する整数型に格納できるサイズを越えてしまう。"
14253 #. type: Plain text
14254 #: build/C/man3/scanf.3:587
14256 "The functions B<fscanf>(), B<scanf>(), and B<sscanf>() conform to C89 and "
14257 "C99 and POSIX.1-2001. These standards do not specify the B<ERANGE> error."
14259 "B<fscanf>(), B<scanf>(), B<sscanf>() 関数は C89, C99, POSIX.1-2001 に準拠し"
14260 "ている。 これらの標準では、エラー B<ERANGE> は規定されていない。"
14262 #. type: Plain text
14263 #: build/C/man3/scanf.3:597
14265 "The B<q> specifier is the 4.4BSD notation for I<long long>, while B<ll> or "
14266 "the usage of B<L> in integer conversions is the GNU notation."
14268 "B<q> 指定子は I<long long> の 4.4BSD での記述方法である。 一方、整数変換での "
14269 "B<ll> または B<L> の使用は GNU での拡張である。"
14271 #. type: Plain text
14272 #: build/C/man3/scanf.3:608
14274 "The Linux version of these functions is based on the I<GNU> I<libio> "
14275 "library. Take a look at the I<info> documentation of I<GNU> I<libc "
14276 "(glibc-1.08)> for a more concise description."
14278 "これらの関数の Linux 版は I<GNU> I<libio> ライブラリーを元にしている。 より簡"
14279 "潔な説明には I<GNU> I<libc (glibc-1.08)> の I<info> 文書に目を通すこと。"
14282 #: build/C/man3/scanf.3:609
14284 msgid "The 'a' assignment-allocation modifier"
14285 msgstr "'a' 代入割り当て (assignment-allocation) 修飾子"
14287 #. type: Plain text
14288 #: build/C/man3/scanf.3:620
14290 "Originally, the GNU C library supported dynamic allocation for string inputs "
14291 "(as a nonstandard extension) via the B<a> character. (This feature is "
14292 "present at least as far back as glibc 2.0.) Thus, one could write the "
14293 "following to have B<scanf>() allocate a buffer for an input string, with a "
14294 "pointer to that buffer being returned in I<*buf>:"
14296 "元々、 GNU C ライブラリ (glibc) では、 B<a> 文字による文字列入力に対する動的"
14297 "割り当て変換指定子 (dynamic allocation conversion specifier) を (非標準の拡張"
14298 "として) サポートしている。この機能は少なくとも glibc 2.0 の時点ではすでに存在"
14299 "している。 したがって、以下のようにして、 B<scanf>() に入力文字列に対してバッ"
14300 "ファを割り当てさせることができる。割り当てられたバッファは I<*buf> で返され"
14303 #. type: Plain text
14304 #: build/C/man3/scanf.3:623
14308 " scanf(\"%as\", &buf);\n"
14311 " scanf(\"%as\", &buf);\n"
14313 #. type: Plain text
14314 #: build/C/man3/scanf.3:634
14316 "The use of the letter B<a> for this purpose was problematic, since B<a> is "
14317 "also specified by the ISO C standard as a synonym for B<f> (floating-point "
14318 "input). POSIX.1-2008 instead specifies the B<m> modifier for assignment "
14319 "allocation (as documented in DESCRIPTION, above)."
14321 "この目的で文字 B<a> を使うのは問題をはらんでいる。 なぜなら、 B<a> は ISO C "
14322 "標準では (浮動小数点入力を表す) の B<f> の同義語として定義されているからであ"
14323 "る。 その代わり、 POSIX.1-2008 では、(上記の「説明」に書かれている通り) 代入"
14324 "割り当てを行う修飾子として B<m> が規定されている。"
14326 #. type: Plain text
14327 #: build/C/man3/scanf.3:646
14329 "Note that the B<a> modifier is not available if the program is compiled with "
14330 "I<gcc -std=c99> or I<gcc -D_ISOC99_SOURCE> (unless B<_GNU_SOURCE> is also "
14331 "specified), in which case the B<a> is interpreted as a specifier for "
14332 "floating-point numbers (see above)."
14334 "B<a> 修飾子は I<gcc -std=c99> や I<gcc -D_ISOC99_SOURCE> でコンパイルしたプロ"
14335 "グラムでは (B<_GNU_SOURCE> も同時に指定していない場合) 利用できない点に注意。"
14336 "この場合、 B<a> は (上述の通り) 浮動小数点数を示す変換指定子と解釈される。"
14338 #. type: Plain text
14339 #: build/C/man3/scanf.3:652
14341 "Support for the B<m> modifier was added to glibc starting with version 2.7, "
14342 "and new programs should use that modifier instead of B<a>."
14344 "B<m> 修飾子への対応はバージョン 2.7 以降の glibc で追加されている。新しいプロ"
14345 "グラムでぇあ B<a> の代わりに B<m> を使用すべきである。"
14347 #. type: Plain text
14348 #: build/C/man3/scanf.3:658
14350 "As well as being standardized by POSIX, the B<m> modifier has the following "
14351 "further advantages over the use of B<a:>"
14353 "POSIX で標準化されているだけでなく、 B<m> 修飾子には B<a> を利用する場合に比"
14356 #. type: Plain text
14357 #: build/C/man3/scanf.3:663
14358 msgid "It may also be applied to B<%c> conversion specifiers (e.g., B<%3mc>)."
14359 msgstr "B<%c> 変換指定子にも適用できる (例えば B<%3mc>)。"
14361 #. type: Plain text
14362 #: build/C/man3/scanf.3:669
14364 "It avoids ambiguity with respect to the B<%a> floating-point conversion "
14365 "specifier (and is unaffected by I<gcc -std=c99> etc.)."
14367 "浮動小数点変換指定子としての B<%a> との紛らわしさが避けられる (また I<gcc -"
14368 "std=c99> などの影響も避けられる)。"
14370 #. type: Plain text
14371 #: build/C/man3/scanf.3:682
14373 "All functions are fully C89 conformant, but provide the additional "
14374 "specifiers B<q> and B<a> as well as an additional behavior of the B<L> and "
14375 "B<l> specifiers. The latter may be considered to be a bug, as it changes "
14376 "the behavior of specifiers defined in C89."
14378 "全ての関数は、完全に C89 に準拠している。しかし 追加で B<q> と B<a> 指定子が"
14379 "提供されており、同様に B<L> と B<l> 指定子の付加的な振る舞いもある。後者は、 "
14380 "C89 で定義された指定子の振る舞いを変更するものなので、 バグとみなされるかもし"
14383 #. type: Plain text
14384 #: build/C/man3/scanf.3:698
14386 "Some combinations of the type modifiers and conversion specifiers defined by "
14387 "ANSI C do not make sense (e.g., B<%Ld>). While they may have a well-defined "
14388 "behavior on Linux, this need not to be so on other architectures. Therefore "
14389 "it usually is better to use modifiers that are not defined by ANSI C at all, "
14390 "that is, use B<q> instead of B<L> in combination with B<d>, B<i>, B<o>, "
14391 "B<u>, B<x>, and B<X> conversions or B<ll>."
14393 "ANSI C で定義された型修飾子と変換指定子の組み合わせの中には 意味を\n"
14394 "なさないものがある (例えば、 B<%Ld>)。 これらが指定された場合、 \n"
14395 "Linux 上でははっきりと定義された振る舞いをするかもしれないが、\n"
14396 "他のアーキテクチャでも同様になっているとは限らない。\n"
14397 "それゆえに、ほとんどの場合、 ANSI C で定義されていない修飾子を使用した\n"
14398 "方が良い。すなわち、 B<d>, B<i>, B<o>, B<u>, B<x>, B<X> 変換や B<ll>\n"
14399 "と組み合わせる場合には、 B<L> の代わりに B<q> を使用した方が良い。"
14401 #. type: Plain text
14402 #: build/C/man3/scanf.3:704
14404 "The usage of B<q> is not the same as on 4.4BSD, as it may be used in float "
14405 "conversions equivalently to B<L>."
14407 "B<q> の使用方法は 4.4BSD と同じではない。 4.4BSD では B<q> は B<L> と同等に浮"
14410 #. type: Plain text
14411 #: build/C/man3/scanf.3:714
14413 "To use the dynamic allocation conversion specifier, specify B<m> as a length "
14414 "modifier (thus B<%ms> or B<%m[>I<range>B<]>). The caller must B<free>(3) "
14415 "the returned string, as in the following example:"
14417 "動的割り当て変換指定子を使用するには、長さ修飾子として B<m> を指定する (つま"
14418 "り、全体としては B<%ms> や B<%m[>I<range>B<]> となる)。以下の例にあるように、"
14419 "呼び出し側は返された文字列を B<free>(3) しなければならない。"
14421 #. type: Plain text
14422 #: build/C/man3/scanf.3:719
14431 #. type: Plain text
14432 #: build/C/man3/scanf.3:730
14436 "n = scanf(\"%m[a-z]\", &p);\n"
14438 " printf(\"read: %s\\en\", p);\n"
14440 "} else if (errno != 0) {\n"
14441 " perror(\"scanf\");\n"
14443 " fprintf(stderr, \"No matching characters\\en\");\n"
14447 "n = scanf(\"%m[a-z]\", &p);\n"
14449 " printf(\"read: %s\\en\", p);\n"
14451 "} else if (errno != 0) {\n"
14452 " perror(\"scanf\");\n"
14454 " fprintf(stderr, \"No matching characters\\en\");\n"
14457 #. type: Plain text
14458 #: build/C/man3/scanf.3:738
14460 "As shown in the above example, it is necessary to call B<free>(3) only if "
14461 "the B<scanf>() call successfully read a string."
14463 "上記の例にあるように、 B<scanf>() が文字列の読み込みに成功した場合にだけ、 "
14464 "B<free>(3) を呼び出す必要がある。"
14466 #. type: Plain text
14467 #: build/C/man3/scanf.3:745
14469 "B<getc>(3), B<printf>(3), B<setlocale>(3), B<strtod>(3), B<strtol>(3), "
14472 "B<getc>(3), B<printf>(3) B<setlocale>(3), B<strtod>(3), B<strtol>(3), "
14476 #: build/C/man3/setbuf.3:48
14482 #: build/C/man3/setbuf.3:48
14485 msgstr "2014-02-18"
14487 #. type: Plain text
14488 #: build/C/man3/setbuf.3:51
14489 msgid "setbuf, setbuffer, setlinebuf, setvbuf - stream buffering operations"
14491 "setbuf, setbuffer, setlinebuf, setvbuf - ストリームのバッファリングの操作"
14493 #. type: Plain text
14494 #: build/C/man3/setbuf.3:56
14496 msgid "B<void setbuf(FILE *>I<stream>B<, char *>I<buf>B<);>\n"
14497 msgstr "B<void setbuf(FILE *>I<stream>B<, char *>I<buf>B<);>\n"
14499 #. type: Plain text
14500 #: build/C/man3/setbuf.3:58
14502 msgid "B<void setbuffer(FILE *>I<stream>B<, char *>I<buf>B<, size_t >I<size>B<);>\n"
14503 msgstr "B<void setbuffer(FILE *>I<stream>B<, char *>I<buf>B<, size_t >I<size>B<);>\n"
14505 #. type: Plain text
14506 #: build/C/man3/setbuf.3:60
14508 msgid "B<void setlinebuf(FILE *>I<stream>B<);>\n"
14509 msgstr "B<void setlinebuf(FILE *>I<stream>B<);>\n"
14511 #. type: Plain text
14512 #: build/C/man3/setbuf.3:63
14514 msgid "B<int setvbuf(FILE *>I<stream>B<, char *>I<buf>B<, int >I<mode>B<, size_t >I<size>B<);>\n"
14515 msgstr "B<int setvbuf(FILE *>I<stream>B<, char *>I<buf>B<, int >I<mode>B<, size_t >I<size>B<);>\n"
14517 #. type: Plain text
14518 #: build/C/man3/setbuf.3:73
14519 msgid "B<setbuffer>(), B<setlinebuf>(): _BSD_SOURCE"
14520 msgstr "B<setbuffer>(), B<setlinebuf>(): _BSD_SOURCE"
14522 #. type: Plain text
14523 #: build/C/man3/setbuf.3:96
14525 "The three types of buffering available are unbuffered, block buffered, and "
14526 "line buffered. When an output stream is unbuffered, information appears on "
14527 "the destination file or terminal as soon as written; when it is block "
14528 "buffered many characters are saved up and written as a block; when it is "
14529 "line buffered characters are saved up until a newline is output or input is "
14530 "read from any stream attached to a terminal device (typically I<stdin>). "
14531 "The function B<fflush>(3) may be used to force the block out early. (See "
14532 "B<fclose>(3).) Normally all files are block buffered. When the first I/O "
14533 "operation occurs on a file, B<malloc>(3) is called, and a buffer is "
14534 "obtained. If a stream refers to a terminal (as I<stdout> normally does), it "
14535 "is line buffered. The standard error stream I<stderr> is always unbuffered "
14538 "バッファリングには unbuffered, block buffered, line buffered の3つのタイプが "
14539 "ある。出力ストリームのタイプが unbuffered の場合、データを書き込むとすぐに出 "
14540 "力先ファイルに書き込まれるかターミナルに表示される。block buffered の場合、"
14541 "文 字の読み書きはブロック単位でいっぺんに行われる。line buffered の場合、 新"
14542 "しい行が出力されるか、ターミナルデバイスに接続しているストリーム (通常、"
14543 "I<stdin>) から新しい行が入力されるまで文字がたくわえられる。 ブロックを強制的"
14544 "に出力するには B<fflush>(3) 関数を使う。 (B<fclose>(3) を参照のこと) 通常、"
14545 "ファイルはすべて block buffered である。ファイルに対して 初めて入出力処理を行"
14546 "うと B<malloc>(3) が呼び出されバッファが獲得される。もし ストリームが (通"
14547 "常、 I<stdout> がそうであるように) ターミナルを参照する場合には、ファイルは "
14548 "line buffered と なる。標準エラー出力 I<stderr> はデフォルトでは常に "
14551 #. type: Plain text
14552 #: build/C/man3/setbuf.3:103
14554 "The B<setvbuf>() function may be used on any open stream to change its "
14555 "buffer. The I<mode> argument must be one of the following three macros:"
14557 "B<setvbuf>() 関数は、オープンしている任意のストリームに対してバッファを変更"
14558 "できる。 引き数 I<mode> は、次の 3 つのマクロのうちいずれかである:"
14561 #: build/C/man3/setbuf.3:104
14566 #. type: Plain text
14567 #: build/C/man3/setbuf.3:107
14569 msgstr "unbuffered"
14572 #: build/C/man3/setbuf.3:107
14577 #. type: Plain text
14578 #: build/C/man3/setbuf.3:110
14579 msgid "line buffered"
14580 msgstr "line buffered"
14583 #: build/C/man3/setbuf.3:110
14588 #. type: Plain text
14589 #: build/C/man3/setbuf.3:113
14590 msgid "fully buffered"
14591 msgstr "fully buffered"
14593 #. type: Plain text
14594 #: build/C/man3/setbuf.3:129
14596 "Except for unbuffered files, the I<buf> argument should point to a buffer at "
14597 "least I<size> bytes long; this buffer will be used instead of the current "
14598 "buffer. If the argument I<buf> is NULL, only the mode is affected; a new "
14599 "buffer will be allocated on the next read or write operation. The "
14600 "B<setvbuf>() function may be used only after opening a stream and before "
14601 "any other operations have been performed on it."
14603 "unbuffered のファイルを除き、 I<buf> 引数は I<size> バイト以上の大きさのバッ"
14604 "ファを指していなければならない。このバッファは現在の バッファの代わりに用いら"
14605 "れる。もし、引数 I<buf> が NULL ならば、モードだけが変更される。 新しいバッ"
14606 "ファは次に読み書きした際に割り当てられる。 B<setvbuf>() 関数は、ストリームを"
14607 "オープンした後、 そのストリームに対して何らかの操作をする前にのみ使用できる。"
14609 #. type: Plain text
14610 #: build/C/man3/setbuf.3:135
14612 "The other three calls are, in effect, simply aliases for calls to "
14613 "B<setvbuf>(). The B<setbuf>() function is exactly equivalent to the call"
14615 "他の 3 つの関数は B<setvbuf>() の呼び出しに単純に置き換えることができる。 "
14618 #. type: Plain text
14619 #: build/C/man3/setbuf.3:138
14620 msgid "setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);"
14621 msgstr "setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);"
14623 #. type: Plain text
14624 #: build/C/man3/setbuf.3:148
14626 "The B<setbuffer>() function is the same, except that the size of the buffer "
14627 "is up to the caller, rather than being determined by the default B<BUFSIZ>. "
14628 "The B<setlinebuf>() function is exactly equivalent to the call:"
14630 "と全く同等だし、 B<setbuffer>() 関数は、バッファサイズがデフォルト値 "
14631 "B<BUFSIZ> ではなく引数で与えられる点以外は同じである。 B<setlinebuf>() 関数"
14634 #. type: Plain text
14635 #: build/C/man3/setbuf.3:151
14636 msgid "setvbuf(stream, NULL, _IOLBF, 0);"
14637 msgstr "setvbuf(stream, NULL, _IOLBF, 0);"
14639 #. type: Plain text
14640 #: build/C/man3/setbuf.3:162
14642 "The function B<setvbuf>() returns 0 on success. It returns nonzero on "
14643 "failure (I<mode> is invalid or the request cannot be honored). It may set "
14644 "I<errno> on failure."
14646 "B<setvbuf>() 関数は、成功した場合 0 を返す。 失敗した場合、0 以外の値を返す "
14647 "(失敗とは、 I<mode> が不正な場合またはリクエストが条件を満たさない場合であ"
14648 "る)。 B<setvbuf>() 関数が失敗した場合は I<errno> を設定することもある。"
14650 #. type: Plain text
14651 #: build/C/man3/setbuf.3:164
14652 msgid "The other functions do not return a value."
14653 msgstr "その他の関数は値を返さない。"
14655 #. type: Plain text
14656 #: build/C/man3/setbuf.3:173
14658 "The B<setbuf>(), B<setbuffer>(), B<setlinebuf>(), and B<setvbuf>() "
14659 "functions are thread-safe."
14661 "関数 B<setbuf>(), B<setbuffer>(), B<setlinebuf>(), B<setvbuf>() はスレッド"
14664 #. type: Plain text
14665 #: build/C/man3/setbuf.3:179
14666 msgid "The B<setbuf>() and B<setvbuf>() functions conform to C89 and C99."
14668 "B<setbuf>() 関数および B<setvbuf>() 関数は C89 と C99 に準拠している。"
14670 #. type: Plain text
14671 #: build/C/man3/setbuf.3:189
14673 "The B<setbuffer>() and B<setlinebuf>() functions are not portable to "
14674 "versions of BSD before 4.2BSD, and are available under Linux since libc "
14675 "4.5.21. On 4.2BSD and 4.3BSD systems, B<setbuf>() always uses a suboptimal "
14676 "buffer size and should be avoided."
14678 "B<setbuffer>() 関数および B<setlinebuf>() 関数は 4.2BSD より前の BSD とは互"
14679 "換性がない。また Linux でも(古いバージョン では)利用できないかもしれない。"
14680 "4.2BSD および 4.3BSD のシステムでは B<setbuf>() は必ず追加のバッファーのサイ"
14681 "ズを使用するので、これも使うべきでない。"
14683 #. type: Plain text
14684 #: build/C/man3/setbuf.3:196
14686 "You must make sure that the space that I<buf> points to still exists by the "
14687 "time I<stream> is closed, which also happens at program termination. For "
14688 "example, the following is invalid:"
14690 "I<stream> を閉じる時 (プログラムを終了する際にもこれは起きる) には、 I<buf> "
14691 "が指し示す空間とが存在していることを保証しなければならない。 例えば、次のよう"
14694 #. type: Plain text
14695 #: build/C/man3/setbuf.3:199
14697 msgid "#include E<lt>stdio.hE<gt>\n"
14698 msgstr "#include E<lt>stdio.hE<gt>\n"
14700 #. type: Plain text
14701 #: build/C/man3/setbuf.3:208
14707 " char buf[BUFSIZ];\n"
14708 " setbuf(stdin, buf);\n"
14709 " printf(\"Hello, world!\\en\");\n"
14716 " char buf[BUFSIZ];\n"
14717 " setbuf(stdin, buf);\n"
14718 " printf(\"Hello, world!\\en\");\n"
14722 #. type: Plain text
14723 #: build/C/man3/setbuf.3:217
14725 "B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), "
14726 "B<printf>(3), B<puts>(3)"
14728 "B<fclose>(3), B<fflush>(3), B<fopen>(3), B<fread>(3), B<malloc>(3), "
14729 "B<printf>(3), B<puts>(3)"
14732 #: build/C/man3/stdin.3:13
14738 #: build/C/man3/stdin.3:13 build/C/man3/tmpfile.3:31
14741 msgstr "2008-07-14"
14743 #. type: Plain text
14744 #: build/C/man3/stdin.3:16
14745 msgid "stdin, stdout, stderr - standard I/O streams"
14746 msgstr "stdin, stdout, stderr - 標準入出力ストリーム"
14748 #. type: Plain text
14749 #: build/C/man3/stdin.3:23
14752 "B<extern FILE *>I<stdin>B<;>\n"
14753 "B<extern FILE *>I<stdout>B<;>\n"
14754 "B<extern FILE *>I<stderr>B<;>\n"
14756 "B<extern FILE *>I<stdin>B<;>\n"
14757 "B<extern FILE *>I<stdout>B<;>\n"
14758 "B<extern FILE *>I<stderr>B<;>\n"
14760 #. type: Plain text
14761 #: build/C/man3/stdin.3:35
14763 "Under normal circumstances every UNIX program has three streams opened for "
14764 "it when it starts up, one for input, one for output, and one for printing "
14765 "diagnostic or error messages. These are typically attached to the user's "
14766 "terminal (see B<tty>(4) but might instead refer to files or other devices, "
14767 "depending on what the parent process chose to set up. (See also the "
14768 "\"Redirection\" section of B<sh>(1).)"
14770 "標準の環境では、 UNIX プログラムは起動時に、オープンされているストリー ムを "
14771 "3 つ与えられる。それぞれ入力用、出力用、診断メッセージやエラーメッ セージの表"
14772 "示用のものである。これらは通常ユーザの端末 (B<tty>(4) を見よ) に接続されてい"
14773 "るが、親プロセスでの選択・設定によってファイル や他のデバイスに関連づけられて"
14774 "いることもある (B<sh>(1) の「リダイレクション」セクションも参照のこと)。"
14776 #. type: Plain text
14777 #: build/C/man3/stdin.3:45
14779 "The input stream is referred to as \"standard input\"; the output stream is "
14780 "referred to as \"standard output\"; and the error stream is referred to as "
14781 "\"standard error\". These terms are abbreviated to form the symbols used to "
14782 "refer to these files, namely I<stdin>, I<stdout>, and I<stderr>."
14784 "入力ストリームは \"standard input\" と呼ばれる。出力ストリームは \"standard "
14785 "output\"、エラーストリームは \"standard error\" と呼ばれる。 これらの用語を短"
14786 "縮したものがそれぞれのファイルを示すシンボルとなる。つ まり I<stdin>, "
14787 "I<stdout>, I<stderr> である。"
14789 #. type: Plain text
14790 #: build/C/man3/stdin.3:54
14792 "Each of these symbols is a B<stdio>(3) macro of type pointer to I<FILE>, "
14793 "and can be used with functions like B<fprintf>(3) or B<fread>(3)."
14795 "これらのシンボルは B<stdio>(3) のマクロで、 FILE へのポインタ型である。した"
14796 "がって B<fprintf>(3) や B<fread>(3) などの関数とともに用いることができる。"
14798 #. type: Plain text
14799 #: build/C/man3/stdin.3:63
14801 "Since I<FILE>s are a buffering wrapper around UNIX file descriptors, the "
14802 "same underlying files may also be accessed using the raw UNIX file "
14803 "interface, that is, the functions like B<read>(2) and B<lseek>(2)."
14805 "I<FILE> は UNIX のファイルディスクリプタにバッファ機能を追加したラッパー であ"
14806 "るから、これらのマクロにも対応するファイルがあり、 UNIX の raw ファ イルイン"
14807 "タフェース (B<read>(2) や B<lseek>(2) など) によってアクセスすることもでき"
14810 #. type: Plain text
14811 #: build/C/man3/stdin.3:82
14813 "On program startup, the integer file descriptors associated with the streams "
14814 "I<stdin>, I<stdout>, and I<stderr> are 0, 1, and 2, respectively. The "
14815 "preprocessor symbols B<STDIN_FILENO>, B<STDOUT_FILENO>, and B<STDERR_FILENO> "
14816 "are defined with these values in I<E<lt>unistd.hE<gt>>. (Applying "
14817 "B<freopen>(3) to one of these streams can change the file descriptor number "
14818 "associated with the stream.)"
14820 "プログラムの起動時には、 ストリーム I<stdin>, I<stdout>, I<stderr> に結びつけ"
14821 "られているファイルディスクリプタの番号は、 それぞれ 0, 1, 2 である。 プリプロ"
14822 "セッサシンボル B<STDIN_FILENO>, B<STDOUT_FILENO>, B<STDERR_FILENO> は "
14823 "I<E<lt>unistd.hE<gt>> 中でそれぞれこれらの値に定義されている。 (これらのスト"
14824 "リームに対して B<freopen>(3) を適用することで、そのストリームに関連付けられ"
14825 "たファイルディスクリプタ の番号を変更することができる。)"
14827 #. type: Plain text
14828 #: build/C/man3/stdin.3:95
14830 "Note that mixing use of I<FILE>s and raw file descriptors can produce "
14831 "unexpected results and should generally be avoided. (For the masochistic "
14832 "among you: POSIX.1, section 8.2.3, describes in detail how this interaction "
14833 "is supposed to work.) A general rule is that file descriptors are handled "
14834 "in the kernel, while stdio is just a library. This means for example, that "
14835 "after an B<exec>(3), the child inherits all open file descriptors, but all "
14836 "old streams have become inaccessible."
14838 "I<FILE> と raw なファイルディスクリプタの併用は、予期できない結果を生じ るこ"
14839 "とがあるので、通常は避けるべきである。 (マゾヒスティックな人に: POSIX.1 のセ"
14840 "クション 8.2.3 には、この混用で動作がどのようになりそう かが詳しく記述されて"
14841 "いる。) 一般的なルールは以下の通り: ファイルディスクリプタはカーネルによっ"
14842 "て 扱われ、 stdio は単にライブラリによって扱われるのである。すなわち例えば "
14843 "B<exec>(3) の後には、子プロセスはオープンされているファイルディスクリプタ を"
14844 "すべて継承するが、親からのストリームはすべてアクセス不可となる。"
14846 #. type: Plain text
14847 #: build/C/man3/stdin.3:113
14849 "Since the symbols I<stdin>, I<stdout>, and I<stderr> are specified to be "
14850 "macros, assigning to them is nonportable. The standard streams can be made "
14851 "to refer to different files with help of the library function B<freopen>(3), "
14852 "specially introduced to make it possible to reassign I<stdin>, I<stdout>, "
14853 "and I<stderr>. The standard streams are closed by a call to B<exit>(3) and "
14854 "by normal program termination."
14856 "シンボル I<stdin>, I<stdout>, I<stderr> はすべてマクロとして定義されているの"
14857 "で、これらへの代入 は移植性を保証されない。標準ストリームはライブラリ関数 "
14858 "B<freopen>(3) を用いれば、別のファイルを示すように変更することもできる。 こ"
14859 "のライブラリ関数は I<stdin>, I<stdout>, I<stderr> の再割り当てが可能なように"
14860 "特別に導入されたものである。 標準ストリームは B<exit>(3) の呼び出しと、プロ"
14861 "グラムの正常終了によってクローズされる。"
14863 #. type: Plain text
14864 #: build/C/man3/stdin.3:122
14866 "The I<stdin>, I<stdout>, and I<stderr> macros conform to C89 and this "
14867 "standard also stipulates that these three streams shall be open at program "
14870 "I<stdin>, I<stdout>, I<stderr> マクロは C89 に準拠している。 また C89 では、"
14871 "これら 3 つのストリームがプログラム の起動時にオープンされているべきであるこ"
14874 #. type: Plain text
14875 #: build/C/man3/stdin.3:154
14877 "The stream I<stderr> is unbuffered. The stream I<stdout> is line-buffered "
14878 "when it points to a terminal. Partial lines will not appear until "
14879 "B<fflush>(3) or B<exit>(3) is called, or a newline is printed. This can "
14880 "produce unexpected results, especially with debugging output. The buffering "
14881 "mode of the standard streams (or any other stream) can be changed using the "
14882 "B<setbuf>(3) or B<setvbuf>(3) call. Note that in case I<stdin> is "
14883 "associated with a terminal, there may also be input buffering in the "
14884 "terminal driver, entirely unrelated to stdio buffering. (Indeed, normally "
14885 "terminal input is line buffered in the kernel.) This kernel input handling "
14886 "can be modified using calls like B<tcsetattr>(3); see also B<stty>(1), and "
14889 "I<stderr> ストリームはバッファリングされていない。 I<stdout> ストリームは、端"
14890 "末に接続されているときには行単位でバッファリング されている。一行に満たない内"
14891 "容は、 B<fflush>(3) か B<exit>(3) が呼び出されるか、改行文字が印字されるま"
14892 "で表示されない。これは、 特にデバッグ時において、予期しない結果を生じる原因と"
14893 "なるかもしれない。 標準ストリームの (あるいは他のすべてのストリームの) バッ"
14894 "ファリングモードは、 B<setbuf>(3) または B<setvbuf>(3) を呼び出すことによっ"
14895 "て変更できる。 ただし、 I<stdin> が端末に接続されているときは、端末のドライバ"
14896 "でバッファリングされている 可能性がある点にも注意すること。これは stdio の"
14897 "バッファリングとは全く 関係なく存在しうる。 (実際、通常だと端末入力はカーネル"
14898 "によって行単位 でバッファリングされている。) このカーネルによる入力の扱いは "
14899 "B<tcsetattr>(3) などの呼び出しによって変更することができる。 B<stty>(1) と "
14900 "B<termios>(3) も参照すること。"
14902 #. type: Plain text
14903 #: build/C/man3/stdin.3:160
14904 msgid "B<csh>(1), B<sh>(1), B<open>(2), B<fopen>(3), B<stdio>(3)"
14905 msgstr "B<csh>(1), B<sh>(1), B<open>(2), B<fopen>(3), B<stdio>(3)"
14908 #: build/C/man3/stdio.3:39
14914 #: build/C/man3/stdio.3:39
14917 msgstr "2001-12-26"
14919 #. type: Plain text
14920 #: build/C/man3/stdio.3:42
14921 msgid "stdio - standard input/output library functions"
14922 msgstr "stdio - 標準入出力ライブラリ関数"
14924 #. type: Plain text
14925 #: build/C/man3/stdio.3:46
14926 msgid "B<FILE *>I<stdin>B<;>"
14927 msgstr "B<FILE *>I<stdin>B<;>"
14929 #. type: Plain text
14930 #: build/C/man3/stdio.3:48
14931 msgid "B<FILE *>I<stdout>B<;>"
14932 msgstr "B<FILE *>I<stdout>B<;>"
14934 #. type: Plain text
14935 #: build/C/man3/stdio.3:50
14936 msgid "B<FILE *>I<stderr>B<;>"
14937 msgstr "B<FILE *>I<stderr>B<;>"
14939 #. type: Plain text
14940 #: build/C/man3/stdio.3:57
14942 "The standard I/O library provides a simple and efficient buffered stream I/O "
14943 "interface. Input and output is mapped into logical data streams and the "
14944 "physical I/O characteristics are concealed. The functions and macros are "
14945 "listed below; more information is available from the individual man pages."
14947 "標準入出力ライブラリは、簡単かつ効果のよい、 バッファリングされたストリーム入"
14948 "出力インターフェースを提供する。 入力と出力は論理データストリームに割り付けら"
14949 "れ、 入出力の物理的な特徴は隠蔽される。 このライブラリに属する関数とマクロを"
14950 "以下に挙げる。 より詳しい情報は個々の man ページから得ることができる。"
14952 #. type: Plain text
14953 #: build/C/man3/stdio.3:80
14955 "A stream is associated with an external file (which may be a physical "
14956 "device) by I<opening> a file, which may involve creating a new file. "
14957 "Creating an existing file causes its former contents to be discarded. If a "
14958 "file can support positioning requests (such as a disk file, as opposed to a "
14959 "terminal), then a I<file position indicator> associated with the stream is "
14960 "positioned at the start of the file (byte zero), unless the file is opened "
14961 "with append mode. If append mode is used, it is unspecified whether the "
14962 "position indicator will be placed at the start or the end of the file. The "
14963 "position indicator is maintained by subsequent reads, writes and positioning "
14964 "requests. All input occurs as if the characters were read by successive "
14965 "calls to the B<fgetc>(3) function; all output takes place as if all "
14966 "characters were written by successive calls to the B<fputc>(3) function."
14968 "ファイルを I<オープン (open) する> ことによって、 ストリームは外部ファイル "
14969 "(通常は物理デバイス) に連結される。 この操作には新しくファイルを作成すること"
14970 "も含まれる。 既存のファイルと同じ名前のファイルを新たに作ると、 もとのファイ"
14971 "ルの中身が捨てられてしまう。 ファイルが位置指定リクエストをサポートしている "
14972 "(ディスクファイルなどが相当する。逆の例としては端末が挙げられる) 場合、 その"
14973 "ストリームに連結された I<ファイル位置指示子 (file position indicator)> は、追"
14974 "加モードで開かれない限りファイルの先頭 (0 バイト目) に位置する。 追加モードを"
14975 "使用した場合、 位置指示子をファイルの先頭に置かれるか末尾に置かれるかは規定さ"
14976 "れていない。 位置指示子は、 以降の読み書きや位置指定リクエストによって変更さ"
14977 "れる。 すべての入力は、 B<fgetc>(3) 関数を次々に呼び出して文字を読み込んだか"
14978 "のように行われる。 一方すべての出力は、 B<fputc>(3) 関数を次々に呼び出して文"
14979 "字を書き込んだかのように行われる。"
14981 #. type: Plain text
14982 #: build/C/man3/stdio.3:90
14984 "A file is disassociated from a stream by I<closing> the file. Output "
14985 "streams are flushed (any unwritten buffer contents are transferred to the "
14986 "host environment) before the stream is disassociated from the file. The "
14987 "value of a pointer to a I<FILE> object is indeterminate after a file is "
14988 "closed (garbage)."
14990 "ファイルを I<クローズ (close) する> ことによって、そのファイルはストリームか"
14991 "ら切り離される。 出力ストリームは、そのストリームがファイルから切り離される前"
14992 "にフラッシュされる (書き込まれていないすべてのバッファの内容がホスト環境に転"
14993 "送される)。 I<FILE> オブジェクトへのポインタの値は、 ファイルを閉じた後では不"
14994 "確定になる (ゴミになってしまう)。"
14996 #. type: Plain text
14997 #: build/C/man3/stdio.3:103
14999 "A file may be subsequently reopened, by the same or another program "
15000 "execution, and its contents reclaimed or modified (if it can be repositioned "
15001 "at the start). If the main function returns to its original caller, or the "
15002 "B<exit>(3) function is called, all open files are closed (hence all output "
15003 "streams are flushed) before program termination. Other methods of program "
15004 "termination, such as B<abort>(3) do not bother about closing files properly."
15006 "ファイルはその後 (同じまたは別のプログラムによって) 再びオープンされることも"
15007 "あり、 その内容が修正されたり変更されたりする (そのファイルで先頭への位置移動"
15008 "が可能であれば)。 main 関数がもとの呼び出し側に返ったり、 B<exit>(3) 関数が"
15009 "呼ばれた場合、 プログラムの終了の前に 現在開いているすべてのファイルは閉じら"
15010 "れる (その結果、すべての出力ストリームはフラッシュされる)。 プログラムの停止"
15011 "に B<abort>(3) のような他の方法を用いた場合には、 ファイルが正しく閉じられる"
15014 #. type: Plain text
15015 #: build/C/man3/stdio.3:119
15017 "At program startup, three text streams are predefined and need not be opened "
15018 "explicitly: I<standard input> (for reading conventional input), I<standard "
15019 "output> (for writing conventional input), and I<standard error> (for writing "
15020 "diagnostic output). These streams are abbreviated I<stdin>,I<stdout> and "
15021 "I<stderr>. When opened, the standard error stream is not fully buffered; "
15022 "the standard input and output streams are fully buffered if and only if the "
15023 "streams do not refer to an interactive device."
15025 "プログラムの起動時に 3 個のテキストストリームが予め定義されており、 それらは"
15026 "明示的に開く必要がない。 I<標準入力 (standard input)> (通常の入力を読み取るの"
15027 "に使う)、 I<標準出力 (standard output)> (通常の出力を書き込むのに使う)、 I<標"
15028 "準エラー出力 (standard error)> (診断出力を書き込むのに使う) である。 これらの"
15029 "ストリームは I<stdin>, I<stdout>, I<stderr> と短縮して表現される。 オープンさ"
15030 "れたときには、 標準エラーストリームは 完全にはバッファリングされていない。 標"
15031 "準入力ストリームと標準出力ストリームは、 ストリームがインタラクティブなデバイ"
15032 "スを参照していなければ、 完全にバッファリングされている。"
15034 #. type: Plain text
15035 #: build/C/man3/stdio.3:129
15037 "Output streams that refer to terminal devices are always line buffered by "
15038 "default; pending output to such streams is written automatically whenever an "
15039 "input stream that refers to a terminal device is read. In cases where a "
15040 "large amount of computation is done after printing part of a line on an "
15041 "output terminal, it is necessary to B<fflush>(3) the standard output before "
15042 "going off and computing so that the output will appear."
15044 "端末デバイスを参照する出力ストリームは、 デフォルトでは常に行単位でバッファリ"
15045 "ングされている。 ただしそのようなストリームにおけるバッファ内の出力は、 端末"
15046 "デバイスを参照している入力ストリームからの読み込みがあるたびに、 自動的に書き"
15047 "込まれる。 出力端末に行の一部を書き込んだ後で大量の計算を行う場合、 出力が表"
15048 "示されるように、計算に取りかかる前に標準出力に対して B<fflush>(3) を実行する"
15051 #. type: Plain text
15052 #: build/C/man3/stdio.3:143
15054 "The I<stdio> library is a part of the library B<libc> and routines are "
15055 "automatically loaded as needed by the compilers B<cc>(1) and B<pc>(1). The "
15056 "SYNOPSIS sections of the following manual pages indicate which include files "
15057 "are to be used, what the compiler declaration for the function looks like "
15058 "and which external variables are of interest."
15060 "I<stdio> ライブラリは B<libc> ライブラリの一部であり、ルーチンは コンパイ"
15061 "ラー B<cc>(1) と B<pc>(1) によって必要な時に自動的に読み込まれる。 後述す"
15062 "る man ページ中の「書式」の節には、 どのインクルードファイルを使用しなければ"
15063 "ならないか、 その関数のコンパイラー宣言はどのようなものか、 どのような外部変"
15066 #. Not on Linux: .BR fropen ,
15067 #. Not on Linux: .BR fwopen ,
15068 #. type: Plain text
15069 #: build/C/man3/stdio.3:183
15071 "The following are defined as macros; these names may not be reused without "
15072 "first removing their current definitions with B<#undef>: B<BUFSIZ>, B<EOF>, "
15073 "B<FILENAME_MAX>, B<FOPEN_MAX>, B<L_cuserid>, B<L_ctermid>, B<L_tmpnam>, "
15074 "B<NULL>, B<SEEK_END>, B<SEEK_SET>, B<SEEK_CUR>, B<TMP_MAX>, B<clearerr>, "
15075 "B<feof>, B<ferror>, B<fileno>, B<getc>, B<getchar>, B<putc>, B<putchar>, "
15076 "B<stderr>, B<stdin>, B<stdout>. Function versions of the macro functions "
15077 "B<feof>, B<ferror>, B<clearerr>, B<fileno>, B<getc>, B<getchar>, B<putc>, "
15078 "and B<putchar> exist and will be used if the macros definitions are "
15079 "explicitly removed."
15081 "B<BUFSIZ>, B<EOF>, B<FILENAME_MAX>, B<FOPEN_MAX>, B<L_cuserid>, "
15082 "B<L_ctermid>, B<L_tmpnam>, B<NULL>, B<SEEK_END>, B<SEEK_SET>, B<SEEK_CUR>, "
15083 "B<TMP_MAX>, B<clearerr>, B<feof>, B<ferror>, B<fileno>, B<getc>, B<getchar>, "
15084 "B<putc>, B<putchar>, B<stderr>, B<stdin>, B<stdout> はマクロとして定義されて"
15085 "いる。 これらの名前は、現在の定義を B<#undef> で削除しない限り、再利用するこ"
15086 "とはできない。 マクロ関数の関数版として、 B<feof>, B<ferror>, B<clearerr>, "
15087 "B<fileno>, B<getc>, B<getchar>, B<putc>, B<putchar> がある。 マクロの定義が明"
15088 "示的に消去されている場合には、 これらを使用することになるだろう。"
15091 #: build/C/man3/stdio.3:183
15093 msgid "List of functions"
15097 #: build/C/man3/stdio.3:188
15099 msgid "Function\tDescription\n"
15103 #: build/C/man3/stdio.3:189
15109 #: build/C/man3/stdio.3:190
15111 msgid "clearerr\tcheck and reset stream status\n"
15112 msgstr "clearerr\tストリームの状態の確認とリセット\n"
15115 #: build/C/man3/stdio.3:191
15117 msgid "fclose\tclose a stream\n"
15118 msgstr "fclose\tストリームをクローズする\n"
15121 #: build/C/man3/stdio.3:192
15123 msgid "fdopen\tstream open functions\n"
15124 msgstr "fdopen\tストリームをオープンする\n"
15127 #: build/C/man3/stdio.3:193
15129 msgid "feof\tcheck and reset stream status\n"
15130 msgstr "feof\tストリームの状態の確認とリセット\n"
15133 #: build/C/man3/stdio.3:194
15135 msgid "ferror\tcheck and reset stream status\n"
15136 msgstr "ferror\tストリームの状態の確認とリセット\n"
15139 #: build/C/man3/stdio.3:195
15141 msgid "fflush\tflush a stream\n"
15142 msgstr "fflush\tストリームをフラッシュする\n"
15145 #: build/C/man3/stdio.3:196
15147 msgid "fgetc\tget next character or word from input stream\n"
15148 msgstr "fgetc\t次の文字または語を入力ストリームから獲得する\n"
15151 #: build/C/man3/stdio.3:197
15153 msgid "fgetpos\treposition a stream\n"
15154 msgstr "fgetpos\tストリームの位置を取得する\n"
15157 #: build/C/man3/stdio.3:198
15159 msgid "fgets\tget a line from a stream\n"
15160 msgstr "fgets\tストリームから行を取得する\n"
15163 #: build/C/man3/stdio.3:199
15165 msgid "fileno\treturn the integer descriptor of the argument stream\n"
15166 msgstr "fileno\t引き数であるストリームの整数値のディスクリプタを返す\n"
15169 #: build/C/man3/stdio.3:200
15171 msgid "fopen\tstream open functions\n"
15172 msgstr "fopen\tストリームをオープンする\n"
15175 #: build/C/man3/stdio.3:201
15177 msgid "fprintf\tformatted output conversion\n"
15178 msgstr "fprintf\t書式付き出力変換\n"
15181 #: build/C/man3/stdio.3:202
15183 msgid "fpurge\tflush a stream\n"
15184 msgstr "fpurge\tストリームをフラッシュする\n"
15187 #: build/C/man3/stdio.3:203
15189 msgid "fputc\toutput a character or word to a stream\n"
15190 msgstr "fputc\t文字または語をストリームに出力する\n"
15193 #: build/C/man3/stdio.3:204
15195 msgid "fputs\toutput a line to a stream\n"
15196 msgstr "fputs\t行をストリームに出力する\n"
15199 #: build/C/man3/stdio.3:205
15201 msgid "fread\tbinary stream input/output\n"
15202 msgstr "fread\tバイナリーストリーム入出力\n"
15205 #: build/C/man3/stdio.3:206
15207 msgid "freopen\tstream open functions\n"
15208 msgstr "freopen\tストリームをオープンする\n"
15211 #: build/C/man3/stdio.3:207
15213 msgid "fscanf\tinput format conversion\n"
15214 msgstr "fscanf\t書式付き入力変換\n"
15217 #: build/C/man3/stdio.3:208
15219 msgid "fseek\treposition a stream\n"
15220 msgstr "fseek\tストリームの位置指示子を移動する\n"
15223 #: build/C/man3/stdio.3:209
15225 msgid "fsetpos\treposition a stream\n"
15226 msgstr "fsetpos\tストリームの位置指示子を移動する\n"
15229 #: build/C/man3/stdio.3:210
15231 msgid "ftell\treposition a stream\n"
15232 msgstr "ftell\tストリームの位置を取得する\n"
15235 #: build/C/man3/stdio.3:211
15237 msgid "fwrite\tbinary stream input/output\n"
15238 msgstr "fwrite\tバイナリーストリーム入出力\n"
15241 #: build/C/man3/stdio.3:212
15243 msgid "getc\tget next character or word from input stream\n"
15244 msgstr "getc\t次の文字または語を入力ストリームから取得する\n"
15247 #: build/C/man3/stdio.3:213
15249 msgid "getchar\tget next character or word from input stream\n"
15250 msgstr "getchar\t次の文字または語を入力ストリームから取得する\n"
15253 #: build/C/man3/stdio.3:214
15255 msgid "gets\tget a line from a stream\n"
15256 msgstr "gets\t行を入力ストリームから取得する\n"
15259 #: build/C/man3/stdio.3:215
15261 msgid "getw\tget next character or word from input stream\n"
15262 msgstr "getw\t次の文字または語を入力ストリームから取得する\n"
15265 #: build/C/man3/stdio.3:216
15267 msgid "mktemp\tmake temporary filename (unique)\n"
15268 msgstr "mktemp\t他と重ならないテンポラリファイル名を作る\n"
15271 #: build/C/man3/stdio.3:217
15273 msgid "perror\tsystem error messages\n"
15274 msgstr "perror\tシステムエラーメッセージ\n"
15277 #: build/C/man3/stdio.3:218
15279 msgid "printf\tformatted output conversion\n"
15280 msgstr "printf\t書式付き出力変換\n"
15283 #: build/C/man3/stdio.3:219
15285 msgid "putc\toutput a character or word to a stream\n"
15286 msgstr "putc\t文字または語をストリームに出力する\n"
15289 #: build/C/man3/stdio.3:220
15291 msgid "putchar\toutput a character or word to a stream\n"
15292 msgstr "putchar\t文字または語をストリームに出力する\n"
15295 #: build/C/man3/stdio.3:221
15297 msgid "puts\toutput a line to a stream\n"
15298 msgstr "puts\t行をストリームに出力する\n"
15301 #: build/C/man3/stdio.3:222
15303 msgid "putw\toutput a character or word to a stream\n"
15304 msgstr "putw\t文字または語をストリームに出力する\n"
15307 #: build/C/man3/stdio.3:223
15309 msgid "remove\tremove directory entry\n"
15310 msgstr "remove\tディレクトリエントリを削除する\n"
15313 #: build/C/man3/stdio.3:224
15315 msgid "rewind\treposition a stream\n"
15316 msgstr "rewind\tストリームの位置指示子を移動する\n"
15319 #: build/C/man3/stdio.3:225
15321 msgid "scanf\tinput format conversion\n"
15322 msgstr "scanf\t書式付き入力変換\n"
15325 #: build/C/man3/stdio.3:226
15327 msgid "setbuf\tstream buffering operations\n"
15328 msgstr "setbuf\tストリームのバッファリングの操作\n"
15331 #: build/C/man3/stdio.3:227
15333 msgid "setbuffer\tstream buffering operations\n"
15334 msgstr "setbuffer\tストリームのバッファリングの操作\n"
15337 #: build/C/man3/stdio.3:228
15339 msgid "setlinebuf\tstream buffering operations\n"
15340 msgstr "setlinebuf\tストリームのバッファリングの操作\n"
15343 #: build/C/man3/stdio.3:229
15345 msgid "setvbuf\tstream buffering operations\n"
15346 msgstr "setvbuf\tストリームのバッファリングの操作\n"
15349 #: build/C/man3/stdio.3:230
15351 msgid "sprintf\tformatted output conversion\n"
15352 msgstr "sprintf\t書式付き出力変換\n"
15355 #: build/C/man3/stdio.3:231
15357 msgid "sscanf\tinput format conversion\n"
15358 msgstr "sscanf\t書式付き入力変換\n"
15361 #: build/C/man3/stdio.3:232
15363 msgid "strerror\tsystem error messages\n"
15364 msgstr "strerror\tシステムエラーメッセージ\n"
15367 #: build/C/man3/stdio.3:233
15369 msgid "sys_errlist\tsystem error messages\n"
15370 msgstr "sys_errlist\tシステムエラーメッセージ\n"
15373 #: build/C/man3/stdio.3:234
15375 msgid "sys_nerr\tsystem error messages\n"
15376 msgstr "sys_nerr\tシステムエラーメッセージ\n"
15379 #: build/C/man3/stdio.3:235
15381 msgid "tempnam\ttemporary file routines\n"
15382 msgstr "tempnam\tテンポラリファイルの操作\n"
15385 #: build/C/man3/stdio.3:236
15387 msgid "tmpfile\ttemporary file routines\n"
15388 msgstr "tmpfile\tテンポラリファイルの操作\n"
15391 #: build/C/man3/stdio.3:237
15393 msgid "tmpnam\ttemporary file routines\n"
15394 msgstr "tmpnam\tテンポラリファイルの操作\n"
15397 #: build/C/man3/stdio.3:238
15399 msgid "ungetc\tun-get character from input stream\n"
15400 msgstr "ungetc\t入力ストリームへ 1 文字戻す。\n"
15403 #: build/C/man3/stdio.3:239
15405 msgid "vfprintf\tformatted output conversion\n"
15406 msgstr "vfprintf\t書式付き出力変換\n"
15409 #: build/C/man3/stdio.3:240
15411 msgid "vfscanf\tinput format conversion\n"
15412 msgstr "vfscanf\t書式付き入力変換\n"
15415 #: build/C/man3/stdio.3:241
15417 msgid "vprintf\tformatted output conversion\n"
15418 msgstr "vprintf\t書式付き出力変換\n"
15421 #: build/C/man3/stdio.3:242
15423 msgid "vscanf\tinput format conversion\n"
15424 msgstr "vscanf\t書式付き入力変換\n"
15427 #: build/C/man3/stdio.3:243
15429 msgid "vsprintf\tformatted output conversion\n"
15430 msgstr "vsprintf\t書式付き出力変換\n"
15433 #: build/C/man3/stdio.3:244
15435 msgid "vsscanf\tinput format conversion\n"
15436 msgstr "vsscanf\t書式付き入力変換\n"
15438 #. type: Plain text
15439 #: build/C/man3/stdio.3:250
15440 msgid "The I<stdio> library conforms to C89."
15441 msgstr "I<stdio> ライブラリは C89 に準拠している。"
15443 #. type: Plain text
15444 #: build/C/man3/stdio.3:257
15446 "B<close>(2), B<open>(2), B<read>(2), B<write>(2), B<stdout>(3), "
15447 "B<unlocked_stdio>(3)"
15449 "B<close>(2), B<open>(2), B<read>(2), B<write>(2), B<stdout>(3), "
15450 "B<unlocked_stdio>(3)"
15453 #: build/C/man3/stdio_ext.3:25
15458 #. type: Plain text
15459 #: build/C/man3/stdio_ext.3:30
15461 "__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, "
15462 "__fsetlocking, __fwritable, __fwriting, _flushlbf - interfaces to stdio FILE "
15465 "__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, "
15466 "__fsetlocking, __fwritable, __fwriting, _flushlbf - 標準入出力ファイル構造体"
15469 #. type: Plain text
15470 #: build/C/man3/stdio_ext.3:34
15471 msgid "B<#include E<lt>stdio_ext.hE<gt>>"
15472 msgstr "B<#include E<lt>stdio_ext.hE<gt>>"
15474 #. type: Plain text
15475 #: build/C/man3/stdio_ext.3:36
15476 msgid "B<size_t __fbufsize(FILE *>I<stream>B<);>"
15477 msgstr "B<size_t __fbufsize(FILE *>I<stream>B<);>"
15479 #. type: Plain text
15480 #: build/C/man3/stdio_ext.3:38
15481 msgid "B<size_t __fpending(FILE *>I<stream>B<);>"
15482 msgstr "B<size_t __fpending(FILE *>I<stream>B<);>"
15484 #. type: Plain text
15485 #: build/C/man3/stdio_ext.3:40
15486 msgid "B<int __flbf(FILE *>I<stream>B<);>"
15487 msgstr "B<int __flbf(FILE *>I<stream>B<);>"
15489 #. type: Plain text
15490 #: build/C/man3/stdio_ext.3:42
15491 msgid "B<int __freadable(FILE *>I<stream>B<);>"
15492 msgstr "B<int __freadable(FILE *>I<stream>B<);>"
15494 #. type: Plain text
15495 #: build/C/man3/stdio_ext.3:44
15496 msgid "B<int __fwritable(FILE *>I<stream>B<);>"
15497 msgstr "B<int __fwritable(FILE *>I<stream>B<);>"
15499 #. type: Plain text
15500 #: build/C/man3/stdio_ext.3:46
15501 msgid "B<int __freading(FILE *>I<stream>B<);>"
15502 msgstr "B<int __freading(FILE *>I<stream>B<);>"
15504 #. type: Plain text
15505 #: build/C/man3/stdio_ext.3:48
15506 msgid "B<int __fwriting(FILE *>I<stream>B<);>"
15507 msgstr "B<int __fwriting(FILE *>I<stream>B<);>"
15509 #. type: Plain text
15510 #: build/C/man3/stdio_ext.3:50
15511 msgid "B<int __fsetlocking(FILE *>I<stream>B<, int >I<type>B<);>"
15512 msgstr "B<int __fsetlocking(FILE *>I<stream>B<, int >I<type>B<);>"
15514 #. type: Plain text
15515 #: build/C/man3/stdio_ext.3:52
15516 msgid "B<void _flushlbf(void);>"
15517 msgstr "B<void _flushlbf(void);>"
15519 #. type: Plain text
15520 #: build/C/man3/stdio_ext.3:54
15521 msgid "B<void __fpurge(FILE *>I<stream>B<);>"
15522 msgstr "B<void __fpurge(FILE *>I<stream>B<);>"
15524 #. type: Plain text
15525 #: build/C/man3/stdio_ext.3:59
15527 "Solaris introduced routines to allow portable access to the internals of the "
15528 "I<FILE> structure, and glibc also implemented these."
15530 "Solaris では、 I<FILE> 構造体の内部へポータブルなかたちで アクセスできる手段"
15531 "が導入されており、これらは glibc でも実装されている。"
15533 #. type: Plain text
15534 #: build/C/man3/stdio_ext.3:64
15536 "The B<__fbufsize>() function returns the size of the buffer currently used "
15537 "by the given stream."
15539 "B<__fbufsize>() 関数は、指定されたストリームが使用しているバッファサイズを返"
15542 #. type: Plain text
15543 #: build/C/man3/stdio_ext.3:71
15545 "The B<__fpending>() function returns the number of bytes in the output "
15546 "buffer. For wide-oriented streams the unit is wide characters. This "
15547 "function is undefined on buffers in reading mode, or opened read-only."
15549 "B<__fpending>() 関数は、出力バッファに入っているデータのバイト数を返す。 ワ"
15550 "イドキャラクタを扱うストリームの場合、ワイドキャラクタ単位で計算される。 バッ"
15551 "ファが読み出しモードの場合や読み出し専用で開かれている場合の この関数の振舞い"
15554 #. type: Plain text
15555 #: build/C/man3/stdio_ext.3:76
15557 "The B<__flbf>() function returns a nonzero value if the stream is line-"
15558 "buffered, and zero otherwise."
15560 "B<__flbf>() 関数は、ストリームがラインバッファの場合は 0 以外を、 それ以外の"
15563 #. type: Plain text
15564 #: build/C/man3/stdio_ext.3:81
15566 "The B<__freadable>() function returns a nonzero value if the stream allows "
15567 "reading, and zero otherwise."
15569 "B<__freadable>() 関数は、ストリームが読み出し可能な場合は 0 以外を、 それ以"
15572 #. type: Plain text
15573 #: build/C/man3/stdio_ext.3:86
15575 "The B<__fwritable>() function returns a nonzero value if the stream allows "
15576 "writing, and zero otherwise."
15578 "B<__fwritable>() 関数は、ストリームが書き込み可能な場合は 0 以外を、 それ以"
15581 #. type: Plain text
15582 #: build/C/man3/stdio_ext.3:92
15584 "The B<__freading>() function returns a nonzero value if the stream is read-"
15585 "only, or if the last operation on the stream was a read operation, and zero "
15588 "B<__freading>() 関数は、ストリームが読み出し専用の場合、またはストリームに対"
15589 "する直前の操作が 読み出し操作であった場合は 0 以外を返し、それ以外の場合は 0 "
15592 #. type: Plain text
15593 #: build/C/man3/stdio_ext.3:98
15595 "The B<__fwriting>() function returns a nonzero value if the stream is write-"
15596 "only (or append-only), or if the last operation on the stream was a write "
15597 "operation, and zero otherwise."
15599 "B<__fwriting>() 関数は、ストリームが書き込み専用(もしくは追加専用)の場合、 "
15600 "またはストリームに対する直前の操作が書き込み操作であった場合は 0 以外を返"
15601 "し、 それ以外の場合は 0 を返す。"
15603 #. type: Plain text
15604 #: build/C/man3/stdio_ext.3:106
15606 "The B<__fsetlocking>() function can be used to select the desired type of "
15607 "locking on the stream. It returns the current type. The I<type> argument "
15608 "can take the following three values:"
15610 "B<__fsetlocking>() 関数は、ストリームのロック形式を選択するために使用でき"
15611 "る。 返り値は、現在のロック形式である。 I<type> 引き数は以下の 3 種類の値をと"
15615 #: build/C/man3/stdio_ext.3:106
15617 msgid "B<FSETLOCKING_INTERNAL>"
15618 msgstr "B<FSETLOCKING_INTERNAL>"
15620 #. type: Plain text
15621 #: build/C/man3/stdio_ext.3:111
15623 "Perform implicit locking around every operation on the given stream (except "
15624 "for the *_unlocked ones). This is the default."
15626 "指定されたストリームに対して操作が行われる度に、操作の前後で 明示的に指示しな"
15627 "くてもストリームのロック処理を行う (但し、*_unlocked 関数を使用した場合は例外"
15628 "である)。 これがデフォルトのロック形式である。"
15631 #: build/C/man3/stdio_ext.3:111
15633 msgid "B<FSETLOCKING_BYCALLER>"
15634 msgstr "B<FSETLOCKING_BYCALLER>"
15636 #. type: Plain text
15637 #: build/C/man3/stdio_ext.3:118
15639 "The caller will take care of the locking (possibly using B<flockfile>(3) in "
15640 "case there is more than one thread), and the stdio routines will not do "
15641 "locking until the state is reset to B<FSETLOCKING_INTERNAL>."
15643 "関数の呼び出し元でロックの面倒をみる。 (おそらく、複数のスレッドが存在する状"
15644 "況では B<flockfile>(3) を使うことになるだろう) ロック形式が "
15645 "B<FSETLOCKING_INTERNAL> にリセットされるまでは標準入出力関連の関数はロック処"
15649 #: build/C/man3/stdio_ext.3:118
15651 msgid "B<FSETLOCKING_QUERY>"
15652 msgstr "B<FSETLOCKING_QUERY>"
15654 #. type: Plain text
15655 #: build/C/man3/stdio_ext.3:122
15656 msgid "Don't change the type of locking. (Only return it.)"
15657 msgstr "ロック形式の変更を行わない。(現在の形式を返すだけである)"
15659 #. type: Plain text
15660 #: build/C/man3/stdio_ext.3:128
15662 "The B<_flushlbf>() function flushes all line-buffered streams. (Presumably "
15663 "so that output to a terminal is forced out, say before reading keyboard "
15666 "B<_flushlbf>() 関数は、すべてのラインバッファ (line-buffered) タイプのスト"
15667 "リームの 内容を出力(フラッシュ)する。 (当然ながら、端末への出力が強制的に行わ"
15668 "れることになるので、 キーボードからの入力を読みこむ前にこの関数を呼んだ方がい"
15671 #. type: Plain text
15672 #: build/C/man3/stdio_ext.3:132
15674 "The B<__fpurge>() function discards the contents of the stream's buffer."
15675 msgstr "B<__fpurge>() 関数は、ストリームのバッファの内容を廃棄する。"
15677 #. type: Plain text
15678 #: build/C/man3/stdio_ext.3:141
15680 "The B<__fbufsize>(), B<__fpending>(), B<__fpurge>() and B<__fsetlocking>() "
15681 "functions do not lock the stream, so they are not thread-safe."
15683 "関数 B<__fbufsize>(), B<__fpending>(), B<__fpurge>(), B<__fsetlocking>() "
15684 "は、 ストリームのロックを行わない。 そのため、スレッドセーフではない。"
15686 #. type: Plain text
15687 #: build/C/man3/stdio_ext.3:151
15689 "The B<__flbf>(), B<__freadable>(), B<__freading>(), B<__fwritable>(), "
15690 "B<__fwriting>() and B<_flushlbf>() functions are thread-safe."
15692 "関数 B<__flbf>(), B<__freadable>(), B<__freading>(), B<__fwritable>(), "
15693 "B<__fwriting>(), B<_flushlbf>() はスレッドセーフである。"
15695 #. type: Plain text
15696 #: build/C/man3/stdio_ext.3:154
15697 msgid "B<flockfile>(3), B<fpurge>(3)"
15698 msgstr "B<flockfile>(3), B<fpurge>(3)"
15701 #: build/C/man2/symlink.2:33 build/C/man7/symlink.7:37
15707 #: build/C/man2/symlink.2:33
15710 msgstr "2014-05-05"
15712 #. type: Plain text
15713 #: build/C/man2/symlink.2:36
15714 msgid "symlink, symlinkat - make a new name for a file"
15715 msgstr "symlink, symlinkat - ファイルに新しい名前を付ける"
15717 #. type: Plain text
15718 #: build/C/man2/symlink.2:41
15720 msgid "B<int symlink(const char *>I<target>B<, const char *>I<linkpath>B<);>\n"
15721 msgstr "B<int symlink(const char *>I<target>B<, const char *>I<linkpath>B<);>\n"
15723 #. type: Plain text
15724 #: build/C/man2/symlink.2:47
15726 msgid "B<int symlinkat(const char *>I<target>B<, int >I<newdirfd>B<, const char *>I<linkpath>B<);>\n"
15727 msgstr "B<int symlinkat(const char *>I<target>B<, int >I<newdirfd>B<, const char *>I<linkpath>B<);>\n"
15729 #. type: Plain text
15730 #: build/C/man2/symlink.2:56
15731 msgid "B<symlink>():"
15732 msgstr "B<symlink>():"
15734 #. type: Plain text
15735 #: build/C/man2/symlink.2:62
15736 msgid "B<symlinkat>():"
15737 msgstr "B<symlinkat>():"
15739 #. type: Plain text
15740 #: build/C/man2/symlink.2:80
15742 "B<symlink>() creates a symbolic link named I<linkpath> which contains the "
15743 "string I<target>."
15745 "B<symlink>() は I<target> という文字列をファイルの内容として持つ "
15746 "I<linkpath> というシンボリックリンク (symbolic link) を作成する。"
15748 #. type: Plain text
15749 #: build/C/man2/symlink.2:84
15751 "Symbolic links are interpreted at run time as if the contents of the link "
15752 "had been substituted into the path being followed to find a file or "
15755 "シンボリックリンクは実行時に解釈され、 リンクの内容でパスを置き換えて、そのパ"
15756 "スを辿ることで、 ファイルやディレクトリに到達する。"
15758 #. type: Plain text
15759 #: build/C/man2/symlink.2:89
15761 "Symbolic links may contain I<..> path components, which (if used at the "
15762 "start of the link) refer to the parent directories of that in which the link "
15765 "シンボリックリンクはパスの部分に I<..> を含むかもしれない。これは (もしリンク"
15766 "の最初に使用された場合は) リンクの 存在するディレクトリの親ディレクトリが参照"
15769 #. type: Plain text
15770 #: build/C/man2/symlink.2:93
15772 "A symbolic link (also known as a soft link) may point to an existing file or "
15773 "to a nonexistent one; the latter case is known as a dangling link."
15775 "シンボリックリンクは (ソフトリンク (soft link) とも呼ばれ) 存在するファイル"
15776 "を指しているかもしれないし、 存在しないファイルを指しているかもしれない; 後者"
15777 "の場合は壊れたリンク (dangling link) とも呼ばれる。"
15779 #. type: Plain text
15780 #: build/C/man2/symlink.2:100
15782 "The permissions of a symbolic link are irrelevant; the ownership is ignored "
15783 "when following the link, but is checked when removal or renaming of the link "
15784 "is requested and the link is in a directory with the sticky bit "
15785 "(B<S_ISVTX>) set."
15787 "シンボリックリンクの許可 (permission) は無意味である; リンクを追跡する場合に"
15788 "は所有権 (ownership) は無視される。 ただし、リンクの削除や名前の変更が要求さ"
15789 "れ、かつリンクが存在する ディレクトリにスティッキービット (sticky bit) "
15790 "(B<S_ISVTX>) が設定されている場合には、所有権のチェックが行われる。"
15792 #. type: Plain text
15793 #: build/C/man2/symlink.2:106
15794 msgid "If I<linkpath> exists, it will I<not> be overwritten."
15795 msgstr "I<linkpath> が存在する場合には上書きはI<されない>。"
15798 #: build/C/man2/symlink.2:106
15800 msgid "symlinkat()"
15801 msgstr "symlinkat()"
15803 #. type: Plain text
15804 #: build/C/man2/symlink.2:112
15806 "The B<symlinkat>() system call operates in exactly the same way as "
15807 "B<symlink>(), except for the differences described here."
15809 "B<symlinkat>() システムコールは B<symlink>() と全く同様に動作するが、以下で説"
15812 #. type: Plain text
15813 #: build/C/man2/symlink.2:122
15815 "If the pathname given in I<linkpath> is relative, then it is interpreted "
15816 "relative to the directory referred to by the file descriptor I<newdirfd> "
15817 "(rather than relative to the current working directory of the calling "
15818 "process, as is done by B<symlink>() for a relative pathname)."
15820 "I<linkpath> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
15821 "リプター I<newdirfd> が参照するディレクトリに対する相対パスと解釈される "
15822 "(B<symlink>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
15823 "ワーキングディレクトリに対する相対パスではない)。"
15825 #. type: Plain text
15826 #: build/C/man2/symlink.2:134
15828 "If I<linkpath> is relative and I<newdirfd> is the special value B<AT_FDCWD>, "
15829 "then I<linkpath> is interpreted relative to the current working directory of "
15830 "the calling process (like B<symlink>())."
15832 "I<linkpath> で指定されたパス名が相対パスで、 I<newdirfd> が特別な値 "
15833 "B<AT_FDCWD> の場合、 (B<symlink>() と同様に) I<linkpath> は呼び出したプロセス"
15834 "のカレントワーキングディレクトリに対する相対パスと解釈される。"
15836 #. type: Plain text
15837 #: build/C/man2/symlink.2:140
15838 msgid "If I<linkpath> is absolute, then I<newdirfd> is ignored."
15840 "I<linkpath> で指定されたパス名が絶対パスの場合、 I<newdirfd> は無視される。"
15842 #. type: Plain text
15843 #: build/C/man2/symlink.2:155
15845 "Write access to the directory containing I<linkpath> is denied, or one of "
15846 "the directories in the path prefix of I<linkpath> did not allow search "
15847 "permission. (See also B<path_resolution>(7).)"
15849 "I<linkpath> を含んでいるディレクトリへの書き込みが拒否されたか、 I<linkpath> "
15850 "に含まれているディレクトリのどれかに検索許可が与えられていない "
15851 "(B<path_resolution>(7) も参照すること)。"
15853 #. type: Plain text
15854 #: build/C/man2/symlink.2:160
15856 "The user's quota of resources on the filesystem has been exhausted. The "
15857 "resources could be inodes or disk blocks, depending on the filesystem "
15860 "そのファイルシステムのリソース使用量がユーザクォータに達している。対象となる"
15861 "リソースは inode かディスクブロックで、どちらになるかはファイルシステムの実装"
15864 #. type: Plain text
15865 #: build/C/man2/symlink.2:164
15866 msgid "I<linkpath> already exists."
15867 msgstr "I<linkpath> が既に存在する。"
15869 #. type: Plain text
15870 #: build/C/man2/symlink.2:167
15871 msgid "I<target> or I<linkpath> points outside your accessible address space."
15873 "I<target> や I<linkpath> がアクセス可能なアドレス空間の外を指している。"
15875 #. type: Plain text
15876 #: build/C/man2/symlink.2:174
15877 msgid "Too many symbolic links were encountered in resolving I<linkpath>."
15878 msgstr "I<linkpath> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
15880 #. type: Plain text
15881 #: build/C/man2/symlink.2:177
15882 msgid "I<target> or I<linkpath> was too long."
15883 msgstr "I<target> または I<linkpath> が長過ぎる。"
15885 #. type: Plain text
15886 #: build/C/man2/symlink.2:184
15888 "A directory component in I<linkpath> does not exist or is a dangling "
15889 "symbolic link, or I<target> is the empty string."
15891 "I<linkpath> に含まれるディレクトリ部分が存在しないか、壊れたリンクであるか、 "
15892 "I<target> が空文字列である。"
15894 #. type: Plain text
15895 #: build/C/man2/symlink.2:196
15897 "A component used as a directory in I<linkpath> is not, in fact, a directory."
15899 "I<linkpath> に含まれるディレクトリ部分が、実際には、ディレクトリではない。"
15901 #. type: Plain text
15902 #: build/C/man2/symlink.2:201
15904 "The filesystem containing I<linkpath> does not support the creation of "
15907 "I<linkpath> を含んでいるファイルシステム (file system) が シンボリックリンク"
15910 #. type: Plain text
15911 #: build/C/man2/symlink.2:205
15912 msgid "I<linkpath> is on a read-only filesystem."
15913 msgstr "I<linkpath> が読み込み専用のファイルシステムに存在している。"
15915 #. type: Plain text
15916 #: build/C/man2/symlink.2:208
15917 msgid "The following additional errors can occur for B<symlinkat>():"
15918 msgstr "B<symlinkat>() では以下のエラーも発生する。"
15920 #. type: Plain text
15921 #: build/C/man2/symlink.2:212
15922 msgid "I<newdirfd> is not a valid file descriptor."
15923 msgstr "I<newdirfd> が有効なファイルディスクリプタでない。"
15925 #. type: Plain text
15926 #: build/C/man2/symlink.2:218
15929 #| "I<linkpath> is relative and I<newdirfd> is a file descriptor referring to "
15930 #| "a file other than a directory."
15932 "I<linkpath> is a relative pathname and I<newdirfd> refers to a directory "
15933 "that has been deleted."
15935 "I<linkpath> が相対パスで、 I<newdirfd> がディレクトリ以外のファイルを参照して"
15936 "いるファイルディスクリプタである。"
15938 #. type: Plain text
15939 #: build/C/man2/symlink.2:224
15941 "I<linkpath> is relative and I<newdirfd> is a file descriptor referring to a "
15942 "file other than a directory."
15944 "I<linkpath> が相対パスで、 I<newdirfd> がディレクトリ以外のファイルを参照して"
15945 "いるファイルディスクリプタである。"
15947 #. type: Plain text
15948 #: build/C/man2/symlink.2:228
15950 "B<symlinkat>() was added to Linux in kernel 2.6.16; library support was "
15951 "added to glibc in version 2.4."
15953 "B<symlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
15954 "ポートはバージョン 2.4 で glibc に追加された。"
15956 #. SVr4 documents additional error codes EDQUOT and ENOSYS.
15959 #. re multiple files with the same name, and NFS.
15960 #. type: Plain text
15961 #: build/C/man2/symlink.2:235
15962 msgid "B<symlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
15963 msgstr "B<symlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
15965 #. type: Plain text
15966 #: build/C/man2/symlink.2:238
15967 msgid "B<symlinkat>(): POSIX.1-2008."
15968 msgstr "B<symlinkat>(): POSIX.1-2008."
15970 #. type: Plain text
15971 #: build/C/man2/symlink.2:242
15972 msgid "No checking of I<target> is done."
15973 msgstr "I<target> についてのチェックは行なわれない。"
15975 #. type: Plain text
15976 #: build/C/man2/symlink.2:247
15978 "Deleting the name referred to by a symbolic link will actually delete the "
15979 "file (unless it also has other hard links). If this behavior is not "
15980 "desired, use B<link>(2)."
15982 "シンボリックリンクによって参照される名前を削除すると (それが他にハードリンク "
15983 "(hard link) を持たなければ) 実際にファイルが削除される。 この動作が望んだもの"
15984 "でない場合は、 B<link>(2) を使用すること。"
15986 #. type: Plain text
15987 #: build/C/man2/symlink.2:258
15989 "B<ln>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<open>(2), B<readlink>(2), "
15990 "B<rename>(2), B<unlink>(2), B<path_resolution>(7), B<symlink>(7)"
15992 "B<ln>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<open>(2), B<readlink>(2), "
15993 "B<rename>(2), B<unlink>(2), B<path_resolution>(7), B<symlink>(7)"
15995 #. type: Plain text
15996 #: build/C/man7/symlink.7:40
15997 msgid "symlink - symbolic link handling"
15998 msgstr "symlink - シンボリックリンクの取り扱い"
16000 #. type: Plain text
16001 #: build/C/man7/symlink.7:44
16003 "Symbolic links are files that act as pointers to other files. To understand "
16004 "their behavior, you must first understand how hard links work."
16006 "シンボリックリンクは他のファイルへのポインタとして振る舞うファイルである。 そ"
16007 "の挙動を理解するには、まずハードリンクがどのように機能するかを理解しておかな"
16010 #. type: Plain text
16011 #: build/C/man7/symlink.7:60
16013 "A hard link to a file is indistinguishable from the original file because it "
16014 "is a reference to the object underlying the original filename. (To be "
16015 "precise: each of the hard links to a file is a reference to the same I<i-"
16016 "node number>, where an i-node number is an index into the i-node table, "
16017 "which contains metadata about all files on a filesystem. See B<stat>(2).) "
16018 "Changes to a file are independent of the name used to reference the file. "
16019 "Hard links may not refer to directories (to prevent the possibility of loops "
16020 "within the filesystem tree, which would confuse many programs) and may not "
16021 "refer to files on different filesystems (because i-node numbers are not "
16022 "unique across filesystems)."
16024 "あるファイルへのハードリンクは、 元々のファイルと区別することができない。 な"
16025 "ぜなら、 ハードリンクは元々のファイル名の裏にあるオブジェクトへの参照だからで"
16026 "ある。 (より正確には、 あるファイルへのハードリンクはそれぞれ同じ I<i-node 番"
16027 "号> への参照である。 i-node 番号は i-node テーブルへのインデックスで、 i-"
16028 "node テーブルはファイルシステム上のすべてのファイルについてのメタデータを保持"
16029 "している。 B<stat>(2) 参照。) ファイルへの変更は、ファイルの参照に使用された"
16030 "名前とは独立に行われる。 ハードリンクはディレクトリを参照することはできない "
16031 "(これはファイルシステムツリー内でループが発生する可能性を防止するためであ"
16032 "り、 ループが発生すると、 多くのプログラムが混乱してしまうことだろう)。 ま"
16033 "た、 ハードリンクは異なるファイルシステム上のファイルを参照することもできな"
16034 "い (i-node 番号はファイルシステムをまたがると一意ではないからである)。"
16036 #. type: Plain text
16037 #: build/C/man7/symlink.7:69
16039 "A symbolic link is a special type of file whose contents are a string that "
16040 "is the pathname of another file, the file to which the link refers. (The "
16041 "contents of a symbolic link can be read using B<readlink>(2).) In other "
16042 "words, a symbolic link is a pointer to another name, and not to an "
16043 "underlying object. For this reason, symbolic links may refer to directories "
16044 "and may cross filesystem boundaries."
16046 "シンボリックリンクは特別な種類のファイルで、 ファイルの内容はそのリンクの参照"
16047 "先の別のファイルのパス名を示す文字列である (シンボリックリンクの内容は "
16048 "B<readlink>(2) を使って読むことができる)。 言い換えると、 シンボリックリンク"
16049 "は別の名前へのポインタであり、 ファイルの裏にあるオブジェクトへのポインタでは"
16050 "ない。 この理由から、 シンボリックリンクではディレクトリへの参照やファイルシ"
16051 "ステム境界を越える参照を行うことができる。"
16053 #. type: Plain text
16054 #: build/C/man7/symlink.7:75
16056 "There is no requirement that the pathname referred to by a symbolic link "
16057 "should exist. A symbolic link that refers to a pathname that does not exist "
16058 "is said to be a I<dangling link>."
16060 "シンボリックリンクが参照する先のパス名が存在しないといけないという要件はな"
16061 "い。 存在しないパス名を参照するシンボリックリンクは「壊れた (dangling) リン"
16064 #. type: Plain text
16065 #: build/C/man7/symlink.7:87
16067 "Because a symbolic link and its referenced object coexist in the filesystem "
16068 "name space, confusion can arise in distinguishing between the link itself "
16069 "and the referenced object. On historical systems, commands and system calls "
16070 "adopted their own link-following conventions in a somewhat ad-hoc fashion. "
16071 "Rules for a more uniform approach, as they are implemented on Linux and "
16072 "other systems, are outlined here. It is important that site-local "
16073 "applications also conform to these rules, so that the user interface can be "
16074 "as consistent as possible."
16076 "シンボリックリンクとその参照先のオブジェクトは一つのファイルシステムの名前空"
16077 "間内に共存するので、 リンクそのものと参照先のオブジェクトの間で混乱が生じる可"
16078 "能性がある。 かなり昔からあるシステムでは、 コマンドやシステムコールはいくら"
16079 "かアドホックな方法の独自のリンクの辿り方の決まり事を採用している。 ここで"
16080 "は、 Linux や他のシステムで実装されている、 もっと広く使われている方法のルー"
16081 "ルについて概要を説明する。 サイト固有のアプリケーションもこれらのルールに準拠"
16082 "し、 可能な限りユーザインターフェースが一貫したものになるようにすることが重要"
16086 #: build/C/man7/symlink.7:87
16088 msgid "Symbolic link ownership, permissions, and timestamps"
16089 msgstr "シンボリックリンクの所有権、アクセス許可、タイムスタンプ"
16091 #. type: Plain text
16092 #: build/C/man7/symlink.7:95
16094 "The owner and group of an existing symbolic link can be changed using "
16095 "B<lchown>(2). The only time that the ownership of a symbolic link matters "
16096 "is when the link is being removed or renamed in a directory that has the "
16097 "sticky bit set (see B<stat>(2))."
16099 "既存のシンボリックリンクの所有者とグループは B<lchown>(2) を使って変更するこ"
16100 "とができる。 シンボリックリンクの所有権が問題となる場面は、 スティッキービッ"
16101 "ト (B<stat>(2) 参照) がセットされたディレクトリで、 そのリンクの削除や名前の"
16102 "変更を行おうとしている場合だけである。"
16104 #. type: Plain text
16105 #: build/C/man7/symlink.7:101
16107 "The last access and last modification timestamps of a symbolic link can be "
16108 "changed using B<utimensat>(2) or B<lutimes>(3)."
16110 "シンボリックリンクの最終アクセス時刻と最終修正時刻は B<utimensat>(2) や "
16111 "B<lutimes>(3) で変更できる。"
16113 #. Linux does not currently implement an lchmod(2).
16116 #. system differs from historical
16118 #. systems in that the system call
16120 #. has been changed to follow symbolic links.
16123 #. system call was added later when the limitations of the new
16125 #. became apparent.
16126 #. type: Plain text
16127 #: build/C/man7/symlink.7:120
16129 "On Linux, the permissions of a symbolic link are not used in any operations; "
16130 "the permissions are always 0777 (read, write, and execute for all user "
16131 "categories), and can't be changed."
16133 "Linux では、シンボリックリンクのアクセス許可 (permission) はどの操作でも使用"
16134 "されない。 アクセス許可は常に 0777 (すべてのユーザカテゴリにおいて読み出し、"
16135 "書き込み、実行が可能) で、変更できない。"
16138 #: build/C/man7/symlink.7:120
16140 msgid "Obtaining a file descriptor that refers to a symbolic link"
16143 #. type: Plain text
16144 #: build/C/man7/symlink.7:138
16146 "Using the combination of the B<O_PATH> and B<O_NOFOLLOW> flags to "
16147 "B<open>(2) yields a file descriptor that can be passed as the I<dirfd> "
16148 "argument in system calls such as B<fstatat>(2), B<fchownat>(2), "
16149 "B<fchmodat>(2), B<linkat>(2), and B<readlinkat>(2), in order to operate on "
16150 "the symbolic link itself (rather than the file to which it refers)."
16152 "B<open>(2) に B<O_PATH> と B<O_NOFOLLOW> の両方のフラグを指定すると、ファイル"
16153 "ディスクリプターが得られる。このファイルディスクリプターは B<fstatat>(2), "
16154 "B<fchownat>(2), B<fchmodat>(2), B<linkat> (2), B<readlinkat>(2) などのシステ"
16155 "ムコールの I<dirfd> 引き数として渡して、 (シンボリックリンクが参照するファイ"
16156 "ルではなく) シンボリックリンク自身に対する操作を行うことができる。"
16158 #. type: Plain text
16159 #: build/C/man7/symlink.7:154
16161 "By default (i.e., if the B<AT_SYMLINK_FOLLOW> flag is not specified), if "
16162 "B<name_to_handle_at>(2) is applied to a symbolic link, it yields a handle "
16163 "for the symbolic link (rather than the file to which it refers). One can "
16164 "then obtain a file descriptor for the symbolic link (rather than the file to "
16165 "which it refers) by specifying the B<O_PATH> flag in a subsequent call to "
16166 "B<open_by_handle_at>(2). Again, that file descriptor can be used in the "
16167 "aforementioned system calls to operate on the symbolic link itself."
16171 #: build/C/man7/symlink.7:154
16173 msgid "Handling of symbolic links by system calls and commands"
16174 msgstr "システムコールやコマンドによるシンボリックリンクの取り扱い"
16176 #. type: Plain text
16177 #: build/C/man7/symlink.7:169
16179 "Symbolic links are handled either by operating on the link itself, or by "
16180 "operating on the object referred to by the link. In the latter case, an "
16181 "application or system call is said to I<follow> the link. Symbolic links "
16182 "may refer to other symbolic links, in which case the links are dereferenced "
16183 "until an object that is not a symbolic link is found, a symbolic link that "
16184 "refers to a file which does not exist is found, or a loop is detected. "
16185 "(Loop detection is done by placing an upper limit on the number of links "
16186 "that may be followed, and an error results if this limit is exceeded.)"
16189 #. type: Plain text
16190 #: build/C/man7/symlink.7:172
16192 "There are three separate areas that need to be discussed. They are as "
16194 msgstr "3 つの領域に分けて議論する必要がある。以下の 3 つである。"
16197 #: build/C/man7/symlink.7:172
16202 #. type: Plain text
16203 #: build/C/man7/symlink.7:174
16204 msgid "Symbolic links used as filename arguments for system calls."
16206 "システムコールのファイル名引き数としてシンボリックリンクが使用される場合。"
16209 #: build/C/man7/symlink.7:174
16214 #. type: Plain text
16215 #: build/C/man7/symlink.7:177
16217 "Symbolic links specified as command-line arguments to utilities that are not "
16218 "traversing a file tree."
16220 "ファイルツリーを辿っていないユーティリティのコマンドライン引き数としてシンボ"
16224 #: build/C/man7/symlink.7:177
16229 #. type: Plain text
16230 #: build/C/man7/symlink.7:181
16232 "Symbolic links encountered by utilities that are traversing a file tree "
16233 "(either specified on the command line or encountered as part of the file "
16236 "ファイルツリーを辿っているユーティリティがシンボリックリンクを見つけた場合 "
16237 "(コマンドラインで指定される場合もあれば、 ファイル階層を辿っている途中で遭遇"
16241 #: build/C/man7/symlink.7:181
16243 msgid "System calls"
16246 #. type: Plain text
16247 #: build/C/man7/symlink.7:184
16249 "The first area is symbolic links used as filename arguments for system calls."
16251 "最初の領域は、システムコールのファイル名引き数としてシンボリックリンクが使用"
16254 #. type: Plain text
16255 #: build/C/man7/symlink.7:194
16257 "Except as noted below, all system calls follow symbolic links. For example, "
16258 "if there were a symbolic link I<slink> which pointed to a file named "
16259 "I<afile>, the system call I<open(\"slink\" ...\\&)> would return a file "
16260 "descriptor referring to the file I<afile>."
16262 "以下に述べる場合を除くと、 すべてのシステムコールはシンボリックリンクを辿"
16263 "る。 例えば、 I<afile> という名前のファイルを指しているシンボリックリンク "
16264 "I<slink> があったとすると、 システムコール I<open(\"slink\" ...\\&)> はファイ"
16265 "ル I<afile> を参照するファイルディスクリプタを返す。"
16267 #. type: Plain text
16268 #: build/C/man7/symlink.7:209
16270 "Various system calls do not follow links, and operate on the symbolic link "
16271 "itself. They are: B<lchown>(2), B<lgetxattr>(2), B<llistxattr>(2), "
16272 "B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), B<readlink>(2), "
16273 "B<rename>(2), B<rmdir>(2), and B<unlink>(2)."
16276 #. Maybe one day: .BR fchownat (2)
16277 #. type: Plain text
16278 #: build/C/man7/symlink.7:233
16280 "Certain other system calls optionally follow symbolic links. They are: "
16281 "B<faccessat>(2), B<fchownat>(2), B<fstatat>(2), B<linkat>(2), "
16282 "B<name_to_handle_at>(2), B<open>(2), B<openat>(2), B<open_by_handle_at>(2), "
16283 "and B<utimensat>(2); see their manual pages for details. Because "
16284 "B<remove>(3) is an alias for B<unlink>(2), that library function also does "
16285 "not follow symbolic links. When B<rmdir>(2) is applied to a symbolic link, "
16286 "it fails with the error B<ENOTDIR>."
16289 #. type: Plain text
16290 #: build/C/man7/symlink.7:248
16292 "The B<link>(2) warrants special discussion. POSIX.1-2001 specifies that "
16293 "B<link>(2) should dereference I<oldpath> if it is a symbolic link. "
16294 "However, Linux does not do this. (By default Solaris is the same, but the "
16295 "POSIX.1-2001 specified behavior can be obtained with suitable compiler "
16296 "options.) The upcoming POSIX.1 revision changes the specification to allow "
16297 "either behavior in an implementation."
16301 #: build/C/man7/symlink.7:248
16303 msgid "Commands not traversing a file tree"
16304 msgstr "ファイルツリーを辿らないコマンド"
16306 #. type: Plain text
16307 #: build/C/man7/symlink.7:251
16309 "The second area is symbolic links, specified as command-line filename "
16310 "arguments, to commands which are not traversing a file tree."
16312 "二つ目の領域は、ファイルツリーを辿らないコマンドの、コマンドライン引き数の"
16313 "ファイル名としてシンボリックリンクが指定される場合である。"
16315 #. type: Plain text
16316 #: build/C/man7/symlink.7:262
16318 "Except as noted below, commands follow symbolic links named as command-line "
16319 "arguments. For example, if there were a symbolic link I<slink> which "
16320 "pointed to a file named I<afile>, the command I<cat slink> would display the "
16321 "contents of the file I<afile>."
16323 "以下に述べる場合を除くと、 コマンドはコマンドライン引き数で指定された名前のシ"
16324 "ンボリックリンクを辿る。 例えば、 I<afile> という名前のファイルを指しているシ"
16325 "ンボリックリンク I<slink> があったとすると、 コマンド I<cat slink> は "
16326 "I<afile> の内容を表示することになる。"
16328 #. type: Plain text
16329 #: build/C/man7/symlink.7:270
16331 "It is important to realize that this rule includes commands which may "
16332 "optionally traverse file trees; for example, the command I<chown file> is "
16333 "included in this rule, while the command I<chown\\ -R file>, which performs "
16334 "a tree traversal, is not. (The latter is described in the third area, "
16338 #. type: Plain text
16339 #: build/C/man7/symlink.7:288
16341 "If it is explicitly intended that the command operate on the symbolic link "
16342 "instead of following the symbolic link\\(emfor example, it is desired that "
16343 "I<chown slink> change the ownership of the file that I<slink> is, whether it "
16344 "is a symbolic link or not\\(emthe I<-h> option should be used. In the above "
16345 "example, I<chown root slink> would change the ownership of the file referred "
16346 "to by I<slink>, while I<chown\\ -h root slink> would change the ownership of "
16350 #. type: Plain text
16351 #: build/C/man7/symlink.7:290
16352 msgid "There are some exceptions to this rule:"
16353 msgstr "このルールにはいくつかの例外がある。"
16355 #. type: Plain text
16356 #: build/C/man7/symlink.7:300
16358 "The B<mv>(1) and B<rm>(1) commands do not follow symbolic links named as "
16359 "arguments, but respectively attempt to rename and delete them. (Note, if "
16360 "the symbolic link references a file via a relative path, moving it to "
16361 "another directory may very well cause it to stop working, since the path may "
16362 "no longer be correct.)"
16364 "コマンド B<mv>(1) と B<rm>(1) は引き数で指定された名前のシンボリックリンクを"
16365 "辿らないが、 それぞれシンボリックリンク自身の名前変更と削除を行おうとする。 "
16366 "(シンボリックリンクが相対パスでファイルを参照している場合、 そのシンボリック"
16367 "リンクを別のディレクトリに移動すると、動かなくなることが非常によくある。 移動"
16368 "の結果、 パスが正しくないものになってしまうからである。)"
16370 #. type: Plain text
16371 #: build/C/man7/symlink.7:330
16373 "The B<ls>(1) command is also an exception to this rule. For compatibility "
16374 "with historic systems (when B<ls>(1) is not doing a tree walk\\(emthat is, "
16375 "I<-R> option is not specified), the B<ls>(1) command follows symbolic links "
16376 "named as arguments if the I<-H> or I<-L> option is specified, or if the I<-"
16377 "F>, I<-d>, or I<-l> options are not specified. (The B<ls>(1) command is "
16378 "the only command where the I<-H> and I<-L> options affect its behavior even "
16379 "though it is not doing a walk of a file tree.)"
16382 #. The 4.4BSD system differs from historical 4BSD systems in that the
16386 #. commands follow symbolic links specified on the command line.
16387 #. type: Plain text
16388 #: build/C/man7/symlink.7:348
16390 "The B<file>(1) command is also an exception to this rule. The B<file>(1) "
16391 "command does not follow symbolic links named as argument by default. The "
16392 "B<file>(1) command does follow symbolic links named as argument if the I<-"
16393 "L> option is specified."
16397 #: build/C/man7/symlink.7:348
16399 msgid "Commands traversing a file tree"
16400 msgstr "ファイルツリーを辿るコマンド"
16402 #. type: Plain text
16403 #: build/C/man7/symlink.7:361
16405 "The following commands either optionally or always traverse file trees: "
16406 "B<chgrp>(1), B<chmod>(1), B<chown>(1), B<cp>(1), B<du>(1), B<find>(1), "
16407 "B<ls>(1), B<pax>(1), B<rm>(1), and B<tar>(1)."
16410 #. type: Plain text
16411 #: build/C/man7/symlink.7:365
16413 "It is important to realize that the following rules apply equally to "
16414 "symbolic links encountered during the file tree traversal and symbolic links "
16415 "listed as command-line arguments."
16418 #. type: Plain text
16419 #: build/C/man7/symlink.7:370
16421 "The I<first rule> applies to symbolic links that reference files other than "
16422 "directories. Operations that apply to symbolic links are performed on the "
16423 "links themselves, but otherwise the links are ignored."
16426 #. type: Plain text
16427 #: build/C/man7/symlink.7:382
16429 "The command I<rm\\ -r slink directory> will remove I<slink>, as well as any "
16430 "symbolic links encountered in the tree traversal of I<directory>, because "
16431 "symbolic links may be removed. In no case will B<rm>(1) affect the file "
16432 "referred to by I<slink>."
16435 #. type: Plain text
16436 #: build/C/man7/symlink.7:387
16438 "The I<second rule> applies to symbolic links that refer to directories. "
16439 "Symbolic links that refer to directories are never followed by default. "
16440 "This is often referred to as a \"physical\" walk, as opposed to a \"logical"
16441 "\" walk (where symbolic links the refer to directories are followed)."
16444 #. type: Plain text
16445 #: build/C/man7/symlink.7:390
16447 "Certain conventions are (should be) followed as consistently as possible by "
16448 "commands that perform file tree walks:"
16451 #. type: Plain text
16452 #: build/C/man7/symlink.7:403
16454 "A command can be made to follow any symbolic links named on the command "
16455 "line, regardless of the type of file they reference, by specifying the I<-H> "
16456 "(for \"half-logical\") flag. This flag is intended to make the command-line "
16457 "name space look like the logical name space. (Note, for commands that do "
16458 "not always do file tree traversals, the I<-H> flag will be ignored if the I<-"
16459 "R> flag is not also specified.)"
16462 #. type: Plain text
16463 #: build/C/man7/symlink.7:419
16465 "For example, the command I<chown\\ -HR user slink> will traverse the file "
16466 "hierarchy rooted in the file pointed to by I<slink>. Note, the I<-H> is not "
16467 "the same as the previously discussed I<-h> flag. The I<-H> flag causes "
16468 "symbolic links specified on the command line to be dereferenced for the "
16469 "purposes of both the action to be performed and the tree walk, and it is as "
16470 "if the user had specified the name of the file to which the symbolic link "
16474 #. type: Plain text
16475 #: build/C/man7/symlink.7:433
16477 "A command can be made to follow any symbolic links named on the command "
16478 "line, as well as any symbolic links encountered during the traversal, "
16479 "regardless of the type of file they reference, by specifying the I<-L> (for "
16480 "\"logical\") flag. This flag is intended to make the entire name space look "
16481 "like the logical name space. (Note, for commands that do not always do file "
16482 "tree traversals, the I<-L> flag will be ignored if the I<-R> flag is not "
16486 #. type: Plain text
16487 #: build/C/man7/symlink.7:448
16489 "For example, the command I<chown\\ -LR user slink> will change the owner of "
16490 "the file referred to by I<slink>. If I<slink> refers to a directory, "
16491 "B<chown> will traverse the file hierarchy rooted in the directory that it "
16492 "references. In addition, if any symbolic links are encountered in any file "
16493 "tree that B<chown> traverses, they will be treated in the same fashion as "
16497 #. type: Plain text
16498 #: build/C/man7/symlink.7:455
16500 "A command can be made to provide the default behavior by specifying the I<-"
16501 "P> (for \"physical\") flag. This flag is intended to make the entire name "
16502 "space look like the physical name space."
16505 #. type: Plain text
16506 #: build/C/man7/symlink.7:473
16508 "For commands that do not by default do file tree traversals, the I<-H>, I<-"
16509 "L>, and I<-P> flags are ignored if the I<-R> flag is not also specified. In "
16510 "addition, you may specify the I<-H>, I<-L>, and I<-P> options more than "
16511 "once; the last one specified determines the command's behavior. This is "
16512 "intended to permit you to alias commands to behave one way or the other, and "
16513 "then override that behavior on the command line."
16516 #. type: Plain text
16517 #: build/C/man7/symlink.7:479
16518 msgid "The B<ls>(1) and B<rm>(1) commands have exceptions to these rules:"
16520 "コマンド B<ls>(1) と B<rm>(1) には、 これらのルールに対する例外がある。"
16522 #. type: Plain text
16523 #: build/C/man7/symlink.7:492
16525 "The B<rm>(1) command operates on the symbolic link, and not the file it "
16526 "references, and therefore never follows a symbolic link. The B<rm>(1) "
16527 "command does not support the I<-H>, I<-L>, or I<-P> options."
16529 "B<rm>(1) コマンドは、 参照先のファイルではなく、シンボリックリンクに対して操"
16530 "作を行う。 したがって、 シンボリックリンクを辿ることはない。 B<rm>(1) コマン"
16531 "ドはオプション I<-H>, I<-L>, I<-P> をサポートしていない。"
16533 #. type: Plain text
16534 #: build/C/man7/symlink.7:512
16536 "To maintain compatibility with historic systems, the B<ls>(1) command acts "
16537 "a little differently. If you do not specify the I<-F>, I<-d> or I<-l> "
16538 "options, B<ls>(1) will follow symbolic links specified on the command "
16539 "line. If the I<-L> flag is specified, B<ls>(1) follows all symbolic links, "
16540 "regardless of their type, whether specified on the command line or "
16541 "encountered in the tree walk."
16544 #. type: Plain text
16545 #: build/C/man7/symlink.7:530
16547 "B<chgrp>(1), B<chmod>(1), B<find>(1), B<ln>(1), B<ls>(1), B<mv>(1), "
16548 "B<rm>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<readlink>(2), "
16549 "B<rename>(2), B<symlink>(2), B<unlink>(2), B<utimensat>(2), B<lutimes>(3), "
16550 "B<path_resolution>(7)"
16552 "B<chgrp>(1), B<chmod>(1), B<find>(1), B<ln>(1), B<ls>(1), B<mv>(1),\n"
16553 "B<rm>(1), B<lchown>(2), B<link>(2), B<lstat>(2), B<readlink>(2),\n"
16554 "B<rename>(2), B<symlink>(2), B<unlink>(2), B<utimensat>(2),\n"
16555 "B<lutimes>(3), B<path_resolution>(7)"
16558 #: build/C/man3/tempnam.3:25
16564 #: build/C/man3/tempnam.3:25 build/C/man3/tmpnam.3:27
16567 msgstr "2014-02-27"
16569 #. type: Plain text
16570 #: build/C/man3/tempnam.3:28
16571 msgid "tempnam - create a name for a temporary file"
16572 msgstr "tempnam - テンポラリファイルの名前を作成する"
16574 #. type: Plain text
16575 #: build/C/man3/tempnam.3:33
16577 msgid "B<char *tempnam(const char *>I<dir>B<, const char *>I<pfx>B<);>\n"
16578 msgstr "B<char *tempnam(const char *>I<dir>B<, const char *>I<pfx>B<);>\n"
16580 #. type: Plain text
16581 #: build/C/man3/tempnam.3:42
16582 msgid "B<tempnam>(): _BSD_SOURCE || _SVID_SOURCE"
16583 msgstr "B<tempnam>(): _BSD_SOURCE || _SVID_SOURCE"
16585 #. type: Plain text
16586 #: build/C/man3/tempnam.3:49
16588 "I<Never use this function.> Use B<mkstemp>(3) or B<tmpfile>(3) instead."
16590 "I<決してこの関数を使用しないこと。> 代わりに B<mkstemp>(3) か B<tmpfile>(3) "
16593 #. type: Plain text
16594 #: build/C/man3/tempnam.3:63
16596 "The B<tempnam>() function returns a pointer to a string that is a valid "
16597 "filename, and such that a file with this name did not exist when "
16598 "B<tempnam>() checked. The filename suffix of the pathname generated will "
16599 "start with I<pfx> in case I<pfx> is a non-NULL string of at most five "
16600 "bytes. The directory prefix part of the pathname generated is required to "
16601 "be \"appropriate\" (often that at least implies writable)."
16603 "B<tempnam>() 関数はファイル名として正しい文字列へのポインタを返す。 このファ"
16604 "イル名を持つファイルは、 B<tempnam>() がチェックした時点においては存在しな"
16605 "い (しなかった)。 I<pfx> が NULL でない 5 バイト以内の文字列であれば、 生成さ"
16606 "れるパス名のうちのファイル名の部分は I<pfx> から始まるものになる。 生成される"
16607 "ディレクトリの部分は、「適切」でなければならない (大抵の場合、「適切」である"
16608 "ためにはまず少なくとも 書き込み可能でなければならない)。"
16610 #. type: Plain text
16611 #: build/C/man3/tempnam.3:66
16613 "Attempts to find an appropriate directory go through the following steps:"
16614 msgstr "適切なディレクトリの探索は、以下の手順にしたがって行われる。"
16617 #: build/C/man3/tempnam.3:66
16622 #. type: Plain text
16623 #: build/C/man3/tempnam.3:72
16625 "In case the environment variable B<TMPDIR> exists and contains the name of "
16626 "an appropriate directory, that is used."
16628 "環境変数 B<TMPDIR> が設定されていて、 その内容が適切なディレクトリの名前な"
16632 #: build/C/man3/tempnam.3:72
16637 #. type: Plain text
16638 #: build/C/man3/tempnam.3:77
16640 "Otherwise, if the I<dir> argument is non-NULL and appropriate, it is used."
16642 "それ以外の場合、 I<dir> 引き数が NULL でない文字列でかつ適切なら、それを用い"
16646 #: build/C/man3/tempnam.3:77
16651 #. type: Plain text
16652 #: build/C/man3/tempnam.3:84
16654 "Otherwise, I<P_tmpdir> (as defined in I<E<lt>stdio.hE<gt>>) is used when "
16657 "それ以外の場合、 (I<E<lt>stdio.hE<gt>> で定義されている) I<P_tmpdir> が適切"
16661 #: build/C/man3/tempnam.3:84
16666 #. type: Plain text
16667 #: build/C/man3/tempnam.3:87
16668 msgid "Finally an implementation-defined directory may be used."
16669 msgstr "最後に実装で定義されたディレクトリが用いられることになる。"
16671 #. type: Plain text
16672 #: build/C/man3/tempnam.3:94
16674 "The string returned by B<tempnam>() is allocated using B<malloc>(3) and "
16675 "hence should be freed by B<free>(3)."
16677 "B<tempnam>() が返す文字列は B<malloc>(3) を使って確保される。そのため、 "
16678 "B<free>(3) で解放すべきである。"
16680 #. type: Plain text
16681 #: build/C/man3/tempnam.3:101
16683 "On success, the B<tempnam>() function returns a pointer to a unique "
16684 "temporary filename. It returns NULL if a unique name cannot be generated, "
16685 "with I<errno> set to indicate the cause of the error."
16687 "成功すると B<tempnam>() 関数は、一意なテンポラリファイル名へのポインタを返"
16688 "す。 一意な名前が生成できなければ NULL を返し、 I<errno> にエラーの原因を示す"
16691 #. type: Plain text
16692 #: build/C/man3/tempnam.3:105
16693 msgid "Allocation of storage failed."
16694 msgstr "保存領域の割り当てに失敗した。"
16696 #. type: Plain text
16697 #: build/C/man3/tempnam.3:110
16699 "SVr4, 4.3BSD, POSIX.1-2001. POSIX.1-2008 marks B<tempnam>() as obsolete."
16701 "SVr4, 4.3BSD, POSIX.1-2001. POSIX.1-2008 は B<tempnam>() を廃止予定としてい"
16704 #. type: Plain text
16705 #: build/C/man3/tempnam.3:129
16707 "Although B<tempnam>() generates names that are difficult to guess, it is "
16708 "nevertheless possible that between the time that B<tempnam>() returns a "
16709 "pathname, and the time that the program opens it, another program might "
16710 "create that pathname using B<open>(2), or create it as a symbolic link. "
16711 "This can lead to security holes. To avoid such possibilities, use the "
16712 "B<open>(2) B<O_EXCL> flag to open the pathname. Or better yet, use "
16713 "B<mkstemp>(3) or B<tmpfile>(3)."
16715 "B<tempnam>() は推測が難しい名前を生成するが、それにもかかわらず、 "
16716 "B<tempnam>() がパス名を返してから、プログラムがそのファイルをオープンする ま"
16717 "での間に、別のプログラムが同じパス名で、ファイルを B<open>(2) で作成したり、"
16718 "シンボリックリンクを作成したりする可能性がある。 これはセキュリティホールにつ"
16719 "ながる可能性がある。 そのような可能性を回避するためには、 B<open>(2) の "
16720 "B<O_EXCL> フラグを使ってパス名をオープンすればよい。 もっといいのは、 "
16721 "B<mkstemp>(3) や B<tmpfile>(3) を使うことである。"
16723 #. type: Plain text
16724 #: build/C/man3/tempnam.3:137
16726 "SUSv2 does not mention the use of B<TMPDIR>; glibc will use it only when the "
16727 "program is not set-user-ID. On SVr4, the directory used under B<d)> is I</"
16728 "tmp> (and this is what glibc does)."
16730 "SUSv2 では B<TMPDIR> に付いて言及されていない。 glibc は、プログラムが set-"
16731 "user-ID されていない場合に限ってこれを用いる。 SVr4 では B<d)> で使用される"
16732 "ディレクトリを I</tmp> と定めている (glibc もこの通りである)。"
16734 #. type: Plain text
16735 #: build/C/man3/tempnam.3:142
16737 "Because it dynamically allocates memory used to return the pathname, "
16738 "B<tempnam>() is reentrant, and thus thread safe, unlike B<tmpnam>(3)."
16740 "パス名を返すのに使用するメモリを動的に確保するので、 B<tmpnam>(3) と違い、 "
16741 "B<tempnam>() はリエントラントであり、スレッドセーフである。"
16743 #. type: Plain text
16744 #: build/C/man3/tempnam.3:155
16746 "The B<tempnam>() function generates a different string each time it is "
16747 "called, up to B<TMP_MAX> (defined in I<E<lt>stdio.hE<gt>>) times. If it is "
16748 "called more than B<TMP_MAX> times, the behavior is implementation defined."
16750 "B<tempnam>() 関数は最大 B<TMP_MAX> 回まで、呼び出される度に異なる文字列を作"
16751 "成する (B<TMP_MAX> は I<E<lt>stdio.hE<gt>> で定義されている)。 もし "
16752 "B<TMP_MAX> 回以上呼び出された場合、動作は実装依存である。"
16754 #. type: Plain text
16755 #: build/C/man3/tempnam.3:159
16756 msgid "B<tempnam>() uses at most the first five bytes from I<pfx>."
16757 msgstr "B<tempnam>() は最大で I<pfx> の先頭 5 バイトを使用する。"
16759 #. type: Plain text
16760 #: build/C/man3/tempnam.3:165
16762 "The glibc implementation of B<tempnam>() will fail with the error B<EEXIST> "
16763 "upon failure to find a unique name."
16765 "他と重ならない名前が見つけられなかった場合、glibc の B<tempnam>() の実装はエ"
16766 "ラー B<EEXIST> で失敗する。"
16768 #. type: Plain text
16769 #: build/C/man3/tempnam.3:168
16771 "The precise meaning of \"appropriate\" is undefined; it is unspecified how "
16772 "accessibility of a directory is determined."
16774 "「適切」という言葉の正確な意味は定義されていない。 ディレクトリに対してどの程"
16775 "度のアクセス権限が必要なのかは指定されていない。"
16777 #. type: Plain text
16778 #: build/C/man3/tempnam.3:173
16779 msgid "B<mkstemp>(3), B<mktemp>(3), B<tmpfile>(3), B<tmpnam>(3)"
16780 msgstr "B<mkstemp>(3), B<mktemp>(3), B<tmpfile>(3), B<tmpnam>(3)"
16783 #: build/C/man3/tmpfile.3:31
16788 #. type: Plain text
16789 #: build/C/man3/tmpfile.3:34
16790 msgid "tmpfile - create a temporary file"
16791 msgstr "tmpfile - テンポラリファイルを作成する"
16793 #. type: Plain text
16794 #: build/C/man3/tmpfile.3:39
16796 msgid "B<FILE *tmpfile(void);>\n"
16797 msgstr "B<FILE *tmpfile(void);>\n"
16799 #. type: Plain text
16800 #: build/C/man3/tmpfile.3:47
16802 "The B<tmpfile>() function opens a unique temporary file in binary read/"
16803 "write (w+b) mode. The file will be automatically deleted when it is closed "
16804 "or the program terminates."
16806 "B<tmpfile>() 関数はユニークなテンポラリファイルを バイナリリードライトモー"
16807 "ド (w+b) でオープンする。 このファイルはクローズ時またはプログラムの終了時に"
16810 #. type: Plain text
16811 #: build/C/man3/tmpfile.3:56
16813 "The B<tmpfile>() function returns a stream descriptor, or NULL if a unique "
16814 "filename cannot be generated or the unique file cannot be opened. In the "
16815 "latter case, I<errno> is set to indicate the error."
16817 "B<tmpfile>() 関数はファイルポインタを返すか、 ユニークなファイルが作れなかっ"
16818 "たかオープンできなかった場合は NULL を返す。 後者の場合、エラーを表す "
16821 #. type: Plain text
16822 #: build/C/man3/tmpfile.3:60
16823 msgid "Search permission denied for directory in file's path prefix."
16825 "ファイルのあるディレクトリにサーチのアクセス権 (search permission) がない。"
16827 #. type: Plain text
16828 #: build/C/man3/tmpfile.3:63
16829 msgid "Unable to generate a unique filename."
16830 msgstr "ユニークなファイル名が作成できなかった。"
16832 #. type: Plain text
16833 #: build/C/man3/tmpfile.3:66
16834 msgid "The call was interrupted by a signal."
16835 msgstr "呼び出しがシグナルによって中断された。"
16837 #. type: Plain text
16838 #: build/C/man3/tmpfile.3:69
16839 msgid "Too many file descriptors in use by the process."
16840 msgstr "1 つのプロセスで使用可能なファイルディスクリプタ数を超過した。"
16842 #. type: Plain text
16843 #: build/C/man3/tmpfile.3:72
16844 msgid "Too many files open in the system."
16845 msgstr "システム全体でオープン可能なファイル数を超過した。"
16847 #. type: Plain text
16848 #: build/C/man3/tmpfile.3:75
16849 msgid "There was no room in the directory to add the new filename."
16850 msgstr "ディレクトリに新しいファイルを追加するための空き領域がない。"
16852 #. type: Plain text
16853 #: build/C/man3/tmpfile.3:78
16854 msgid "Read-only filesystem."
16855 msgstr "読みだし専用ファイルシステムである。"
16857 #. type: Plain text
16858 #: build/C/man3/tmpfile.3:80
16859 msgid "SVr4, 4.3BSD, C89, C99, SUSv2, POSIX.1-2001."
16860 msgstr "SVr4, 4.3BSD, C89, C99, SUSv2, POSIX.1-2001."
16862 #. type: Plain text
16863 #: build/C/man3/tmpfile.3:86
16865 "POSIX.1-2001 specifies: an error message may be written to I<stdout> if the "
16866 "stream cannot be opened."
16868 "POSIX.1-2001 では、 ストリームをオープンできなかった場合、 I<stdout> にエラー"
16869 "メッセージが書き出される、と規定されている。"
16871 #. type: Plain text
16872 #: build/C/man3/tmpfile.3:97
16874 "The standard does not specify the directory that B<tmpfile>() will use. "
16875 "Glibc will try the path prefix I<P_tmpdir> defined in I<E<lt>stdio.hE<gt>>, "
16876 "and if that fails the directory I</tmp>."
16878 "規格では B<tmpfile>() が使うディレクトリは指定されていない。 glibc では "
16879 "I<E<lt>stdio.hE<gt>> で定義されている I<P_tmpdir> をパスの先頭に使おうとす"
16880 "る。 これが失敗した場合は、ディレクトリ I</tmp> を使う。"
16882 #. type: Plain text
16883 #: build/C/man3/tmpfile.3:103
16884 msgid "B<exit>(3), B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpnam>(3)"
16885 msgstr "B<exit>(3), B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpnam>(3)"
16888 #: build/C/man3/tmpnam.3:27
16893 #. type: Plain text
16894 #: build/C/man3/tmpnam.3:30
16895 msgid "tmpnam, tmpnam_r - create a name for a temporary file"
16896 msgstr "tmpnam, tmpnam_r - 一時ファイルの名前を作成する"
16898 #. type: Plain text
16899 #: build/C/man3/tmpnam.3:35
16901 msgid "B<char *tmpnam(char *>I<s>B<);>\n"
16902 msgstr "B<char *tmpnam(char *>I<s>B<);>\n"
16904 #. type: Plain text
16905 #: build/C/man3/tmpnam.3:45
16907 "B<Note:> Avoid use of B<tmpnam>(); use B<mkstemp>(3) or B<tmpfile>(3) "
16910 "B<注意:> B<tmpnam>() の使用は避けること。代わりに B<mkstemp>(3) か "
16911 "B<tmpfile>(3) を使うこと。"
16913 #. type: Plain text
16914 #: build/C/man3/tmpnam.3:67
16916 "The B<tmpnam>() function returns a pointer to a string that is a valid "
16917 "filename, and such that a file with this name did not exist at some point in "
16918 "time, so that naive programmers may think it a suitable name for a temporary "
16919 "file. If the argument I<s> is NULL, this name is generated in an internal "
16920 "static buffer and may be overwritten by the next call to B<tmpnam>(). If "
16921 "I<s> is not NULL, the name is copied to the character array (of length at "
16922 "least I<L_tmpnam>) pointed to by I<s> and the value I<s> is returned in "
16925 "B<tmpnam>() 関数は、ファイル名に使える文字列へのポインタを返す。 ある時点で"
16926 "は同じ名前を持つファイルが存在しないファイル名が返されるので、 幼稚なプログラ"
16927 "マはこの文字列が一時ファイルのファイル名として 適していると考えるかもしれな"
16928 "い。 引き数 I<s> が NULL なら、この名前は内部の静的バッファに作成され、 次に "
16929 "B<tmpnam>() 関数が呼び出された時に上書きされる。 I<s> が NULL でなければ、"
16930 "ファイル名は I<s> が指す (少なくとも I<L_tmpnam> の長さを持つ) 文字配列にコ"
16931 "ピーされ、 成功した場合は I<s> が返される。"
16933 #. type: Plain text
16934 #: build/C/man3/tmpnam.3:79
16936 "The pathname that is created, has a directory prefix I<P_tmpdir>. (Both "
16937 "I<L_tmpnam> and I<P_tmpdir> are defined in I<E<lt>stdio.hE<gt>>, just like "
16938 "the B<TMP_MAX> mentioned below.)"
16940 "作成されるパス名は、ディレクトリの部分に I<P_tmpdir> が使われる。 "
16941 "(I<L_tmpnam> と I<P_tmpdir> は、以下で説明する B<TMP_MAX> 同様 I<E<lt>stdio."
16942 "hE<gt>> で定義されている。)"
16944 #. type: Plain text
16945 #: build/C/man3/tmpnam.3:84
16947 "The B<tmpnam>() function returns a pointer to a unique temporary filename, "
16948 "or NULL if a unique name cannot be generated."
16950 "B<tmpnam>() 関数は一意な一時ファイル名へのポインタを返す。 一意なファイル名"
16951 "が作成できなかった場合は NULL を返す。"
16953 #. type: Plain text
16954 #: build/C/man3/tmpnam.3:86
16955 msgid "No errors are defined."
16956 msgstr "エラーは定義されていない。"
16958 #. type: Plain text
16959 #: build/C/man3/tmpnam.3:92
16961 "The B<tmpnam>() function is thread-safe with exceptions. It is not thread-"
16962 "safe if called with a NULL parameter."
16964 "B<tmpnam>() 関数は例外付きでスレッドセーフである。 NULL パラメータで呼び出さ"
16965 "れた場合はスレッドセーフではない。"
16967 #. type: Plain text
16968 #: build/C/man3/tmpnam.3:96
16969 msgid "The B<tmpnam_r>() function is thread-safe."
16970 msgstr "B<tmpnam_r>() 関数はスレッドセーフである。"
16972 #. type: Plain text
16973 #: build/C/man3/tmpnam.3:101
16975 "SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008 marks B<tmpnam>() as "
16978 "SVr4, 4.3BSD, C89, C99, POSIX.1-2001. POSIX.1-2008 は B<tmpnam>() を廃止予"
16981 #. type: Plain text
16982 #: build/C/man3/tmpnam.3:112
16984 "The B<tmpnam>() function generates a different string each time it is "
16985 "called, up to B<TMP_MAX> times. If it is called more than B<TMP_MAX> times, "
16986 "the behavior is implementation defined."
16988 "B<tmpnam>() 関数は最大 B<TMP_MAX> 回まで、呼び出される度に異なる文字列を作成"
16989 "する。 B<TMP_MAX> 回以上呼び出された場合、その動作は実装依存である。"
16991 #. type: Plain text
16992 #: build/C/man3/tmpnam.3:131
16994 "Although B<tmpnam>() generates names that are difficult to guess, it is "
16995 "nevertheless possible that between the time that B<tmpnam>() returns a "
16996 "pathname, and the time that the program opens it, another program might "
16997 "create that pathname using B<open>(2), or create it as a symbolic link. "
16998 "This can lead to security holes. To avoid such possibilities, use the "
16999 "B<open>(2) B<O_EXCL> flag to open the pathname. Or better yet, use "
17000 "B<mkstemp>(3) or B<tmpfile>(3)."
17002 "B<tmpnam>() は推測が難しい名前を生成するが、それにもかかわらず、 "
17003 "B<tmpnam>() がパス名を返してから、プログラムがそのファイルをオープンする ま"
17004 "での間に、別のプログラムが同じパス名で、ファイルを B<open>(2) で作成したり、"
17005 "シンボリックリンクを作成したりする可能性がある。 これはセキュリティホールにつ"
17006 "ながる可能性がある。 そのような可能性を回避するためには、 B<open>(2) の "
17007 "B<O_EXCL> フラグを使ってパス名をオープンすればよい。 もっといいのは、 "
17008 "B<mkstemp>(3) や B<tmpfile>(3) を使うことである。"
17010 #. type: Plain text
17011 #: build/C/man3/tmpnam.3:139
17013 "Portable applications that use threads cannot call B<tmpnam>() with a NULL "
17014 "argument if either B<_POSIX_THREADS> or B<_POSIX_THREAD_SAFE_FUNCTIONS> is "
17017 "移植性が必要な、スレッドを使ったアプリケーションでは、 B<_POSIX_THREADS> か "
17018 "B<_POSIX_THREAD_SAFE_FUNCTIONS> が定義されている場合に、 B<tmpnam>() 関数を "
17019 "NULL 引き数で呼び出してはならない。"
17021 #. type: Plain text
17022 #: build/C/man3/tmpnam.3:143
17023 msgid "A POSIX draft proposed to use a function B<tmpnam_r>() defined by"
17025 "POSIX 草案では、関数 B<tmpnam_r>() を使うことを提案している。 この関数は、以"
17026 "下のように定義されており、 NULL を使わないようにという警告の意味で NULL を別"
17029 #. type: Plain text
17030 #: build/C/man3/tmpnam.3:151
17034 "tmpnam_r(char *s)\n"
17036 " return s ? tmpnam(s) : NULL;\n"
17040 "tmpnam_r(char *s)\n"
17042 " return s ? tmpnam(s) : NULL;\n"
17045 #. type: Plain text
17046 #: build/C/man3/tmpnam.3:165
17048 "apparently as a warning not to use NULL. A few systems implement it. To "
17049 "get a glibc prototype for this function from I<E<lt>stdio.hE<gt>>, define "
17050 "B<_SVID_SOURCE> or B<_BSD_SOURCE> (before including I<any> header file)."
17052 "数は少ないが、この関数を実装しているシステムもある。 この関数の glibc のプロ"
17053 "トタイプを I<E<lt>stdio.hE<gt>> から得るには、 (「どの」ヘッダファイルをイン"
17054 "クルードするよりも前に) B<_SVID_SOURCE> か B<_BSD_SOURCE> を定義しておく必要"
17057 #. type: Plain text
17058 #: build/C/man3/tmpnam.3:172
17059 msgid "Never use this function. Use B<mkstemp>(3) or B<tmpfile>(3) instead."
17061 "決してこの関数を使ってはならない。代わりに B<mkstemp>(3) か B<tmpfile>(3) "
17064 #. type: Plain text
17065 #: build/C/man3/tmpnam.3:177
17066 msgid "B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3)"
17067 msgstr "B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3)"
17070 #: build/C/man2/unlink.2:33
17076 #: build/C/man2/unlink.2:33
17079 msgstr "2014-02-21"
17081 #. type: Plain text
17082 #: build/C/man2/unlink.2:36
17083 msgid "unlink, unlinkat - delete a name and possibly the file it refers to"
17085 "unlink, unlinkat - 名前を削除し、場合によってはそれが参照しているファイルも削"
17088 #. type: Plain text
17089 #: build/C/man2/unlink.2:41
17091 msgid "B<int unlink(const char *>I<pathname>B<);>\n"
17092 msgstr "B<int unlink(const char *>I<pathname>B<);>\n"
17094 #. type: Plain text
17095 #: build/C/man2/unlink.2:46
17097 msgid "B<int unlinkat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
17098 msgstr "B<int unlinkat(int >I<dirfd>B<, const char *>I<pathname>B<, int >I<flags>B<);>\n"
17100 #. type: Plain text
17101 #: build/C/man2/unlink.2:54
17102 msgid "B<unlinkat>():"
17103 msgstr "B<unlinkat>():"
17105 #. type: Plain text
17106 #: build/C/man2/unlink.2:72
17108 "B<unlink>() deletes a name from the filesystem. If that name was the last "
17109 "link to a file and no processes have the file open, the file is deleted and "
17110 "the space it was using is made available for reuse."
17112 "B<unlink>() はファイルシステム上の名前を削除する。 もしその名前がファイルへ"
17113 "の最後のリンク (link) であり、 どのプロセスもそのファイルをオープン (open) し"
17114 "ていなければ、 ファイルは削除される。 ファイルが使用していたディスク上の領域"
17117 #. type: Plain text
17118 #: build/C/man2/unlink.2:76
17120 "If the name was the last link to a file but any processes still have the "
17121 "file open, the file will remain in existence until the last file descriptor "
17122 "referring to it is closed."
17124 "名前がファイルへの最後のリンクであっても、どこかのプロセスが そのファイルを開"
17125 "いているなら、ファイルの最後のファイル記述子 (file descriptor) が閉じられるま"
17128 #. type: Plain text
17129 #: build/C/man2/unlink.2:82
17131 "If the name referred to a socket, FIFO, or device, the name for it is "
17132 "removed but processes which have the object open may continue to use it."
17134 "名前が指しているのがソケット、FIFO、デバイスの場合、名前は削除されるが、 その"
17135 "ソケットなどを開いているプロセスはそのまま使い続けることができる。"
17138 #: build/C/man2/unlink.2:82
17141 msgstr "unlinkat()"
17143 #. type: Plain text
17144 #: build/C/man2/unlink.2:95
17146 "The B<unlinkat>() system call operates in exactly the same way as either "
17147 "B<unlink>() or B<rmdir>(2) (depending on whether or not I<flags> includes "
17148 "the B<AT_REMOVEDIR> flag) except for the differences described here."
17150 "B<unlinkat>() システムコールは、B<unlink>() と B<rmdir>(2) のいずれかと全く同"
17151 "じ動作をする (どちらと同じになるかは I<flags> に B<AT_REMOVEDIR> フラグが指定"
17152 "されたかにより決まる) が、以下で説明する点が異なる。"
17154 #. type: Plain text
17155 #: build/C/man2/unlink.2:107
17157 "If the pathname given in I<pathname> is relative, then it is interpreted "
17158 "relative to the directory referred to by the file descriptor I<dirfd> "
17159 "(rather than relative to the current working directory of the calling "
17160 "process, as is done by B<unlink>() and B<rmdir>(2) for a relative "
17163 "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディスク"
17164 "リプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
17165 "(B<unlink>() や B<rmdir>(2) に相対パス名を渡した場合のように、呼び出したプロ"
17166 "セスのカレントワーキングディレクトリに対する相対パスではない)。"
17168 #. type: Plain text
17169 #: build/C/man2/unlink.2:121
17171 "If the pathname given in I<pathname> is relative and I<dirfd> is the special "
17172 "value B<AT_FDCWD>, then I<pathname> is interpreted relative to the current "
17173 "working directory of the calling process (like B<unlink>() and B<rmdir>(2))."
17175 "I<pathname> で指定されたパス名が相対パスで、 I<dirfd> が特別な値 B<AT_FDCWD> "
17176 "の場合、 (B<unlink>() や B<rmdir>(2) と同様に) I<pathname> は呼び出したプロセ"
17177 "スのカレントワーキングディレクトリに対する相対パスと解釈される。"
17179 #. type: Plain text
17180 #: build/C/man2/unlink.2:127
17182 "If the pathname given in I<pathname> is absolute, then I<dirfd> is ignored."
17184 "I<pathname> で指定されたパス名が絶対パスの場合、 I<dirfd> は無視される。"
17186 #. type: Plain text
17187 #: build/C/man2/unlink.2:133
17189 "I<flags> is a bit mask that can either be specified as 0, or by ORing "
17190 "together flag values that control the operation of B<unlinkat>(). Currently "
17191 "only one such flag is defined:"
17193 "I<flags> はビットマスクで、0 もしくは B<unlinkat>() の動作を制御するフラグ値"
17194 "を論理和の形で指定することができる。現在のところ、定義されているフラグはひと"
17198 #: build/C/man2/unlink.2:133
17200 msgid "B<AT_REMOVEDIR>"
17201 msgstr "B<AT_REMOVEDIR>"
17203 #. type: Plain text
17204 #: build/C/man2/unlink.2:148
17206 "By default, B<unlinkat>() performs the equivalent of B<unlink>() on "
17207 "I<pathname>. If the B<AT_REMOVEDIR> flag is specified, then performs the "
17208 "equivalent of B<rmdir>(2) on I<pathname>."
17210 "デフォルトでは、 B<unlinkat>() は I<pathname> に対して B<unlink>() と等価な動"
17211 "作をする。 B<AT_REMOVEDIR> フラグが指定された場合、 I<pathname> に対して "
17212 "B<rmdir>(2) と等価な動作をする。"
17214 #. type: Plain text
17215 #: build/C/man2/unlink.2:153
17216 msgid "See B<openat>(2) for an explanation of the need for B<unlinkat>()."
17217 msgstr "B<unlinkat>() の必要性についての説明については B<openat>(2) を参照。"
17219 #. type: Plain text
17220 #: build/C/man2/unlink.2:169
17222 "Write access to the directory containing I<pathname> is not allowed for the "
17223 "process's effective UID, or one of the directories in I<pathname> did not "
17224 "allow search permission. (See also B<path_resolution>(7).)"
17226 "I<pathname> を含んでいるディレクトリの書き込み許可がプロセスの実効 "
17227 "(effective) ユーザー ID に与えられていないか、 I<pathname> の中のディレクト"
17228 "リのどれかに検索許可が与えられていない (B<path_resolution>(7) も参照するこ"
17231 #. type: Plain text
17232 #: build/C/man2/unlink.2:178
17234 "The file I<pathname> cannot be unlinked because it is being used by the "
17235 "system or another process; for example, it is a mount point or the NFS "
17236 "client software created it to represent an active but otherwise nameless "
17237 "inode (\"NFS silly renamed\")."
17239 "システムか別のプロセスがそのファイルを使用中のため、\n"
17240 "ファイル I<pathname> を unlink できない。\n"
17241 "例えば、そのファイルがマウントポイントの場合や、\n"
17242 "NFS クライアントソフトウェアがそのファイルがアクティブであるが\n"
17243 "名前なし inode (nameless inode) であることを示すために作成した\n"
17244 "場合 (\"NFS silly renamed\") などがある。"
17246 #. type: Plain text
17247 #: build/C/man2/unlink.2:190
17249 "I<pathname> refers to a directory. (This is the non-POSIX value returned by "
17250 "Linux since 2.1.132.)"
17252 "I<pathname> がディレクトリを参照している。 (これは POSIX で規定されていない値"
17253 "で、Linux 2.1.132 以降で返される。)"
17255 #. type: Plain text
17256 #: build/C/man2/unlink.2:194
17257 msgid "Too many symbolic links were encountered in translating I<pathname>."
17258 msgstr "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。"
17260 #. type: Plain text
17261 #: build/C/man2/unlink.2:204
17263 "A component in I<pathname> does not exist or is a dangling symbolic link, or "
17264 "I<pathname> is empty."
17266 "I<pathname> に対応するものが存在しないか、壊れたシンボリックリンクであるか、 "
17267 "I<pathname> が空である。"
17269 #. type: Plain text
17270 #: build/C/man2/unlink.2:212
17272 "A component used as a directory in I<pathname> is not, in fact, a directory."
17273 msgstr "I<pathname> のディレクトリ部分が、実際には、ディレクトリでない。"
17275 #. type: Plain text
17276 #: build/C/man2/unlink.2:221
17278 "The system does not allow unlinking of directories, or unlinking of "
17279 "directories requires privileges that the calling process doesn't have. "
17280 "(This is the POSIX prescribed error return; as noted above, Linux returns "
17281 "B<EISDIR> for this case.)"
17283 "システムがディレクトリに対する unlink 操作を許可していない。 またはディレクト"
17284 "リに対する unlink 操作のために必要な特権を 呼び出し元のプロセスが持っていな"
17285 "い。 (これは POSIX で規定されているエラーの返し方である。 上述の通り、この場"
17286 "合には Linux は B<EISDIR> を返す。)"
17289 #: build/C/man2/unlink.2:221
17291 msgid "B<EPERM> (Linux only)"
17292 msgstr "B<EPERM> (Linux のみ)"
17294 #. type: Plain text
17295 #: build/C/man2/unlink.2:224
17296 msgid "The filesystem does not allow unlinking of files."
17297 msgstr "ファイルシステムがファイルに対する unlink 操作を許していない。"
17299 #. type: Plain text
17300 #: build/C/man2/unlink.2:235
17302 "The directory containing I<pathname> has the sticky bit (B<S_ISVTX>) set "
17303 "and the process's effective UID is neither the UID of the file to be deleted "
17304 "nor that of the directory containing it, and the process is not privileged "
17305 "(Linux: does not have the B<CAP_FOWNER> capability)."
17307 "I<pathname> を含んでいるディレクトリにスティッキービット (sticky-bit) "
17308 "(B<S_ISVTX>) が設定されていて、プロセスの実効ユーザー ID が削除しようとする"
17309 "ファイルの UID でもそれを含んでいるディレクトリのものでもなく、 かつプロセス"
17310 "に特権がない (Linux では B<CAP_FOWNER> ケーパビリティ (capability) がない)。"
17312 #. type: Plain text
17313 #: build/C/man2/unlink.2:239
17314 msgid "I<pathname> refers to a file on a read-only filesystem."
17315 msgstr "I<pathname> が読み込み専用のファイルシステムのファイルを参照している。"
17317 #. type: Plain text
17318 #: build/C/man2/unlink.2:248
17320 "The same errors that occur for B<unlink>() and B<rmdir>(2) can also occur "
17321 "for B<unlinkat>(). The following additional errors can occur for "
17324 "B<unlink>() と B<rmdir>(2) で発生するのと同じエラーが B<unlinkat>() でも起こ"
17325 "る。 B<unlinkat>() では以下のエラーも発生する。"
17327 #. type: Plain text
17328 #: build/C/man2/unlink.2:263
17330 "I<pathname> refers to a directory, and B<AT_REMOVEDIR> was not specified in "
17333 "I<pathname> がディレクトリを参照していて、 I<flags> に B<AT_REMOVEDIR> がされ"
17336 #. type: Plain text
17337 #: build/C/man2/unlink.2:273
17339 "B<unlinkat>() was added to Linux in kernel 2.6.16; library support was "
17340 "added to glibc in version 2.4."
17342 "B<unlinkat>() はカーネル 2.6.16 で Linux に追加された。 ライブラリによるサ"
17343 "ポートはバージョン 2.4 で glibc に追加された。"
17345 #. SVr4 documents additional error
17346 #. conditions EINTR, EMULTIHOP, ETXTBSY, ENOLINK.
17347 #. type: Plain text
17348 #: build/C/man2/unlink.2:278
17349 msgid "B<unlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
17350 msgstr "B<unlink>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008."
17352 #. type: Plain text
17353 #: build/C/man2/unlink.2:281
17354 msgid "B<unlinkat>(): POSIX.1-2008."
17355 msgstr "B<unlinkat>(): POSIX.1-2008."
17357 #. type: Plain text
17358 #: build/C/man2/unlink.2:296
17360 "B<rm>(1), B<chmod>(2), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
17361 "B<rmdir>(2), B<mkfifo>(3), B<remove>(3), B<path_resolution>(7), B<symlink>(7)"
17363 "B<rm>(1), B<chmod>(2), B<link>(2), B<mknod>(2), B<open>(2), B<rename>(2), "
17364 "B<rmdir>(2), B<mkfifo>(3), B<remove>(3), B<path_resolution>(7), B<symlink>(7)"
17367 #: build/C/man3/unlocked_stdio.3:25
17369 msgid "UNLOCKED_STDIO"
17370 msgstr "UNLOCKED_STDIO"
17373 #: build/C/man3/unlocked_stdio.3:25
17376 msgstr "2008-08-29"
17378 #. type: Plain text
17379 #: build/C/man3/unlocked_stdio.3:29
17381 "getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - "
17382 "nonlocking stdio functions"
17384 "getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - ロックを行"
17387 #. type: Plain text
17388 #: build/C/man3/unlocked_stdio.3:37
17391 "B<int getc_unlocked(FILE *>I<stream>B<);>\n"
17392 "B<int getchar_unlocked(void);>\n"
17393 "B<int putc_unlocked(int >I<c>B<, FILE *>I<stream>B<);>\n"
17394 "B<int putchar_unlocked(int >I<c>B<);>\n"
17396 "B<int getc_unlocked(FILE *>I<stream>B<);>\n"
17397 "B<int getchar_unlocked(void);>\n"
17398 "B<int putc_unlocked(int >I<c>B<, FILE *>I<stream>B<);>\n"
17399 "B<int putchar_unlocked(int >I<c>B<);>\n"
17401 #. type: Plain text
17402 #: build/C/man3/unlocked_stdio.3:49
17405 "B<void clearerr_unlocked(FILE *>I<stream>B<);>\n"
17406 "B<int feof_unlocked(FILE *>I<stream>B<);>\n"
17407 "B<int ferror_unlocked(FILE *>I<stream>B<);>\n"
17408 "B<int fileno_unlocked(FILE *>I<stream>B<);>\n"
17409 "B<int fflush_unlocked(FILE *>I<stream>B<);>\n"
17410 "B<int fgetc_unlocked(FILE *>I<stream>B<);>\n"
17411 "B<int fputc_unlocked(int >I<c>B<, FILE *>I<stream>B<);>\n"
17412 "B<size_t fread_unlocked(void *>I<ptr>B<, size_t >I<size>B<, size_t >I<n>B<,>\n"
17413 "B< FILE *>I<stream>B<);>\n"
17414 "B<size_t fwrite_unlocked(const void *>I<ptr>B<, size_t >I<size>B<, size_t >I<n>B<,>\n"
17415 "B< FILE *>I<stream>B<);>\n"
17417 "B<void clearerr_unlocked(FILE *>I<stream>B<);>\n"
17418 "B<int feof_unlocked(FILE *>I<stream>B<);>\n"
17419 "B<int ferror_unlocked(FILE *>I<stream>B<);>\n"
17420 "B<int fileno_unlocked(FILE *>I<stream>B<);>\n"
17421 "B<int fflush_unlocked(FILE *>I<stream>B<);>\n"
17422 "B<int fgetc_unlocked(FILE *>I<stream>B<);>\n"
17423 "B<int fputc_unlocked(int >I<c>B<, FILE *>I<stream>B<);>\n"
17424 "B<size_t fread_unlocked(void *>I<ptr>B<, size_t >I<size>B<, size_t >I<n>B<,>\n"
17425 "B< FILE *>I<stream>B<);>\n"
17426 "B<size_t fwrite_unlocked(const void *>I<ptr>B<, size_t >I<size>B<, size_t >I<n>B<,>\n"
17427 "B< FILE *>I<stream>B<);>\n"
17429 #. type: Plain text
17430 #: build/C/man3/unlocked_stdio.3:52
17433 "B<char *fgets_unlocked(char *>I<s>B<, int >I<n>B<, FILE *>I<stream>B<);>\n"
17434 "B<int fputs_unlocked(const char *>I<s>B<, FILE *>I<stream>B<);>\n"
17436 "B<char *fgets_unlocked(char *>I<s>B<, int >I<n>B<, FILE *>I<stream>B<);>\n"
17437 "B<int fputs_unlocked(const char *>I<s>B<, FILE *>I<stream>B<);>\n"
17439 #. type: Plain text
17440 #: build/C/man3/unlocked_stdio.3:63
17443 "B<wint_t getwc_unlocked(FILE *>I<stream>B<);>\n"
17444 "B<wint_t getwchar_unlocked(void);>\n"
17445 "B<wint_t fgetwc_unlocked(FILE *>I<stream>B<);>\n"
17446 "B<wint_t fputwc_unlocked(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
17447 "B<wint_t putwc_unlocked(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
17448 "B<wint_t putwchar_unlocked(wchar_t >I<wc>B<);>\n"
17449 "B<wchar_t *fgetws_unlocked(wchar_t *>I<ws>B<, int >I<n>B<, FILE *>I<stream>B<);>\n"
17450 "B<int fputws_unlocked(const wchar_t *>I<ws>B<, FILE *>I<stream>B<);>\n"
17452 "B<wint_t getwc_unlocked(FILE *>I<stream>B<);>\n"
17453 "B<wint_t getwchar_unlocked(void);>\n"
17454 "B<wint_t fgetwc_unlocked(FILE *>I<stream>B<);>\n"
17455 "B<wint_t fputwc_unlocked(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
17456 "B<wint_t putwc_unlocked(wchar_t >I<wc>B<, FILE *>I<stream>B<);>\n"
17457 "B<wint_t putwchar_unlocked(wchar_t >I<wc>B<);>\n"
17458 "B<wchar_t *fgetws_unlocked(wchar_t *>I<ws>B<, int >I<n>B<, FILE *>I<stream>B<);>\n"
17459 "B<int fputws_unlocked(const wchar_t *>I<ws>B<, FILE *>I<stream>B<);>\n"
17461 #. type: Plain text
17462 #: build/C/man3/unlocked_stdio.3:75
17464 "B<getc_unlocked>(), B<getchar_unlocked>(), B<putc_unlocked>(), "
17465 "B<putchar_unlocked>():"
17467 "B<getc_unlocked>(), B<getchar_unlocked>(), B<putc_unlocked>(), "
17468 "B<putchar_unlocked>():"
17470 #. type: Plain text
17471 #: build/C/man3/unlocked_stdio.3:78
17473 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE || "
17474 "_BSD_SOURCE || _SVID_SOURCE"
17476 "_POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE || "
17477 "_BSD_SOURCE || _SVID_SOURCE"
17479 #. type: Plain text
17480 #: build/C/man3/unlocked_stdio.3:89
17482 "B<clearerr_unlocked>(), B<feof_unlocked>(), B<ferror_unlocked>(), "
17483 "B<fileno_unlocked>(), B<fflush_unlocked>(), B<fgetc_unlocked>(), "
17484 "B<fputc_unlocked>(), B<fread_unlocked>(), B<fwrite_unlocked>():"
17486 "B<clearerr_unlocked>(), B<feof_unlocked>(), B<ferror_unlocked>(), "
17487 "B<fileno_unlocked>(), B<fflush_unlocked>(), B<fgetc_unlocked>(), "
17488 "B<fputc_unlocked>(), B<fread_unlocked>(), B<fwrite_unlocked>():"
17490 #. type: Plain text
17491 #: build/C/man3/unlocked_stdio.3:91
17492 msgid "_BSD_SOURCE || _SVID_SOURCE"
17493 msgstr "_BSD_SOURCE || _SVID_SOURCE"
17495 #. type: Plain text
17496 #: build/C/man3/unlocked_stdio.3:102
17498 "B<fgets_unlocked>(), B<fputs_unlocked>(), B<getwc_unlocked>(), "
17499 "B<getwchar_unlocked>(), B<fgetwc_unlocked>(), B<fputwc_unlocked>(), "
17500 "B<putwchar_unlocked>(), B<fgetws_unlocked>(), B<fputws_unlocked>():"
17502 "B<fgets_unlocked>(), B<fputs_unlocked>(), B<getwc_unlocked>(), "
17503 "B<getwchar_unlocked>(), B<fgetwc_unlocked>(), B<fputwc_unlocked>(), "
17504 "B<putwchar_unlocked>(), B<fgetws_unlocked>(), B<fputws_unlocked>():"
17506 #. type: Plain text
17507 #: build/C/man3/unlocked_stdio.3:113
17509 "Each of these functions has the same behavior as its counterpart without the "
17510 "\"_unlocked\" suffix, except that they do not use locking (they do not set "
17511 "locks themselves, and do not test for the presence of locks set by others) "
17512 "and hence are thread-unsafe. See B<flockfile>(3)."
17514 "これらの関数は、末尾に \"_unlocked\" がついていない関数と同じ動作をするが、 "
17515 "ファイルのロックを使用しない点が異なる。(これらの関数自身はファイルのロック "
17516 "をセットせず、他の関数によってロックがセットされているかどうかのチェックも 行"
17517 "わない) それゆえ、スレッド(thread)で安全に使用することができない。 "
17518 "B<flockfile>(3) を参照のこと。"
17520 #. type: Plain text
17521 #: build/C/man3/unlocked_stdio.3:120
17523 "The four functions B<getc_unlocked>(), B<getchar_unlocked>(), "
17524 "B<putc_unlocked>(), B<putchar_unlocked>() are in POSIX.1-2001."
17526 "B<getc_unlocked>(), B<getchar_unlocked>(), B<putc_unlocked>(), "
17527 "B<putchar_unlocked>() の 4 つの関数は POSIX.1-2001 に規定されている。"
17529 #. E.g., in HP-UX 10.0. In HP-UX 10.30 they are called obsolescent, and
17530 #. moved to a compatibility library.
17531 #. Available in HP-UX 10.0: clearerr_unlocked, fclose_unlocked,
17532 #. feof_unlocked, ferror_unlocked, fflush_unlocked, fgets_unlocked,
17533 #. fgetwc_unlocked, fgetws_unlocked, fileno_unlocked, fputs_unlocked,
17534 #. fputwc_unlocked, fputws_unlocked, fread_unlocked, fseek_unlocked,
17535 #. ftell_unlocked, fwrite_unlocked, getc_unlocked, getchar_unlocked,
17536 #. getw_unlocked, getwc_unlocked, getwchar_unlocked, putc_unlocked,
17537 #. putchar_unlocked, puts_unlocked, putws_unlocked, putw_unlocked,
17538 #. putwc_unlocked, putwchar_unlocked, rewind_unlocked, setvbuf_unlocked,
17539 #. ungetc_unlocked, ungetwc_unlocked.
17540 #. type: Plain text
17541 #: build/C/man3/unlocked_stdio.3:136
17543 "The nonstandard B<*_unlocked>() variants occur on a few UNIX systems, and "
17544 "are available in recent glibc. They should probably not be used."
17546 "非標準の B<*_unlocked>() の仲間は 2、3 の UNIX システムで定義されており、 最"
17547 "近の glibc では使用可能であるが、 これらの関数は使わない方がよいだろう。"
17549 #. type: Plain text
17550 #: build/C/man3/unlocked_stdio.3:139
17551 msgid "B<flockfile>(3), B<stdio>(3)"
17552 msgstr "B<flockfile>(3), B<stdio>(3)"
17555 #: build/C/man3/wprintf.3:16
17561 #: build/C/man3/wprintf.3:16
17564 msgstr "2014-03-19"
17566 #. type: Plain text
17567 #: build/C/man3/wprintf.3:20
17569 "wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - formatted wide-"
17570 "character output conversion"
17572 "wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - ワイド文字を "
17575 #. type: Plain text
17576 #: build/C/man3/wprintf.3:24
17579 "B<#include E<lt>stdio.hE<gt>>\n"
17580 "B<#include E<lt>wchar.hE<gt>>\n"
17582 "B<#include E<lt>stdio.hE<gt>>\n"
17583 "B<#include E<lt>wchar.hE<gt>>\n"
17585 #. type: Plain text
17586 #: build/C/man3/wprintf.3:29
17589 "B<int wprintf(const wchar_t *>I<format>B<, ...);>\n"
17590 "B<int fwprintf(FILE *>I<stream>B<, const wchar_t *>I<format>B<, ...);>\n"
17591 "B<int swprintf(wchar_t *>I<wcs>B<, size_t >I<maxlen>B<,>\n"
17592 "B< const wchar_t *>I<format>B<, ...);>\n"
17594 "B<int wprintf(const wchar_t *>I<format>B<, ...);>\n"
17595 "B<int fwprintf(FILE *>I<stream>B<, const wchar_t *>I<format>B<, ...);>\n"
17596 "B<int swprintf(wchar_t *>I<wcs>B<, size_t >I<maxlen>B<,>\n"
17597 "B< const wchar_t *>I<format>B<, ...);>\n"
17599 #. type: Plain text
17600 #: build/C/man3/wprintf.3:34
17603 "B<int vwprintf(const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17604 "B<int vfwprintf(FILE *>I<stream>B<, const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17605 "B<int vswprintf(wchar_t *>I<wcs>B<, size_t >I<maxlen>B<,>\n"
17606 "B< const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17608 "B<int vwprintf(const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17609 "B<int vfwprintf(FILE *>I<stream>B<, const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17610 "B<int vswprintf(wchar_t *>I<wcs>B<, size_t >I<maxlen>B<,>\n"
17611 "B< const wchar_t *>I<format>B<, va_list >I<args>B<);>\n"
17614 #. .BR fwprintf (),
17615 #. .BR swprintf (),
17616 #. .BR vwprintf (),
17617 #. .BR vfwprintf (),
17618 #. .BR vswprintf ():
17619 #. type: Plain text
17620 #: build/C/man3/wprintf.3:51
17621 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE ||"
17622 msgstr "_XOPEN_SOURCE\\ E<gt>=\\ 500 || _ISOC99_SOURCE ||"
17624 #. type: Plain text
17625 #: build/C/man3/wprintf.3:53
17626 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
17627 msgstr "_POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
17629 #. type: Plain text
17630 #: build/C/man3/wprintf.3:56
17631 msgid "or I<cc\\ -std=c99>"
17632 msgstr "or I<cc\\ -std=c99>"
17634 #. type: Plain text
17635 #: build/C/man3/wprintf.3:67
17637 "The B<wprintf>() family of functions is the wide-character equivalent of "
17638 "the B<printf>(3) family of functions. It performs formatted output of wide "
17641 "B<wprintf>() ファミリーの関数は B<printf>(3) ファミリーの関数の ワイド文字"
17642 "版である。これらはワイド文字をフォーマットして出力する。"
17644 #. type: Plain text
17645 #: build/C/man3/wprintf.3:79
17647 "The B<wprintf>() and B<vwprintf>() functions perform wide-character output "
17648 "to I<stdout>. I<stdout> must not be byte oriented; see B<fwide>(3) for "
17649 "more information."
17651 "B<wprintf>() と B<vwprintf>() 関数は I<stdout> に出力を行なう。 I<stdout> "
17652 "がバイト単位入出力であってはいけない。より詳しい説明は B<fwide>(3) を参照す"
17655 #. type: Plain text
17656 #: build/C/man3/wprintf.3:91
17658 "The B<fwprintf>() and B<vfwprintf>() functions perform wide-character "
17659 "output to I<stream>. I<stream> must not be byte oriented; see B<fwide>(3) "
17660 "for more information."
17662 "B<fwprintf>() と B<vfwprintf>() 関数は I<stream> にワイド文字出力 を行な"
17663 "う。 I<stream> がバイト単位入出力であってはいけない。 より詳しい説明は "
17664 "B<fwide>(3) を参照すること。"
17666 #. type: Plain text
17667 #: build/C/man3/wprintf.3:105
17669 "The B<swprintf>() and B<vswprintf>() functions perform wide-character "
17670 "output to an array of wide characters. The programmer must ensure that "
17671 "there is room for at least I<maxlen> wide characters at I<wcs>."
17673 "B<swprintf>() と B<vswprintf>() 関数はワイド文字の配列に ワイド文字出力を行"
17674 "なう。プログラマーは I<wcs> に最低でも I<maxlen> 文字のワイド文字を出力できる"
17675 "空きがあることを保証しなければ ならない。"
17677 #. type: Plain text
17678 #: build/C/man3/wprintf.3:116
17680 "These functions are like the B<printf>(3), B<vprintf>(3), B<fprintf>(3), "
17681 "B<vfprintf>(3), B<sprintf>(3), B<vsprintf>(3) functions except for the "
17682 "following differences:"
17684 "これらの関数は B<printf>(3), B<vprintf>(3), B<fprintf>(3), B<vfprintf>(3), "
17685 "B<sprintf>(3), B<vsprintf>(3) 関数に似ているが以下の 点で異っている。"
17688 #: build/C/man3/wprintf.3:116 build/C/man3/wprintf.3:121
17689 #: build/C/man3/wprintf.3:124
17694 #. type: Plain text
17695 #: build/C/man3/wprintf.3:121
17696 msgid "The I<format> string is a wide-character string."
17697 msgstr "I<format> がワイド文字列で与えられる。"
17699 #. type: Plain text
17700 #: build/C/man3/wprintf.3:124
17701 msgid "The output consists of wide characters, not bytes."
17702 msgstr "出力がバイトではなくワイド文字で構成される。"
17704 #. type: Plain text
17705 #: build/C/man3/wprintf.3:143
17707 "B<swprintf>() and B<vswprintf>() take a I<maxlen> argument, B<sprintf>(3) "
17708 "and B<vsprintf>(3) do not. (B<snprintf>(3) and B<vsnprintf>(3) take a "
17709 "I<maxlen> argument, but these functions do not return -1 upon buffer "
17710 "overflow on Linux.)"
17712 "B<swprintf>() と B<vswprintf>() は I<maxlen> 引き数を取るが、 "
17713 "B<sprintf>() と B<vsprintf>() は取らない (B<snprintf>() と "
17714 "B<vsnprintf>() は I<maxlen> 引き数を取るが これらの関数が Linux では、バッ"
17715 "ファーが溢れた場合でも -1 を返さない)。"
17717 #. type: Plain text
17718 #: build/C/man3/wprintf.3:149
17719 msgid "The treatment of the conversion characters B<c> and B<s> is different:"
17720 msgstr "B<c> と B<s> 変換文字の扱いが異っている:"
17722 #. type: Plain text
17723 #: build/C/man3/wprintf.3:163
17725 "If no B<l> modifier is present, the I<int> argument is converted to a wide "
17726 "character by a call to the B<btowc>(3) function, and the resulting wide "
17727 "character is written. If an B<l> modifier is present, the I<wint_t> (wide "
17728 "character) argument is written."
17730 "もし B<l> 修飾子が存在しない場合は I<int> 引き数は B<btowc>(3) 関数によって"
17731 "ワイド文字に変換される。そして結果のワイド文字が出力される。 B<l> 修飾子が存"
17732 "在する場合は I<wint_t> (ワイド文字)引き数が出力される。"
17734 #. type: Plain text
17735 #: build/C/man3/wprintf.3:203
17737 "If no B<l> modifier is present: The I<const\\ char\\ *> argument is expected "
17738 "to be a pointer to an array of character type (pointer to a string) "
17739 "containing a multibyte character sequence beginning in the initial shift "
17740 "state. Characters from the array are converted to wide characters (each by "
17741 "a call to the B<mbrtowc>(3) function with a conversion state starting in "
17742 "the initial state before the first byte). The resulting wide characters are "
17743 "written up to (but not including) the terminating null wide character (L\\(aq"
17744 "\\e0\\(aq). If a precision is specified, no more wide characters than the "
17745 "number specified are written. Note that the precision determines the number "
17746 "of I<wide characters> written, not the number of I<bytes> or I<screen "
17747 "positions>. The array must contain a terminating null byte (\\(aq"
17748 "\\e0\\(aq), unless a precision is given and it is so small that the number "
17749 "of converted wide characters reaches it before the end of the array is "
17750 "reached. If an B<l> modifier is present: The I<const\\ wchar_t\\ *> "
17751 "argument is expected to be a pointer to an array of wide characters. Wide "
17752 "characters from the array are written up to (but not including) a "
17753 "terminating null wide character. If a precision is specified, no more than "
17754 "the number specified are written. The array must contain a terminating null "
17755 "wide character, unless a precision is given and it is smaller than or equal "
17756 "to the number of wide characters in the array."
17758 "もし B<l> 修飾子が存在しない場合、 I<const\\ char\\ *> 引き数は初期状態より始"
17759 "まるマルチバイト文字列を含んだ char 型の配列へのポインタ(文字列へのポインタ)"
17760 "とみなされる。 配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれ"
17761 "の文字を B<mbrtowc>(3) 関数によって)ワイド文字へと変換される。結果のワイド文"
17762 "字は終端の ナルワイド文字 (L\\(aq\\e0\\(aq) の手前までが書き込まれる。精度"
17763 "(precision)が指定された 場合、指定された数字を超えるワイド文字は書き込まれな"
17764 "い。精度は 書き込まれる I<バイト> 数や I<画面上の位置> ではなく I<ワイド文字"
17765 "> の数を指定することに注意すること。 精度がない場合には配列の終端にナルバイ"
17766 "ト (\\(aq\\e0\\(aq) を含む必要がある。 精度を指定する場合には、配列の最後に到"
17767 "着する前に変換されたワイド文字の 数がそれに到達するよう、精度は十分に小さな数"
17768 "でなければならない。 もし B<l> 修飾子が存在する場合、 I<const\\ wchar_t\\ *> "
17769 "引き数はワイド文字の配列へのポインタとみなされる。 配列のワイド文字列は終端の"
17770 "ナルワイド文字の手間まで出力される。 もし精度が指定された場合には指定された精"
17771 "度以上の文字は出力されない。 精度を指定しない場合には終端のナルワイド文字を含"
17772 "む必要がある。 精度を指定する場合にはそれはワイド文字の配列の大きさよりも小さ"
17775 #. type: Plain text
17776 #: build/C/man3/wprintf.3:211
17778 "The functions return the number of wide characters written, excluding the "
17779 "terminating null wide character in case of the functions B<swprintf>() and "
17780 "B<vswprintf>(). They return -1 when an error occurs."
17782 "これらの関数は書き込まれたワイド文字の文字数を返す。 B<swprintf>() と "
17783 "B<vswprintf>() 関数の場合は 終端のナルワイド文字は含まない。エラーが起こった"
17786 #. type: Plain text
17787 #: build/C/man3/wprintf.3:213
17791 #. type: Plain text
17792 #: build/C/man3/wprintf.3:221
17794 "The behavior of B<wprintf>() et al. depends on the B<LC_CTYPE> category of "
17795 "the current locale."
17797 "B<wprintf>() 等の動作は現在のロケールの B<LC_CTYPE> カテゴリに依存している。"
17799 #. type: Plain text
17800 #: build/C/man3/wprintf.3:251
17802 "If the I<format> string contains non-ASCII wide characters, the program will "
17803 "work correctly only if the B<LC_CTYPE> category of the current locale at run "
17804 "time is the same as the B<LC_CTYPE> category of the current locale at "
17805 "compile time. This is because the I<wchar_t> representation is platform- "
17806 "and locale-dependent. (The glibc represents wide characters using their "
17807 "Unicode (ISO-10646) code point, but other platforms don't do this. Also, "
17808 "the use of C99 universal character names of the form \\eunnnn does not solve "
17809 "this problem.) Therefore, in internationalized programs, the I<format> "
17810 "string should consist of ASCII wide characters only, or should be "
17811 "constructed at run time in an internationalized way (e.g., using "
17812 "B<gettext>(3) or B<iconv>(3), followed by B<mbstowcs>(3))."
17814 "I<format> 文字列が ASCII 以外のワイド文字を含んでいる場合、 実行時のロケール"
17815 "の B<LC_CTYPE> カテゴリがコンパイル時の B<LC_CTYPE> カテゴリと 一致している場"
17816 "合にのみプログラムは正常に動作する。これは I<wchar_t> の表現がロケールやプ"
17817 "ラットホームに依存していることに原因がある。 (glibc ではワイド文字として "
17818 "Unicode (ISO-10646) のコードポイントを 使用している。他のプラットホームではそ"
17819 "うではない。同様に ISO C99 の \\eunnnn 形式の汎用文字名称はこの問題を解決しな"
17820 "い。) このため国際化されたプログラムでは I<format> 文字列を ASCII ワイド 文"
17821 "字のみにするか、実行時に国際化された方法で構成する必要がある (例えば "
17822 "B<gettext>() と B<iconv>() や B<mbstowcs>() を組み合わて使用する)。"
17825 #. type: Plain text
17826 #: build/C/man3/wprintf.3:258
17827 msgid "B<fprintf>(3), B<fputwc>(3), B<fwide>(3), B<printf>(3), B<snprintf>(3)"
17828 msgstr "B<fprintf>(3), B<fputwc>(3), B<fwide>(3), B<printf>(3), B<snprintf>(3)"
17831 #: build/C/man2/write.2:39
17836 #. type: Plain text
17837 #: build/C/man2/write.2:42
17838 msgid "write - write to a file descriptor"
17839 msgstr "write - ファイルディスクリプタ (file descriptor) に書き込む"
17841 #. type: Plain text
17842 #: build/C/man2/write.2:46
17844 "B<ssize_t write(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<);>"
17846 "B<ssize_t write(int >I<fd>B<, const void *>I<buf>B<, size_t >I<count>B<);>"
17848 #. type: Plain text
17849 #: build/C/man2/write.2:54
17851 "B<write>() writes up to I<count> bytes from the buffer pointed I<buf> to "
17852 "the file referred to by the file descriptor I<fd>."
17854 "B<write>() は、 I<buf> が指すバッファから、ファイルディスクリプタ I<fd> が参"
17855 "照するファイルへ、最大 I<count> バイトを書き込む。"
17857 #. type: Plain text
17858 #: build/C/man2/write.2:68
17860 "The number of bytes written may be less than I<count> if, for example, there "
17861 "is insufficient space on the underlying physical medium, or the "
17862 "B<RLIMIT_FSIZE> resource limit is encountered (see B<setrlimit>(2)), or the "
17863 "call was interrupted by a signal handler after having written less than "
17864 "I<count> bytes. (See also B<pipe>(7).)"
17866 "書き込まれるバイト数は I<count> よりも小さくなることがある。 例えば、書き込み"
17867 "対象の物理メディアに十分な領域がない場合、 リソース上限 B<RLIMIT_FSIZE> に達"
17868 "した場合 (B<setrlimit>(2) 参照)、 I<count> バイト未満の書き込みが行われた後"
17869 "で 呼び出しがシグナルハンドラにより割り込まれた場合、 などである。 "
17870 "(B<pipe>(7) も参照のこと。)"
17872 #. type: Plain text
17873 #: build/C/man2/write.2:82
17875 "For a seekable file (i.e., one to which B<lseek>(2) may be applied, for "
17876 "example, a regular file) writing takes place at the current file offset, "
17877 "and the file offset is incremented by the number of bytes actually written. "
17878 "If the file was B<open>(2)ed with B<O_APPEND>, the file offset is first set "
17879 "to the end of the file before writing. The adjustment of the file offset "
17880 "and the write operation are performed as an atomic step."
17882 "seek 可能なファイル (つまり B<lseek>(2) が適用できるファイル、例えば通常の"
17883 "ファイル) では、 書き込みは現在のファイルオフセットから行われ、 ファイルオフ"
17884 "セットは実際に書き込みが行われたバイト数分 加算される。ファイルが "
17885 "B<O_APPEND> で B<open>(2) された場合、ファイルオフセットは書き込み前に ファ"
17886 "イルの末尾に設定される。 ファイルオフセットの調整と書き込み操作はアトミックな"
17889 #. type: Plain text
17890 #: build/C/man2/write.2:89
17892 "POSIX requires that a B<read>(2) which can be proved to occur after a "
17893 "B<write>() has returned returns the new data. Note that not all "
17894 "filesystems are POSIX conforming."
17896 "POSIX は B<write>() が行なわれた後に実行した B<read>(2) が 新しいデータを返"
17897 "すことを要求している。 全てのファイルシステムが POSIX 準拠ではない点に注意す"
17900 #. type: Plain text
17901 #: build/C/man2/write.2:94
17903 "On success, the number of bytes written is returned (zero indicates nothing "
17904 "was written). On error, -1 is returned, and I<errno> is set appropriately."
17906 "成功した場合、書き込まれたバイト数が返される (ゼロは何も書き込まれなかったこ"
17907 "とを示す)。 エラーならば -1 が返され、I<errno> が適切に設定される。"
17909 #. type: Plain text
17910 #: build/C/man2/write.2:107
17912 "If I<count> is zero and I<fd> refers to a regular file, then B<write>() may "
17913 "return a failure status if one of the errors below is detected. If no "
17914 "errors are detected, 0 will be returned without causing any other effect. "
17915 "If I<count> is zero and I<fd> refers to a file other than a regular file, "
17916 "the results are not specified."
17918 "I<count> が 0 で、 I<fd> が通常のファイル (regular file) を参照している場"
17919 "合、 B<write>() は後述のエラーのいずれかを検出した場合、失敗を返すことがあ"
17920 "る。 エラーが検出されなかった場合は、 0 を返し、他に何の影響も与えない。 "
17921 "I<count> が 0 で、 I<fd> が通常のファイル以外のファイルを参照している場合、 "
17924 #. type: Plain text
17925 #: build/C/man2/write.2:115
17927 "The file descriptor I<fd> refers to a file other than a socket and has been "
17928 "marked nonblocking (B<O_NONBLOCK>), and the write would block."
17930 "ファイルディスクリプタ I<fd> がソケット以外のファイルを参照していて、 非停止 "
17931 "(nonblocking) モード (B<O_NONBLOCK>) に設定されており、書き込みを行うと停止"
17934 #. Actually EAGAIN on Linux
17935 #. type: Plain text
17936 #: build/C/man2/write.2:126
17938 "The file descriptor I<fd> refers to a socket and has been marked nonblocking "
17939 "(B<O_NONBLOCK>), and the write would block. POSIX.1-2001 allows either "
17940 "error to be returned for this case, and does not require these constants to "
17941 "have the same value, so a portable application should check for both "
17944 "ファイルディスクリプタ I<fd> がソケットを参照していて、非停止 (nonblocking) "
17945 "モード (B<O_NONBLOCK>) に設定されており、書き込みを行うと停止する状況にあ"
17946 "る。 POSIX.1-2001 は、この場合にどちらのエラーを返すことも認めており、 これ"
17947 "ら 2 つの定数が同じ値を持つことも求めていない。 したがって、移植性が必要なア"
17948 "プリケーションでは、両方の可能性を 確認すべきである。"
17950 #. type: Plain text
17951 #: build/C/man2/write.2:130
17952 msgid "I<fd> is not a valid file descriptor or is not open for writing."
17954 "I<fd> が有効なファイルディスクリプタでないか書き込みのためにオープン (open) "
17958 #: build/C/man2/write.2:130
17960 msgid "B<EDESTADDRREQ>"
17961 msgstr "B<EDESTADDRREQ>"
17963 #. type: Plain text
17964 #: build/C/man2/write.2:135
17966 "I<fd> refers to a datagram socket for which a peer address has not been set "
17967 "using B<connect>(2)."
17969 "I<fd> が、 B<connect>(2) を使って通信相手のアドレスが設定されていないデータ"
17972 #. type: Plain text
17973 #: build/C/man2/write.2:141
17975 "The user's quota of disk blocks on the filesystem containing the file "
17976 "referred to by I<fd> has been exhausted."
17978 "I<fd> が参照するファイルを含むファイルシステムのディスクブロックのユーザ"
17981 #. type: Plain text
17982 #: build/C/man2/write.2:150
17984 "An attempt was made to write a file that exceeds the implementation-defined "
17985 "maximum file size or the process's file size limit, or to write at a "
17986 "position past the maximum allowed offset."
17988 "実装定義の最大ファイルサイズまたはプロセスのファイルサイズ制限を 超えてファイ"
17989 "ルに書き込もうとした。 または許可されたオフセット値の限界を超えた先の位置に "
17992 #. type: Plain text
17993 #: build/C/man2/write.2:154
17995 "The call was interrupted by a signal before any data was written; see "
17998 "何のデータも書かない間にシグナルにより割り込まれた (interrupt)。 "
18001 #. type: Plain text
18002 #: build/C/man2/write.2:165
18004 "I<fd> is attached to an object which is unsuitable for writing; or the file "
18005 "was opened with the B<O_DIRECT> flag, and either the address specified in "
18006 "I<buf>, the value specified in I<count>, or the current file offset is not "
18007 "suitably aligned."
18009 "I<fd> が書き込みが不適切なオブジェクトを参照している。 もしくは、ファイルが "
18010 "B<O_DIRECT> フラグを指定してオープンされているが、 I<buf> に指定されたアドレ"
18011 "ス、 I<count> に指定された値、 現在のファイルオフセットのいずれかの アライン"
18014 #. type: Plain text
18015 #: build/C/man2/write.2:168
18016 msgid "A low-level I/O error occurred while modifying the inode."
18017 msgstr "inode の修正中に低レべル (low-level) I/O エラーが発生した。"
18019 #. type: Plain text
18020 #: build/C/man2/write.2:173
18022 "The device containing the file referred to by I<fd> has no room for the data."
18024 "I<fd> によって参照されるファイルを含むデバイス (device) に十分な空きがない。"
18027 #: build/C/man2/write.2:173
18032 #. type: Plain text
18033 #: build/C/man2/write.2:182
18035 "I<fd> is connected to a pipe or socket whose reading end is closed. When "
18036 "this happens the writing process will also receive a B<SIGPIPE> signal. "
18037 "(Thus, the write return value is seen only if the program catches, blocks or "
18038 "ignores this signal.)"
18040 "I<fd> がパイプ (pipe) かソケット (socket) に接続されており、 その反対側 (読み"
18041 "込み側) がクローズ (close) されている。 これが発生した場合には、書き込みを行"
18042 "なうプロセスは B<SIGPIPE> シグナル (signal)も受ける。 (したがって、プログラム"
18043 "がこのシグナルを捕獲 (catch)、停止 (block)、無視 (ignore) した場合のみ、"
18044 "write の返り値を参照できる。)"
18046 #. type: Plain text
18047 #: build/C/man2/write.2:185
18048 msgid "Other errors may occur, depending on the object connected to I<fd>."
18050 "I<fd> に接続されたオブジェクトによっては、他のエラーが起こるかもしれない。"
18052 #. type: Plain text
18053 #: build/C/man2/write.2:194
18055 "Under SVr4 a write may be interrupted and return B<EINTR> at any point, not "
18056 "just before any data is written."
18058 "SVr4 では write が割り込まれると、データが書き込まれる直前ではなく、 その時点"
18061 #. type: Plain text
18062 #: build/C/man2/write.2:203
18064 "A successful return from B<write>() does not make any guarantee that data "
18065 "has been committed to disk. In fact, on some buggy implementations, it does "
18066 "not even guarantee that space has successfully been reserved for the data. "
18067 "The only way to be sure is to call B<fsync>(2) after you are done writing "
18070 "B<write>() が成功して返ってきても、データがディスクに記録されたことを 保証す"
18071 "るものではない。 実際、データのためのスペースが確保されたことすら保証されない"
18072 "という バグっぽい実装もある。 これを確実にする唯一の方法は、 全てのデータを "
18073 "write した後に B<fsync>(2) を呼び出すことである。"
18075 #. type: Plain text
18076 #: build/C/man2/write.2:211
18078 "If a B<write>() is interrupted by a signal handler before any bytes are "
18079 "written, then the call fails with the error B<EINTR>; if it is interrupted "
18080 "after at least one byte has been written, the call succeeds, and returns the "
18081 "number of bytes written."
18083 "B<write>() が 1 バイトも書き込まないうちにシグナルハンドラにより割り込まれた"
18084 "場合、 B<write>() はエラー B<EINTR> で失敗する。 1バイトでも書き込んだ後で割"
18085 "り込まれた場合には、 B<write>() は成功し、書き込んだバイト数を返す。"
18088 #. http://thread.gmane.org/gmane.linux.kernel/1649458
18089 #. From: Michael Kerrisk (man-pages <mtk.manpages <at> gmail.com>
18090 #. Subject: Update of file offset on write() etc. is non-atomic with I/O
18091 #. Date: 2014-02-17 15:41:37 GMT
18092 #. Newsgroups: gmane.linux.kernel, gmane.linux.file-systems
18093 #. commit 9c225f2655e36a470c4f58dbbc99244c5fc7f2d4
18094 #. Author: Linus Torvalds <torvalds@linux-foundation.org>
18095 #. Date: Mon Mar 3 09:36:58 2014 -0800
18096 #. vfs: atomic f_pos accesses as per POSIX
18097 #. type: Plain text
18098 #: build/C/man2/write.2:250
18100 "Among the APIs subsequently listed are B<write>() and B<writev>(2). And "
18101 "among the effects that should be atomic across threads (and processes) are "
18102 "updates of the file offset. However, on Linux before version 3.14, this was "
18103 "not the case: if two processes that share an open file description (see "
18104 "B<open>(2)) perform a B<write>() (or B<writev>(2)) at the same time, then "
18105 "the I/O operations were not atomic with respect updating the file offset, "
18106 "with the result that the blocks of data output by the two processes might "
18107 "(incorrectly) overlap. This problem was fixed in Linux 3.14."
18110 #. type: Plain text
18111 #: build/C/man2/write.2:262
18113 "B<close>(2), B<fcntl>(2), B<fsync>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), "
18114 "B<pwrite>(2), B<read>(2), B<select>(2), B<writev>(2), B<fwrite>(3)"
18116 "B<close>(2), B<fcntl>(2), B<fsync>(2), B<ioctl>(2), B<lseek>(2), B<open>(2), "
18117 "B<pwrite>(2), B<read>(2), B<select>(2), B<writev>(2), B<fwrite>(3)"
18119 #~ msgid "2014-04-20"
18120 #~ msgstr "2014-04-20"
18123 #~ "If the pathname given in I<pathname> is relative, then it is interpreted "
18124 #~ "relative to the directory relative to by the file descriptor I<dirfd> "
18125 #~ "(rather than relative to the current working directory of the calling "
18126 #~ "process, as is done by B<open>() for a relative pathname)."
18128 #~ "I<pathname> で指定されたパス名が相対パスの場合、このパス名はファイルディス"
18129 #~ "クリプター I<dirfd> が参照するディレクトリに対する相対パスと解釈される "
18130 #~ "(B<open>() に相対パス名を渡した場合のように、呼び出したプロセスのカレント"
18131 #~ "ワーキングディレクトリに対する相対パスではない)。"
18133 #~ msgid "2014-03-24"
18134 #~ msgstr "2014-03-24"
18136 #~ msgid "2013-02-12"
18137 #~ msgstr "2013-02-12"
18139 #~ msgid "2013-01-27"
18140 #~ msgstr "2013-01-27"
18143 #~ "Enable the close-on-exec flag for the new file descriptor. Specifying "
18144 #~ "this flag permits a program to avoid additional B<fcntl>(2) B<F_SETFD> "
18145 #~ "operations to set the B<FD_CLOEXEC> flag. Additionally, use of this flag "
18146 #~ "is essential in some multithreaded programs since using a separate "
18147 #~ "B<fcntl>(2) B<F_SETFD> operation to set the B<FD_CLOEXEC> flag does not "
18148 #~ "suffice to avoid race conditions where one thread opens a file descriptor "
18149 #~ "at the same time as another thread does a B<fork>(2) plus B<execve>(2)."
18151 #~ "新しいファイルディスクリプタに対して close-on-exec フラグを有効にする。 こ"
18152 #~ "のフラグを指定することで、プログラムは B<FD_CLOEXEC> フラグをセットするた"
18153 #~ "めの B<fcntl>(2) B<F_SETFD> 操作を別途呼び出す必要がなくなる。 また、ある"
18154 #~ "種のマルチスレッドのプログラムはこのフラグの使用は 不可欠である。なぜな"
18155 #~ "ら、個別に B<FD_CLOEXEC> フラグを設定する B<fcntl>(2) B<F_SETFD> 操作を呼"
18156 #~ "び出したとしても、あるスレッドがファイルディスクリプタを オープンするのと"
18157 #~ "同時に別のスレッドが B<fork>(2) と B<execve>(2) を実行するという競合条件"
18158 #~ "を避けるのには十分ではないからである。"
18160 #~ msgid "SYMBOLIC LINK HANDLING"
18161 #~ msgstr "シンボリックリンクの取り扱い"
18164 #~ "Various system calls do not follow links, and operate on the symbolic "
18165 #~ "link itself. They are: B<lchown>(2), B<lgetxattr>(2), B<llistxattr>(2), "
18166 #~ "B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), B<readlink>(2), "
18167 #~ "B<rename>(2), B<rmdir>(2), and B<unlink>(2). Certain other system calls "
18168 #~ "optionally follow symbolic links. They are: B<faccessat>(2), "
18169 #~ "B<fchownat>(2), B<fstatat>(2), B<linkat>(2), B<open>(2), B<openat>(2), "
18170 #~ "and B<utimensat>(2); see their manual pages for details. Because "
18171 #~ "B<remove>(3) is an alias for B<unlink>(2), that library function also "
18172 #~ "does not follow symbolic links. When B<rmdir>(2) is applied to a "
18173 #~ "symbolic link, it fails with the error B<ENOTDIR>. The B<link>(2) "
18174 #~ "warrants special discussion. POSIX.1-2001 specifies that B<link>(2) "
18175 #~ "should dereference I<oldpath> if it is a symbolic link. However, Linux "
18176 #~ "does not do this. (By default Solaris is the same, but the POSIX.1-2001 "
18177 #~ "specified behavior can be obtained with suitable compiler options.) The "
18178 #~ "upcoming POSIX.1 revision changes the specification to allow either "
18179 #~ "behavior in an implementation."
18181 #~ "いくつかのシステムコールは、 シンボリックリンクを辿らず、 シンボリックリン"
18182 #~ "ク自身に対して操作を行う。 B<lchown>(2), B<lgetxattr>(2), "
18183 #~ "B<llistxattr>(2), B<lremovexattr>(2), B<lsetxattr>(2), B<lstat>(2), "
18184 #~ "B<readlink>(2), B<rename>(2), B<rmdir>(2), B<unlink>(2) が該当する。 他の"
18185 #~ "いくつかのシステムコールは、 シンボリックリンクを辿る場合と辿らない場合が"
18186 #~ "ある。 該当するのは B<faccessat>(2), B<fchownat>(2), B<fstatat>(2), "
18187 #~ "B<linkat>(2), B<open>(2), B<openat>(2), B<utimensat>(2) である。 詳細はそ"
18188 #~ "れぞれのマニュアルページを参照。 ライブラリ関数 B<remove>(3) は "
18189 #~ "B<unlink>(2) の別名なので、 この関数もシンボリックリンクを辿らない。 "
18190 #~ "B<rmdir>(2) をシンボリックリンクに対して行った場合、 エラー B<ENOTDIR> で"
18191 #~ "失敗する。 B<link>(2) は特別に議論が必要である。 POSIX.1-2001 は、 "
18192 #~ "B<link>(2) は I<oldpath> がシンボリックリンクの場合にはこのリンクを展開す"
18193 #~ "べきだと規定している。 しかし、 Linux はこれを行っていない。 (デフォルトで"
18194 #~ "は Solaris も同じだが、 適切なコンパイルオプションを指定することで "
18195 #~ "POSIX.1-2001 で規定された動作にすることもできる。) POSIX.1-2001 の次の版で"
18196 #~ "は、仕様が変更され、 どちらの動作の実装も認められるようになる。"
18199 #~ "If the name was the last link to a file but any processes still have the "
18200 #~ "file open the file will remain in existence until the last file "
18201 #~ "descriptor referring to it is closed."
18203 #~ "もし削除する名前がファイルへの最後のリンクだが、どれかのプロセスが その"
18204 #~ "ファイルをまだオープンしている場合は、 そのファイルを参照している最後の"
18205 #~ "ファイルディスクリプタ (file descriptor) がクローズ (close) されるまで"
18208 #~ msgid "If the name referred to a symbolic link the link is removed."
18210 #~ "もしその名前がシンボリックリンク (symbolic link) を参照していれば、 リンク"
18214 #~ "If the name referred to a socket, fifo or device the name for it is "
18215 #~ "removed but processes which have the object open may continue to use it."
18217 #~ "もし名前がソケット (socket) や fifo やデバイス (device) を参照していれば "
18218 #~ "名前は削除されるがそのオブジェクトをオープンしていたプロセスは それを使い"
18222 #~ "The file is opened for synchronous I/O. Any B<write>(2)s on the "
18223 #~ "resulting file descriptor will block the calling process until the data "
18224 #~ "has been physically written to the underlying hardware. I<But see NOTES "
18227 #~ "ファイルは同期 (synchronous) I/O モードでオープンされる。 B<open>() が返"
18228 #~ "したファイルディスクリプタに対して B<write>(2) を行うと、必ず呼び出したプ"
18229 #~ "ロセスをブロックし、 該当ハードウェアに物理的に書き込まれるまで返らない。 "
18230 #~ "I<以下の「注意」の章も参照。>"
18233 #~ "Some of these optional flags can be altered using B<fcntl>(2) after the "
18234 #~ "file has been opened."
18236 #~ "これらの選択フラグのいくつかはファイルをオープンした後でも B<fcntl>(2) を"
18237 #~ "使用して変更することができる。"
18240 #~ "Too many symbolic links were encountered in resolving I<pathname>, or "
18241 #~ "B<O_NOFOLLOW> was specified but I<pathname> was a symbolic link."
18243 #~ "I<pathname> を解決する際に遭遇したシンボリックリンクが多過ぎる。 または "
18244 #~ "B<O_NOFOLLOW> が指定されており、 I<pathname> がシンボリックリンクだった。"
18247 #~ "The B<O_CLOEXEC> flag is not specified in POSIX.1-2001, but is specified "
18248 #~ "in POSIX.1-2008."
18250 #~ "B<O_CLOEXEC> フラグは POSIX.1-2001 では規定されていないが、 POSIX.1-2008 "
18254 #~ "B<O_DIRECT> is not specified in POSIX; one has to define B<_GNU_SOURCE> "
18255 #~ "(before including I<any> header files) to get its definition."
18257 #~ "B<O_DIRECT> は POSIX では規定されていない。 B<O_DIRECT> の定義を得るには "
18258 #~ "(「どの」ヘッダファイルをインクルードするよりも前に) B<_GNU_SOURCE> を定"
18262 #~ "POSIX provides for three different variants of synchronized I/O, "
18263 #~ "corresponding to the flags B<O_SYNC>, B<O_DSYNC>, and B<O_RSYNC>. "
18264 #~ "Currently (2.6.31), Linux implements only B<O_SYNC>, but glibc maps "
18265 #~ "B<O_DSYNC> and B<O_RSYNC> to the same numerical value as B<O_SYNC>. Most "
18266 #~ "Linux filesystems don't actually implement the POSIX B<O_SYNC> semantics, "
18267 #~ "which require all metadata updates of a write to be on disk on returning "
18268 #~ "to user space, but only the B<O_DSYNC> semantics, which require only "
18269 #~ "actual file data and metadata necessary to retrieve it to be on disk by "
18270 #~ "the time the system call returns."
18272 #~ "POSIX では、3 種類の同期 I/O が提供されており、 B<O_SYNC>, B<O_DSYNC>, "
18273 #~ "B<O_RSYNC> フラグがこれに対応するものである。 今のところ (カーネル "
18274 #~ "2.6.31)、 Linux では B<O_SYNC> だけが実装されているが、 glibc は "
18275 #~ "B<O_DSYNC> と B<O_RSYNC> に B<O_SYNC> と同じ数値を割り当てている。 ほとん"
18276 #~ "どの Linux のファイルシステムは、実際には POSIX の B<O_SYNC> の動作ではな"
18277 #~ "く B<O_DSYNC> の動作だけを実装している。 POSIX の B<O_SYNC> では、 "
18278 #~ "B<open>() がユーザ空間に返る際に、書き込みに関する全てのメタデータの 更新"
18279 #~ "がディスクに書き込まれている必要がある。 一方、 B<O_DSYNC> では、 "
18280 #~ "B<open>() が返るまでに、実際のファイルのデータとそのデータを取得するため"
18281 #~ "に 必要なメタデータだけがディスクに書き込まれていればよい。"