OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.41.
[linuxjm/LDP_man-pages.git] / po4a / filesystem / po / filesystem.pot
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2012-05-28 07:16+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man5/filesystems.5:25
21 #, no-wrap
22 msgid "FILESYSTEMS"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man5/filesystems.5:25
27 #, no-wrap
28 msgid "2010-05-24"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man5/filesystems.5:25 build/C/man3/fts.3:38 build/C/man3/ftw.3:34 build/C/man2/getxattr.2:27 build/C/man2/listxattr.2:27 build/C/man2/mount.2:40 build/C/man7/path_resolution.7:23 build/C/man2/removexattr.2:27 build/C/man2/setxattr.2:27 build/C/man2/spu_create.2:24 build/C/man2/spu_run.2:25 build/C/man7/spufs.7:26 build/C/man2/stat.2:40 build/C/man2/statfs.2:26 build/C/man3/statvfs.3:28 build/C/man2/sysfs.2:25 build/C/man2/umount.2:30 build/C/man2/ustat.2:28
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man5/filesystems.5:25 build/C/man3/fts.3:38 build/C/man3/ftw.3:34 build/C/man3/getfsent.3:25 build/C/man3/getmntent.3:30 build/C/man2/getxattr.2:27 build/C/man2/listxattr.2:27 build/C/man2/mount.2:40 build/C/man7/path_resolution.7:23 build/C/man2/removexattr.2:27 build/C/man2/setxattr.2:27 build/C/man2/spu_create.2:24 build/C/man2/spu_run.2:25 build/C/man7/spufs.7:26 build/C/man2/stat.2:40 build/C/man2/statfs.2:26 build/C/man3/statvfs.3:28 build/C/man2/sysfs.2:25 build/C/man2/umount.2:30 build/C/man2/ustat.2:28
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man5/filesystems.5:27 build/C/man3/fts.3:39 build/C/man3/ftw.3:35 build/C/man3/getfsent.3:26 build/C/man3/getmntent.3:31 build/C/man2/getxattr.2:28 build/C/man2/listxattr.2:28 build/C/man2/mount.2:41 build/C/man7/path_resolution.7:24 build/C/man2/removexattr.2:28 build/C/man2/setxattr.2:28 build/C/man2/spu_create.2:25 build/C/man2/spu_run.2:26 build/C/man7/spufs.7:27 build/C/man2/stat.2:41 build/C/man2/statfs.2:27 build/C/man3/statvfs.3:29 build/C/man2/sysfs.2:26 build/C/man2/umount.2:31 build/C/man2/ustat.2:29
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man5/filesystems.5:31
51 msgid ""
52 "filesystems - Linux file-system types: minix, ext, ext2, ext3, ext4, "
53 "Reiserfs, XFS, JFS, xia, msdos, umsdos, vfat, ntfs, proc, nfs, iso9660, "
54 "hpfs, sysv, smb, ncpfs"
55 msgstr ""
56
57 #. type: SH
58 #: build/C/man5/filesystems.5:31 build/C/man3/fts.3:59 build/C/man3/ftw.3:54 build/C/man3/getfsent.3:40 build/C/man3/getmntent.3:63 build/C/man2/getxattr.2:44 build/C/man2/listxattr.2:43 build/C/man2/mount.2:51 build/C/man7/path_resolution.7:26 build/C/man2/removexattr.2:41 build/C/man2/setxattr.2:44 build/C/man2/spu_create.2:36 build/C/man2/spu_run.2:35 build/C/man7/spufs.7:29 build/C/man2/stat.2:72 build/C/man2/statfs.2:35 build/C/man3/statvfs.3:37 build/C/man2/sysfs.2:34 build/C/man2/umount.2:41 build/C/man2/ustat.2:41
59 #, no-wrap
60 msgid "DESCRIPTION"
61 msgstr ""
62
63 #. type: Plain text
64 #: build/C/man5/filesystems.5:41
65 msgid ""
66 "When, as is customary, the B<proc> file system is mounted on I</proc>, you "
67 "can find in the file I</proc/filesystems> which file systems your kernel "
68 "currently supports.  If you need a currently unsupported one, insert the "
69 "corresponding module or recompile the kernel."
70 msgstr ""
71
72 #. type: Plain text
73 #: build/C/man5/filesystems.5:46
74 msgid "In order to use a file system, you have to I<mount> it; see B<mount>(8)."
75 msgstr ""
76
77 #. type: Plain text
78 #: build/C/man5/filesystems.5:48
79 msgid "Below a short description of a few of the available file systems."
80 msgstr ""
81
82 #. type: TP
83 #: build/C/man5/filesystems.5:48
84 #, no-wrap
85 msgid "B<minix>"
86 msgstr ""
87
88 #. type: Plain text
89 #: build/C/man5/filesystems.5:55
90 msgid ""
91 "is the file system used in the Minix operating system, the first to run "
92 "under Linux.  It has a number of shortcomings: a 64MB partition size limit, "
93 "short filenames, a single timestamp, etc.  It remains useful for floppies "
94 "and RAM disks."
95 msgstr ""
96
97 #. type: TP
98 #: build/C/man5/filesystems.5:55
99 #, no-wrap
100 msgid "B<ext>"
101 msgstr ""
102
103 #. type: Plain text
104 #: build/C/man5/filesystems.5:64
105 msgid ""
106 "is an elaborate extension of the B<minix> file system.  It has been "
107 "completely superseded by the second version of the extended file system "
108 "(B<ext2>)  and has been removed from the kernel (in 2.1.21)."
109 msgstr ""
110
111 #. type: TP
112 #: build/C/man5/filesystems.5:64
113 #, no-wrap
114 msgid "B<ext2>"
115 msgstr ""
116
117 #. type: Plain text
118 #: build/C/man5/filesystems.5:74
119 msgid ""
120 "is the high performance disk file system used by Linux for fixed disks as "
121 "well as removable media.  The second extended file system was designed as an "
122 "extension of the extended file system (B<ext>).  B<ext2> offers the best "
123 "performance (in terms of speed and CPU usage) of the file systems supported "
124 "under Linux."
125 msgstr ""
126
127 #. type: TP
128 #: build/C/man5/filesystems.5:74
129 #, no-wrap
130 msgid "B<ext3>"
131 msgstr ""
132
133 #. type: Plain text
134 #: build/C/man5/filesystems.5:79
135 msgid ""
136 "is a journaling version of the ext2 file system.  It is easy to switch back "
137 "and forth between ext2 and ext3."
138 msgstr ""
139
140 #. type: TP
141 #: build/C/man5/filesystems.5:79
142 #, no-wrap
143 msgid "B<ext4>"
144 msgstr ""
145
146 #. type: Plain text
147 #: build/C/man5/filesystems.5:84
148 msgid ""
149 "is a set of upgrades to ext3 including substantial performance and "
150 "reliability enhancements, plus large increases in volume, file, and "
151 "directory size limits."
152 msgstr ""
153
154 #. type: TP
155 #: build/C/man5/filesystems.5:84
156 #, no-wrap
157 msgid "B<Reiserfs>"
158 msgstr ""
159
160 #. type: Plain text
161 #: build/C/man5/filesystems.5:88
162 msgid ""
163 "is a journaling file system, designed by Hans Reiser, that was integrated "
164 "into Linux in kernel 2.4.1."
165 msgstr ""
166
167 #. type: TP
168 #: build/C/man5/filesystems.5:88
169 #, no-wrap
170 msgid "B<XFS>"
171 msgstr ""
172
173 #. type: Plain text
174 #: build/C/man5/filesystems.5:92
175 msgid ""
176 "is a journaling file system, developed by SGI, that was integrated into "
177 "Linux in kernel 2.4.20."
178 msgstr ""
179
180 #. type: TP
181 #: build/C/man5/filesystems.5:92
182 #, no-wrap
183 msgid "B<JFS>"
184 msgstr ""
185
186 #. type: Plain text
187 #: build/C/man5/filesystems.5:96
188 msgid ""
189 "is a journaling file system, developed by IBM, that was integrated into "
190 "Linux in kernel 2.4.24."
191 msgstr ""
192
193 #. type: TP
194 #: build/C/man5/filesystems.5:96
195 #, no-wrap
196 msgid "B<xiafs>"
197 msgstr ""
198
199 #. type: Plain text
200 #: build/C/man5/filesystems.5:106
201 msgid ""
202 "was designed and implemented to be a stable, safe file system by extending "
203 "the Minix file system code.  It provides the basic most requested features "
204 "without undue complexity.  The B<xia> file system is no longer actively "
205 "developed or maintained.  It was removed from the kernel in 2.1.21."
206 msgstr ""
207
208 #. type: TP
209 #: build/C/man5/filesystems.5:106
210 #, no-wrap
211 msgid "B<msdos>"
212 msgstr ""
213
214 #. type: Plain text
215 #: build/C/man5/filesystems.5:112
216 msgid ""
217 "is the file system used by DOS, Windows, and some OS/2 computers.  B<msdos> "
218 "filenames can be no longer than 8 characters, followed by an optional period "
219 "and 3 character extension."
220 msgstr ""
221
222 #. type: TP
223 #: build/C/man5/filesystems.5:112
224 #, no-wrap
225 msgid "B<umsdos>"
226 msgstr ""
227
228 #. type: Plain text
229 #: build/C/man5/filesystems.5:119
230 msgid ""
231 "is an extended DOS file system used by Linux.  It adds capability for long "
232 "filenames, UID/GID, POSIX permissions, and special files (devices, named "
233 "pipes, etc.)  under the DOS file system, without sacrificing compatibility "
234 "with DOS."
235 msgstr ""
236
237 #. type: TP
238 #: build/C/man5/filesystems.5:119
239 #, no-wrap
240 msgid "B<vfat>"
241 msgstr ""
242
243 #. type: Plain text
244 #: build/C/man5/filesystems.5:123
245 msgid ""
246 "is an extended DOS file system used by Microsoft Windows95 and Windows NT.  "
247 "VFAT adds the capability to use long filenames under the MSDOS file system."
248 msgstr ""
249
250 #. type: TP
251 #: build/C/man5/filesystems.5:123
252 #, no-wrap
253 msgid "B<ntfs>"
254 msgstr ""
255
256 #. type: Plain text
257 #: build/C/man5/filesystems.5:128
258 msgid ""
259 "replaces Microsoft Window's FAT file systems (VFAT, FAT32).  It has "
260 "reliability, performance, and space-utilization enhancements plus features "
261 "like ACLs, journaling, encryption, and so on."
262 msgstr ""
263
264 #. type: TP
265 #: build/C/man5/filesystems.5:128
266 #, no-wrap
267 msgid "B<proc>"
268 msgstr ""
269
270 #. type: Plain text
271 #: build/C/man5/filesystems.5:136
272 msgid ""
273 "is a pseudo file system which is used as an interface to kernel data "
274 "structures rather than reading and interpreting I</dev/kmem>.  In "
275 "particular, its files do not take disk space.  See B<proc>(5)."
276 msgstr ""
277
278 #. type: TP
279 #: build/C/man5/filesystems.5:136
280 #, no-wrap
281 msgid "B<iso9660>"
282 msgstr ""
283
284 #. type: Plain text
285 #: build/C/man5/filesystems.5:139
286 msgid "is a CD-ROM file system type conforming to the ISO 9660 standard."
287 msgstr ""
288
289 #. type: TP
290 #: build/C/man5/filesystems.5:140
291 #, no-wrap
292 msgid "B<High Sierra>"
293 msgstr ""
294
295 #. type: Plain text
296 #: build/C/man5/filesystems.5:147
297 msgid ""
298 "Linux supports High Sierra, the precursor to the ISO 9660 standard for "
299 "CD-ROM file systems.  It is automatically recognized within the B<iso9660> "
300 "file-system support under Linux."
301 msgstr ""
302
303 #. type: TP
304 #: build/C/man5/filesystems.5:147
305 #, no-wrap
306 msgid "B<Rock Ridge>"
307 msgstr ""
308
309 #. type: Plain text
310 #: build/C/man5/filesystems.5:158
311 msgid ""
312 "Linux also supports the System Use Sharing Protocol records specified by the "
313 "Rock Ridge Interchange Protocol.  They are used to further describe the "
314 "files in the B<iso9660> file system to a UNIX host, and provide information "
315 "such as long filenames, UID/GID, POSIX permissions, and devices.  It is "
316 "automatically recognized within the B<iso9660> file-system support under "
317 "Linux."
318 msgstr ""
319
320 #. type: TP
321 #: build/C/man5/filesystems.5:159
322 #, no-wrap
323 msgid "B<hpfs>"
324 msgstr ""
325
326 #. type: Plain text
327 #: build/C/man5/filesystems.5:164
328 msgid ""
329 "is the High Performance Filesystem, used in OS/2.  This file system is "
330 "read-only under Linux due to the lack of available documentation."
331 msgstr ""
332
333 #. type: TP
334 #: build/C/man5/filesystems.5:164
335 #, no-wrap
336 msgid "B<sysv>"
337 msgstr ""
338
339 #. type: Plain text
340 #: build/C/man5/filesystems.5:168
341 msgid ""
342 "is an implementation of the SystemV/Coherent file system for Linux.  It "
343 "implements all of Xenix FS, SystemV/386 FS, and Coherent FS."
344 msgstr ""
345
346 #. type: TP
347 #: build/C/man5/filesystems.5:168
348 #, no-wrap
349 msgid "B<nfs>"
350 msgstr ""
351
352 #. type: Plain text
353 #: build/C/man5/filesystems.5:171
354 msgid "is the network file system used to access disks located on remote computers."
355 msgstr ""
356
357 #. type: TP
358 #: build/C/man5/filesystems.5:171
359 #, no-wrap
360 msgid "B<smb>"
361 msgstr ""
362
363 #. type: Plain text
364 #: build/C/man5/filesystems.5:175
365 msgid ""
366 "is a network file system that supports the SMB protocol, used by Windows for "
367 "Workgroups, Windows NT, and Lan Manager."
368 msgstr ""
369
370 #. type: Plain text
371 #: build/C/man5/filesystems.5:181
372 msgid ""
373 "To use B<smb> fs, you need a special mount program, which can be found in "
374 "the ksmbfs package, found at "
375 "I<ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/smbfs>."
376 msgstr ""
377
378 #. type: TP
379 #: build/C/man5/filesystems.5:181
380 #, no-wrap
381 msgid "B<ncpfs>"
382 msgstr ""
383
384 #. type: Plain text
385 #: build/C/man5/filesystems.5:185
386 msgid ""
387 "is a network file system that supports the NCP protocol, used by Novell "
388 "NetWare."
389 msgstr ""
390
391 #. type: Plain text
392 #: build/C/man5/filesystems.5:190
393 msgid ""
394 "To use B<ncpfs>, you need special programs, which can be found at "
395 "I<ftp://linux01.gwdg.de/pub/ncpfs>."
396 msgstr ""
397
398 #. type: SH
399 #: build/C/man5/filesystems.5:190 build/C/man3/fts.3:781 build/C/man3/ftw.3:404 build/C/man3/getfsent.3:131 build/C/man3/getmntent.3:193 build/C/man2/getxattr.2:143 build/C/man2/listxattr.2:155 build/C/man2/mount.2:456 build/C/man7/path_resolution.7:229 build/C/man2/removexattr.2:110 build/C/man2/setxattr.2:153 build/C/man2/spu_create.2:265 build/C/man2/spu_run.2:259 build/C/man7/spufs.7:765 build/C/man2/stat.2:649 build/C/man2/statfs.2:275 build/C/man3/statvfs.3:179 build/C/man2/umount.2:170 build/C/man2/ustat.2:114
400 #, no-wrap
401 msgid "SEE ALSO"
402 msgstr ""
403
404 #. type: Plain text
405 #: build/C/man5/filesystems.5:195
406 msgid "B<proc>(5), B<fsck>(8), B<mkfs>(8), B<mount>(8)"
407 msgstr ""
408
409 #. type: SH
410 #: build/C/man5/filesystems.5:195 build/C/man3/fts.3:787 build/C/man3/ftw.3:408 build/C/man3/getfsent.3:134 build/C/man3/getmntent.3:197 build/C/man2/getxattr.2:153 build/C/man2/listxattr.2:165 build/C/man2/mount.2:461 build/C/man7/path_resolution.7:234 build/C/man2/removexattr.2:120 build/C/man2/setxattr.2:163 build/C/man2/spu_create.2:270 build/C/man2/spu_run.2:264 build/C/man7/spufs.7:771 build/C/man2/stat.2:658 build/C/man2/statfs.2:279 build/C/man3/statvfs.3:181 build/C/man2/sysfs.2:102 build/C/man2/umount.2:175 build/C/man2/ustat.2:117
411 #, no-wrap
412 msgid "COLOPHON"
413 msgstr ""
414
415 #. type: Plain text
416 #: build/C/man5/filesystems.5:202 build/C/man3/fts.3:794 build/C/man3/ftw.3:415 build/C/man3/getfsent.3:141 build/C/man3/getmntent.3:204 build/C/man2/getxattr.2:160 build/C/man2/listxattr.2:172 build/C/man2/mount.2:468 build/C/man7/path_resolution.7:241 build/C/man2/removexattr.2:127 build/C/man2/setxattr.2:170 build/C/man2/spu_create.2:277 build/C/man2/spu_run.2:271 build/C/man7/spufs.7:778 build/C/man2/stat.2:665 build/C/man2/statfs.2:286 build/C/man3/statvfs.3:188 build/C/man2/sysfs.2:109 build/C/man2/umount.2:182 build/C/man2/ustat.2:124
417 msgid ""
418 "This page is part of release 3.41 of the Linux I<man-pages> project.  A "
419 "description of the project, and information about reporting bugs, can be "
420 "found at http://www.kernel.org/doc/man-pages/."
421 msgstr ""
422
423 #. type: TH
424 #: build/C/man3/fts.3:38
425 #, no-wrap
426 msgid "FTS"
427 msgstr ""
428
429 #. type: TH
430 #: build/C/man3/fts.3:38
431 #, no-wrap
432 msgid "2007-12-28"
433 msgstr ""
434
435 #. type: Plain text
436 #: build/C/man3/fts.3:42
437 msgid ""
438 "fts, fts_open, fts_read, fts_children, fts_set, fts_close - traverse a file "
439 "hierarchy"
440 msgstr ""
441
442 #. type: SH
443 #: build/C/man3/fts.3:42 build/C/man3/ftw.3:37 build/C/man3/getfsent.3:28 build/C/man3/getmntent.3:34 build/C/man2/getxattr.2:30 build/C/man2/listxattr.2:30 build/C/man2/mount.2:43 build/C/man2/removexattr.2:30 build/C/man2/setxattr.2:30 build/C/man2/spu_create.2:27 build/C/man2/spu_run.2:28 build/C/man2/stat.2:43 build/C/man2/statfs.2:29 build/C/man3/statvfs.3:31 build/C/man2/sysfs.2:28 build/C/man2/umount.2:33 build/C/man2/ustat.2:31
444 #, no-wrap
445 msgid "SYNOPSIS"
446 msgstr ""
447
448 #. type: Plain text
449 #: build/C/man3/fts.3:47
450 #, no-wrap
451 msgid ""
452 "B<#include E<lt>sys/types.hE<gt>>\n"
453 "B<#include E<lt>sys/stat.hE<gt>>\n"
454 "B<#include E<lt>fts.hE<gt>>\n"
455 msgstr ""
456
457 #. type: Plain text
458 #: build/C/man3/fts.3:50
459 #, no-wrap
460 msgid ""
461 "B<FTS *fts_open(char * const *>I<path_argv>B<, int >I<options>B<, >\n"
462 "B<              int (*>I<compar>B<)(const FTSENT **, const FTSENT **));>\n"
463 msgstr ""
464
465 #. type: Plain text
466 #: build/C/man3/fts.3:52
467 #, no-wrap
468 msgid "B<FTSENT *fts_read(FTS *>I<ftsp>B<);>\n"
469 msgstr ""
470
471 #. type: Plain text
472 #: build/C/man3/fts.3:54
473 #, no-wrap
474 msgid "B<FTSENT *fts_children(FTS *>I<ftsp>B<, int >I<options>B<);>\n"
475 msgstr ""
476
477 #. type: Plain text
478 #: build/C/man3/fts.3:56
479 #, no-wrap
480 msgid "B<int fts_set(FTS *>I<ftsp>B<, FTSENT *>I<f>B<, int >I<options>B<);>\n"
481 msgstr ""
482
483 #. type: Plain text
484 #: build/C/man3/fts.3:58
485 #, no-wrap
486 msgid "B<int fts_close(FTS *>I<ftsp>B<);>\n"
487 msgstr ""
488
489 #. type: Plain text
490 #: build/C/man3/fts.3:83
491 msgid ""
492 "The fts functions are provided for traversing file hierarchies.  A simple "
493 "overview is that the B<fts_open>()  function returns a \"handle\" on a file "
494 "hierarchy, which is then supplied to the other fts functions.  The function "
495 "B<fts_read>()  returns a pointer to a structure describing one of the files "
496 "in the file hierarchy.  The function B<fts_children>()  returns a pointer to "
497 "a linked list of structures, each of which describes one of the files "
498 "contained in a directory in the hierarchy.  In general, directories are "
499 "visited two distinguishable times; in preorder (before any of their "
500 "descendants are visited) and in postorder (after all of their descendants "
501 "have been visited).  Files are visited once.  It is possible to walk the "
502 "hierarchy \"logically\" (ignoring symbolic links)  or physically (visiting "
503 "symbolic links), order the walk of the hierarchy or prune and/or revisit "
504 "portions of the hierarchy."
505 msgstr ""
506
507 #. type: Plain text
508 #: build/C/man3/fts.3:104
509 msgid ""
510 "Two structures are defined (and typedef'd) in the include file "
511 "I<E<lt>fts.hE<gt>>.  The first is I<FTS>, the structure that represents the "
512 "file hierarchy itself.  The second is I<FTSENT>, the structure that "
513 "represents a file in the file hierarchy.  Normally, an I<FTSENT> structure "
514 "is returned for every file in the file hierarchy.  In this manual page, "
515 "\"file\" and \"FTSENT structure\" are generally interchangeable.  The "
516 "I<FTSENT> structure contains at least the following fields, which are "
517 "described in greater detail below:"
518 msgstr ""
519
520 #. type: Plain text
521 #: build/C/man3/fts.3:123
522 #, no-wrap
523 msgid ""
524 "typedef struct _ftsent {\n"
525 "    unsigned short fts_info;     /* flags for FTSENT structure */\n"
526 "    char          *fts_accpath;  /* access path */\n"
527 "    char          *fts_path;     /* root path */\n"
528 "    short          fts_pathlen;  /* strlen(fts_path) */\n"
529 "    char          *fts_name;     /* filename */\n"
530 "    short          fts_namelen;  /* strlen(fts_name) */\n"
531 "    short          fts_level;    /* depth (-1 to N) */\n"
532 "    int            fts_errno;    /* file errno */\n"
533 "    long           fts_number;   /* local numeric value */\n"
534 "    void          *fts_pointer;  /* local address value */\n"
535 "    struct ftsent *fts_parent;   /* parent directory */\n"
536 "    struct ftsent *fts_link;     /* next file structure */\n"
537 "    struct ftsent *fts_cycle;    /* cycle structure */\n"
538 "    struct stat   *fts_statp;    /* stat(2) information */\n"
539 "} FTSENT;\n"
540 msgstr ""
541
542 #.  .Bl -tag -width "fts_namelen"
543 #. type: Plain text
544 #: build/C/man3/fts.3:128
545 msgid "These fields are defined as follows:"
546 msgstr ""
547
548 #. type: TP
549 #: build/C/man3/fts.3:128
550 #, no-wrap
551 msgid "I<fts_info>"
552 msgstr ""
553
554 #.  .Bl  -tag -width FTS_DEFAULT
555 #. type: Plain text
556 #: build/C/man3/fts.3:140
557 msgid ""
558 "One of the following flags describing the returned I<FTSENT> structure and "
559 "the file it represents.  With the exception of directories without errors "
560 "(B<FTS_D>), all of these entries are terminal, that is, they will not be "
561 "revisited, nor will any of their descendants be visited."
562 msgstr ""
563
564 #. type: TP
565 #: build/C/man3/fts.3:141
566 #, no-wrap
567 msgid "B<FTS_D>"
568 msgstr ""
569
570 #. type: Plain text
571 #: build/C/man3/fts.3:144
572 msgid "A directory being visited in preorder."
573 msgstr ""
574
575 #. type: TP
576 #: build/C/man3/fts.3:144
577 #, no-wrap
578 msgid "B<FTS_DC>"
579 msgstr ""
580
581 #. type: Plain text
582 #: build/C/man3/fts.3:152
583 msgid ""
584 "A directory that causes a cycle in the tree.  (The I<fts_cycle> field of the "
585 "I<FTSENT> structure will be filled in as well.)"
586 msgstr ""
587
588 #. type: TP
589 #: build/C/man3/fts.3:152
590 #, no-wrap
591 msgid "B<FTS_DEFAULT>"
592 msgstr ""
593
594 #. type: Plain text
595 #: build/C/man3/fts.3:160
596 msgid ""
597 "Any I<FTSENT> structure that represents a file type not explicitly described "
598 "by one of the other I<fts_info> values."
599 msgstr ""
600
601 #. type: TP
602 #: build/C/man3/fts.3:160
603 #, no-wrap
604 msgid "B<FTS_DNR>"
605 msgstr ""
606
607 #. type: Plain text
608 #: build/C/man3/fts.3:166
609 msgid ""
610 "A directory which cannot be read.  This is an error return, and the "
611 "I<fts_errno> field will be set to indicate what caused the error."
612 msgstr ""
613
614 #. type: TP
615 #: build/C/man3/fts.3:166
616 #, no-wrap
617 msgid "B<FTS_DOT>"
618 msgstr ""
619
620 #. type: Plain text
621 #: build/C/man3/fts.3:176
622 msgid ""
623 "A file named \".\" or \"..\" which was not specified as a filename to "
624 "B<fts_open>()  (see B<FTS_SEEDOT>)."
625 msgstr ""
626
627 #. type: TP
628 #: build/C/man3/fts.3:176
629 #, no-wrap
630 msgid "B<FTS_DP>"
631 msgstr ""
632
633 #. type: Plain text
634 #: build/C/man3/fts.3:186
635 msgid ""
636 "A directory being visited in postorder.  The contents of the I<FTSENT> "
637 "structure will be unchanged from when it was returned in preorder, that is, "
638 "with the I<fts_info> field set to B<FTS_D>."
639 msgstr ""
640
641 #. type: TP
642 #: build/C/man3/fts.3:186
643 #, no-wrap
644 msgid "B<FTS_ERR>"
645 msgstr ""
646
647 #. type: Plain text
648 #: build/C/man3/fts.3:191
649 msgid ""
650 "This is an error return, and the I<fts_errno> field will be set to indicate "
651 "what caused the error."
652 msgstr ""
653
654 #. type: TP
655 #: build/C/man3/fts.3:191
656 #, no-wrap
657 msgid "B<FTS_F>"
658 msgstr ""
659
660 #. type: Plain text
661 #: build/C/man3/fts.3:194
662 msgid "A regular file."
663 msgstr ""
664
665 #. type: TP
666 #: build/C/man3/fts.3:194
667 #, no-wrap
668 msgid "B<FTS_NS>"
669 msgstr ""
670
671 #. type: Plain text
672 #: build/C/man3/fts.3:205
673 msgid ""
674 "A file for which no B<stat>(2)  information was available.  The contents of "
675 "the I<fts_statp> field are undefined.  This is an error return, and the "
676 "I<fts_errno> field will be set to indicate what caused the error."
677 msgstr ""
678
679 #. type: TP
680 #: build/C/man3/fts.3:205
681 #, no-wrap
682 msgid "B<FTS_NSOK>"
683 msgstr ""
684
685 #. type: Plain text
686 #: build/C/man3/fts.3:213
687 msgid ""
688 "A file for which no B<stat>(2)  information was requested.  The contents of "
689 "the I<fts_statp> field are undefined."
690 msgstr ""
691
692 #. type: TP
693 #: build/C/man3/fts.3:213
694 #, no-wrap
695 msgid "B<FTS_SL>"
696 msgstr ""
697
698 #. type: Plain text
699 #: build/C/man3/fts.3:216
700 msgid "A symbolic link."
701 msgstr ""
702
703 #. type: TP
704 #: build/C/man3/fts.3:216
705 #, no-wrap
706 msgid "B<FTS_SLNONE>"
707 msgstr ""
708
709 #.  .El
710 #. type: Plain text
711 #: build/C/man3/fts.3:224
712 msgid ""
713 "A symbolic link with a nonexistent target.  The contents of the I<fts_statp> "
714 "field reference the file characteristic information for the symbolic link "
715 "itself."
716 msgstr ""
717
718 #. type: TP
719 #: build/C/man3/fts.3:225
720 #, no-wrap
721 msgid "I<fts_accpath>"
722 msgstr ""
723
724 #. type: Plain text
725 #: build/C/man3/fts.3:228
726 msgid "A path for accessing the file from the current directory."
727 msgstr ""
728
729 #. type: TP
730 #: build/C/man3/fts.3:228
731 #, no-wrap
732 msgid "I<fts_path>"
733 msgstr ""
734
735 #. type: Plain text
736 #: build/C/man3/fts.3:234
737 msgid ""
738 "The path for the file relative to the root of the traversal.  This path "
739 "contains the path specified to B<fts_open>()  as a prefix."
740 msgstr ""
741
742 #. type: TP
743 #: build/C/man3/fts.3:234
744 #, no-wrap
745 msgid "I<fts_pathlen>"
746 msgstr ""
747
748 #. type: Plain text
749 #: build/C/man3/fts.3:238
750 msgid "The length of the string referenced by I<fts_path>."
751 msgstr ""
752
753 #. type: TP
754 #: build/C/man3/fts.3:238
755 #, no-wrap
756 msgid "I<fts_name>"
757 msgstr ""
758
759 #. type: Plain text
760 #: build/C/man3/fts.3:241
761 msgid "The name of the file."
762 msgstr ""
763
764 #. type: TP
765 #: build/C/man3/fts.3:241
766 #, no-wrap
767 msgid "I<fts_namelen>"
768 msgstr ""
769
770 #. type: Plain text
771 #: build/C/man3/fts.3:245
772 msgid "The length of the string referenced by I<fts_name>."
773 msgstr ""
774
775 #. type: TP
776 #: build/C/man3/fts.3:245
777 #, no-wrap
778 msgid "I<fts_level>"
779 msgstr ""
780
781 #. type: Plain text
782 #: build/C/man3/fts.3:256
783 msgid ""
784 "The depth of the traversal, numbered from -1 to N, where this file was "
785 "found.  The I<FTSENT> structure representing the parent of the starting "
786 "point (or root)  of the traversal is numbered -1, and the I<FTSENT> "
787 "structure for the root itself is numbered 0."
788 msgstr ""
789
790 #. type: TP
791 #: build/C/man3/fts.3:256
792 #, no-wrap
793 msgid "I<fts_errno>"
794 msgstr ""
795
796 #. type: Plain text
797 #: build/C/man3/fts.3:279
798 msgid ""
799 "Upon return of a I<FTSENT> structure from the B<fts_children>()  or "
800 "B<fts_read>()  functions, with its I<fts_info> field set to B<FTS_DNR>, "
801 "B<FTS_ERR> or B<FTS_NS>, the I<fts_errno> field contains the value of the "
802 "external variable I<errno> specifying the cause of the error.  Otherwise, "
803 "the contents of the I<fts_errno> field are undefined."
804 msgstr ""
805
806 #. type: TP
807 #: build/C/man3/fts.3:279
808 #, no-wrap
809 msgid "I<fts_number>"
810 msgstr ""
811
812 #. type: Plain text
813 #: build/C/man3/fts.3:285
814 msgid ""
815 "This field is provided for the use of the application program and is not "
816 "modified by the fts functions.  It is initialized to 0."
817 msgstr ""
818
819 #. type: TP
820 #: build/C/man3/fts.3:285
821 #, no-wrap
822 msgid "I<fts_pointer>"
823 msgstr ""
824
825 #. type: Plain text
826 #: build/C/man3/fts.3:292
827 msgid ""
828 "This field is provided for the use of the application program and is not "
829 "modified by the fts functions.  It is initialized to NULL."
830 msgstr ""
831
832 #. type: TP
833 #: build/C/man3/fts.3:292
834 #, no-wrap
835 msgid "I<fts_parent>"
836 msgstr ""
837
838 #. type: Plain text
839 #: build/C/man3/fts.3:306
840 msgid ""
841 "A pointer to the I<FTSENT> structure referencing the file in the hierarchy "
842 "immediately above the current file, that is, the directory of which this "
843 "file is a member.  A parent structure for the initial entry point is "
844 "provided as well, however, only the I<fts_level>, I<fts_number> and "
845 "I<fts_pointer> fields are guaranteed to be initialized."
846 msgstr ""
847
848 #. type: TP
849 #: build/C/man3/fts.3:306
850 #, no-wrap
851 msgid "I<fts_link>"
852 msgstr ""
853
854 #. type: Plain text
855 #: build/C/man3/fts.3:317
856 msgid ""
857 "Upon return from the B<fts_children>()  function, the I<fts_link> field "
858 "points to the next structure in the NULL-terminated linked list of directory "
859 "members.  Otherwise, the contents of the I<fts_link> field are undefined."
860 msgstr ""
861
862 #. type: TP
863 #: build/C/man3/fts.3:317
864 #, no-wrap
865 msgid "I<fts_cycle>"
866 msgstr ""
867
868 #. type: Plain text
869 #: build/C/man3/fts.3:333
870 msgid ""
871 "If a directory causes a cycle in the hierarchy (see B<FTS_DC>), either "
872 "because of a hard link between two directories, or a symbolic link pointing "
873 "to a directory, the I<fts_cycle> field of the structure will point to the "
874 "I<FTSENT> structure in the hierarchy that references the same file as the "
875 "current I<FTSENT> structure.  Otherwise, the contents of the I<fts_cycle> "
876 "field are undefined."
877 msgstr ""
878
879 #. type: TP
880 #: build/C/man3/fts.3:333
881 #, no-wrap
882 msgid "I<fts_statp>"
883 msgstr ""
884
885 #.  .El
886 #. type: Plain text
887 #: build/C/man3/fts.3:339
888 msgid "A pointer to B<stat>(2)  information for the file."
889 msgstr ""
890
891 #. type: Plain text
892 #: build/C/man3/fts.3:366
893 msgid ""
894 "A single buffer is used for all of the paths of all of the files in the file "
895 "hierarchy.  Therefore, the I<fts_path> and I<fts_accpath> fields are "
896 "guaranteed to be null-terminated I<only> for the file most recently returned "
897 "by B<fts_read>().  To use these fields to reference any files represented by "
898 "other I<FTSENT> structures will require that the path buffer be modified "
899 "using the information contained in that I<FTSENT> structure's I<fts_pathlen> "
900 "field.  Any such modifications should be undone before further calls to "
901 "B<fts_read>()  are attempted.  The I<fts_name> field is always "
902 "null-terminated."
903 msgstr ""
904
905 #. type: SS
906 #: build/C/man3/fts.3:366
907 #, no-wrap
908 msgid "fts_open()"
909 msgstr ""
910
911 #. type: Plain text
912 #: build/C/man3/fts.3:374
913 msgid ""
914 "The B<fts_open>()  function takes a pointer to an array of character "
915 "pointers naming one or more paths which make up a logical file hierarchy to "
916 "be traversed.  The array must be terminated by a NULL pointer."
917 msgstr ""
918
919 #.  .Bl -tag -width "FTS_PHYSICAL"
920 #. type: Plain text
921 #: build/C/man3/fts.3:384
922 msgid ""
923 "There are a number of options, at least one of which (either B<FTS_LOGICAL> "
924 "or B<FTS_PHYSICAL>)  must be specified.  The options are selected by ORing "
925 "the following values:"
926 msgstr ""
927
928 #. type: TP
929 #: build/C/man3/fts.3:384
930 #, no-wrap
931 msgid "B<FTS_COMFOLLOW>"
932 msgstr ""
933
934 #. type: Plain text
935 #: build/C/man3/fts.3:390
936 msgid ""
937 "This option causes any symbolic link specified as a root path to be followed "
938 "immediately whether or not B<FTS_LOGICAL> is also specified."
939 msgstr ""
940
941 #. type: TP
942 #: build/C/man3/fts.3:390
943 #, no-wrap
944 msgid "B<FTS_LOGICAL>"
945 msgstr ""
946
947 #. type: Plain text
948 #: build/C/man3/fts.3:409
949 msgid ""
950 "This option causes the fts routines to return I<FTSENT> structures for the "
951 "targets of symbolic links instead of the symbolic links themselves.  If this "
952 "option is set, the only symbolic links for which I<FTSENT> structures are "
953 "returned to the application are those referencing nonexistent files.  Either "
954 "B<FTS_LOGICAL> or B<FTS_PHYSICAL> I<must> be provided to the B<fts_open>()  "
955 "function."
956 msgstr ""
957
958 #. type: TP
959 #: build/C/man3/fts.3:409
960 #, no-wrap
961 msgid "B<FTS_NOCHDIR>"
962 msgstr ""
963
964 #. type: Plain text
965 #: build/C/man3/fts.3:425
966 msgid ""
967 "As a performance optimization, the fts functions change directories as they "
968 "walk the file hierarchy.  This has the side-effect that an application "
969 "cannot rely on being in any particular directory during the traversal.  The "
970 "B<FTS_NOCHDIR> option turns off this optimization, and the fts functions "
971 "will not change the current directory.  Note that applications should not "
972 "themselves change their current directory and try to access files unless "
973 "B<FTS_NOCHDIR> is specified and absolute pathnames were provided as "
974 "arguments to B<fts_open>()."
975 msgstr ""
976
977 #. type: TP
978 #: build/C/man3/fts.3:425
979 #, no-wrap
980 msgid "B<FTS_NOSTAT>"
981 msgstr ""
982
983 #. type: Plain text
984 #: build/C/man3/fts.3:441
985 msgid ""
986 "By default, returned I<FTSENT> structures reference file characteristic "
987 "information (the I<statp> field) for each file visited.  This option relaxes "
988 "that requirement as a performance optimization, allowing the fts functions "
989 "to set the I<fts_info> field to B<FTS_NSOK> and leave the contents of the "
990 "I<statp> field undefined."
991 msgstr ""
992
993 #. type: TP
994 #: build/C/man3/fts.3:441
995 #, no-wrap
996 msgid "B<FTS_PHYSICAL>"
997 msgstr ""
998
999 #. type: Plain text
1000 #: build/C/man3/fts.3:460
1001 msgid ""
1002 "This option causes the fts routines to return I<FTSENT> structures for "
1003 "symbolic links themselves instead of the target files they point to.  If "
1004 "this option is set, I<FTSENT> structures for all symbolic links in the "
1005 "hierarchy are returned to the application.  Either B<FTS_LOGICAL> or "
1006 "B<FTS_PHYSICAL> I<must> be provided to the B<fts_open>()  function."
1007 msgstr ""
1008
1009 #. type: TP
1010 #: build/C/man3/fts.3:460
1011 #, no-wrap
1012 msgid "B<FTS_SEEDOT>"
1013 msgstr ""
1014
1015 #. type: Plain text
1016 #: build/C/man3/fts.3:473
1017 msgid ""
1018 "By default, unless they are specified as path arguments to B<fts_open>(), "
1019 "any files named \".\" or \"..\" encountered in the file hierarchy are "
1020 "ignored.  This option causes the fts routines to return I<FTSENT> structures "
1021 "for them."
1022 msgstr ""
1023
1024 #. type: TP
1025 #: build/C/man3/fts.3:473
1026 #, no-wrap
1027 msgid "B<FTS_XDEV>"
1028 msgstr ""
1029
1030 #.  .El
1031 #. type: Plain text
1032 #: build/C/man3/fts.3:479
1033 msgid ""
1034 "This option prevents fts from descending into directories that have a "
1035 "different device number than the file from which the descent began."
1036 msgstr ""
1037
1038 #. type: Plain text
1039 #: build/C/man3/fts.3:518
1040 msgid ""
1041 "The argument B<compar>()  specifies a user-defined function which may be "
1042 "used to order the traversal of the hierarchy.  It takes two pointers to "
1043 "pointers to I<FTSENT> structures as arguments and should return a negative "
1044 "value, zero, or a positive value to indicate if the file referenced by its "
1045 "first argument comes before, in any order with respect to, or after, the "
1046 "file referenced by its second argument.  The I<fts_accpath>, I<fts_path> and "
1047 "I<fts_pathlen> fields of the I<FTSENT> structures may I<never> be used in "
1048 "this comparison.  If the I<fts_info> field is set to B<FTS_NS> or "
1049 "B<FTS_NSOK>, the I<fts_statp> field may not either.  If the B<compar>()  "
1050 "argument is NULL, the directory traversal order is in the order listed in "
1051 "I<path_argv> for the root paths, and in the order listed in the directory "
1052 "for everything else."
1053 msgstr ""
1054
1055 #. type: SS
1056 #: build/C/man3/fts.3:518
1057 #, no-wrap
1058 msgid "fts_read()"
1059 msgstr ""
1060
1061 #. type: Plain text
1062 #: build/C/man3/fts.3:531
1063 msgid ""
1064 "The B<fts_read>()  function returns a pointer to an I<FTSENT> structure "
1065 "describing a file in the hierarchy.  Directories (that are readable and do "
1066 "not cause cycles) are visited at least twice, once in preorder and once in "
1067 "postorder.  All other files are visited at least once.  (Hard links between "
1068 "directories that do not cause cycles or symbolic links to symbolic links may "
1069 "cause files to be visited more than once, or directories more than twice.)"
1070 msgstr ""
1071
1072 #. type: Plain text
1073 #: build/C/man3/fts.3:552
1074 msgid ""
1075 "If all the members of the hierarchy have been returned, B<fts_read>()  "
1076 "returns NULL and sets the external variable I<errno> to 0.  If an error "
1077 "unrelated to a file in the hierarchy occurs, B<fts_read>()  returns NULL and "
1078 "sets I<errno> appropriately.  If an error related to a returned file occurs, "
1079 "a pointer to an I<FTSENT> structure is returned, and I<errno> may or may not "
1080 "have been set (see I<fts_info>)."
1081 msgstr ""
1082
1083 #. type: Plain text
1084 #: build/C/man3/fts.3:569
1085 msgid ""
1086 "The I<FTSENT> structures returned by B<fts_read>()  may be overwritten after "
1087 "a call to B<fts_close>()  on the same file hierarchy stream, or, after a "
1088 "call to B<fts_read>()  on the same file hierarchy stream unless they "
1089 "represent a file of type directory, in which case they will not be "
1090 "overwritten until after a call to B<fts_read>()  after the I<FTSENT> "
1091 "structure has been returned by the function B<fts_read>()  in postorder."
1092 msgstr ""
1093
1094 #. type: SS
1095 #: build/C/man3/fts.3:569
1096 #, no-wrap
1097 msgid "fts_children()"
1098 msgstr ""
1099
1100 #. type: Plain text
1101 #: build/C/man3/fts.3:587
1102 msgid ""
1103 "The B<fts_children>()  function returns a pointer to an I<FTSENT> structure "
1104 "describing the first entry in a NULL-terminated linked list of the files in "
1105 "the directory represented by the I<FTSENT> structure most recently returned "
1106 "by B<fts_read>().  The list is linked through the I<fts_link> field of the "
1107 "I<FTSENT> structure, and is ordered by the user-specified comparison "
1108 "function, if any.  Repeated calls to B<fts_children>()  will recreate this "
1109 "linked list."
1110 msgstr ""
1111
1112 #. type: Plain text
1113 #: build/C/man3/fts.3:615
1114 msgid ""
1115 "As a special case, if B<fts_read>()  has not yet been called for a "
1116 "hierarchy, B<fts_children>()  will return a pointer to the files in the "
1117 "logical directory specified to B<fts_open>(), that is, the arguments "
1118 "specified to B<fts_open>().  Otherwise, if the I<FTSENT> structure most "
1119 "recently returned by B<fts_read>()  is not a directory being visited in "
1120 "preorder, or the directory does not contain any files, B<fts_children>()  "
1121 "returns NULL and sets I<errno> to zero.  If an error occurs, "
1122 "B<fts_children>()  returns NULL and sets I<errno> appropriately."
1123 msgstr ""
1124
1125 #. type: Plain text
1126 #: build/C/man3/fts.3:626
1127 msgid ""
1128 "The I<FTSENT> structures returned by B<fts_children>()  may be overwritten "
1129 "after a call to B<fts_children>(), B<fts_close>()  or B<fts_read>()  on the "
1130 "same file hierarchy stream."
1131 msgstr ""
1132
1133 #.  .Bl -tag -width FTS_NAMEONLY
1134 #. type: Plain text
1135 #: build/C/man3/fts.3:630
1136 msgid "I<Option> may be set to the following value:"
1137 msgstr ""
1138
1139 #. type: TP
1140 #: build/C/man3/fts.3:630
1141 #, no-wrap
1142 msgid "B<FTS_NAMEONLY>"
1143 msgstr ""
1144
1145 #.  .El
1146 #. type: Plain text
1147 #: build/C/man3/fts.3:640
1148 msgid ""
1149 "Only the names of the files are needed.  The contents of all the fields in "
1150 "the returned linked list of structures are undefined with the exception of "
1151 "the I<fts_name> and I<fts_namelen> fields."
1152 msgstr ""
1153
1154 #. type: SS
1155 #: build/C/man3/fts.3:640
1156 #, no-wrap
1157 msgid "fts_set()"
1158 msgstr ""
1159
1160 #.  .Bl -tag -width FTS_PHYSICAL
1161 #. type: Plain text
1162 #: build/C/man3/fts.3:655
1163 msgid ""
1164 "The function B<fts_set>()  allows the user application to determine further "
1165 "processing for the file I<f> of the stream I<ftsp>.  The B<fts_set>()  "
1166 "function returns 0 on success, and -1 if an error occurs.  I<Option> must be "
1167 "set to one of the following values:"
1168 msgstr ""
1169
1170 #. type: TP
1171 #: build/C/man3/fts.3:655
1172 #, no-wrap
1173 msgid "B<FTS_AGAIN>"
1174 msgstr ""
1175
1176 #. type: Plain text
1177 #: build/C/man3/fts.3:673
1178 msgid ""
1179 "Re-visit the file; any file type may be revisited.  The next call to "
1180 "B<fts_read>()  will return the referenced file.  The I<fts_stat> and "
1181 "I<fts_info> fields of the structure will be reinitialized at that time, but "
1182 "no other fields will have been changed.  This option is meaningful only for "
1183 "the most recently returned file from B<fts_read>().  Normal use is for "
1184 "postorder directory visits, where it causes the directory to be revisited "
1185 "(in both preorder and postorder) as well as all of its descendants."
1186 msgstr ""
1187
1188 #. type: TP
1189 #: build/C/man3/fts.3:673
1190 #, no-wrap
1191 msgid "B<FTS_FOLLOW>"
1192 msgstr ""
1193
1194 #. type: Plain text
1195 #: build/C/man3/fts.3:701
1196 msgid ""
1197 "The referenced file must be a symbolic link.  If the referenced file is the "
1198 "one most recently returned by B<fts_read>(), the next call to B<fts_read>()  "
1199 "returns the file with the I<fts_info> and I<fts_statp> fields reinitialized "
1200 "to reflect the target of the symbolic link instead of the symbolic link "
1201 "itself.  If the file is one of those most recently returned by "
1202 "B<fts_children>(), the I<fts_info> and I<fts_statp> fields of the structure, "
1203 "when returned by B<fts_read>(), will reflect the target of the symbolic link "
1204 "instead of the symbolic link itself.  In either case, if the target of the "
1205 "symbolic link does not exist the fields of the returned structure will be "
1206 "unchanged and the I<fts_info> field will be set to B<FTS_SLNONE>."
1207 msgstr ""
1208
1209 #. type: Plain text
1210 #: build/C/man3/fts.3:705
1211 msgid ""
1212 "If the target of the link is a directory, the preorder return, followed by "
1213 "the return of all of its descendants, followed by a postorder return, is "
1214 "done."
1215 msgstr ""
1216
1217 #. type: TP
1218 #: build/C/man3/fts.3:705
1219 #, no-wrap
1220 msgid "B<FTS_SKIP>"
1221 msgstr ""
1222
1223 #.  .El
1224 #. type: Plain text
1225 #: build/C/man3/fts.3:713
1226 msgid ""
1227 "No descendants of this file are visited.  The file may be one of those most "
1228 "recently returned by either B<fts_children>()  or B<fts_read>()."
1229 msgstr ""
1230
1231 #. type: SS
1232 #: build/C/man3/fts.3:713
1233 #, no-wrap
1234 msgid "fts_close()"
1235 msgstr ""
1236
1237 #. type: Plain text
1238 #: build/C/man3/fts.3:726
1239 msgid ""
1240 "The B<fts_close>()  function closes a file hierarchy stream I<ftsp> and "
1241 "restores the current directory to the directory from which B<fts_open>()  "
1242 "was called to open I<ftsp>.  The B<fts_close>()  function returns 0 on "
1243 "success, and -1 if an error occurs."
1244 msgstr ""
1245
1246 #. type: SH
1247 #: build/C/man3/fts.3:726 build/C/man2/mount.2:286 build/C/man2/spu_create.2:168 build/C/man2/spu_run.2:149 build/C/man2/stat.2:305 build/C/man2/statfs.2:132 build/C/man3/statvfs.3:99 build/C/man2/sysfs.2:77 build/C/man2/umount.2:104 build/C/man2/ustat.2:75
1248 #, no-wrap
1249 msgid "ERRORS"
1250 msgstr ""
1251
1252 #. type: Plain text
1253 #: build/C/man3/fts.3:735
1254 msgid ""
1255 "The function B<fts_open>()  may fail and set I<errno> for any of the errors "
1256 "specified for B<open>(2)  and B<malloc>(3)."
1257 msgstr ""
1258
1259 #. type: Plain text
1260 #: build/C/man3/fts.3:744
1261 msgid ""
1262 "The function B<fts_close>()  may fail and set I<errno> for any of the errors "
1263 "specified for B<chdir>(2)  and B<close>(2)."
1264 msgstr ""
1265
1266 #. type: Plain text
1267 #: build/C/man3/fts.3:758
1268 msgid ""
1269 "The functions B<fts_read>()  and B<fts_children>()  may fail and set "
1270 "I<errno> for any of the errors specified for B<chdir>(2), B<malloc>(3), "
1271 "B<opendir>(3), B<readdir>(3)  and B<stat>(2)."
1272 msgstr ""
1273
1274 #. type: Plain text
1275 #: build/C/man3/fts.3:767
1276 msgid ""
1277 "In addition, B<fts_children>(), B<fts_open>()  and B<fts_set>()  may fail "
1278 "and set I<errno> as follows:"
1279 msgstr ""
1280
1281 #. type: TP
1282 #: build/C/man3/fts.3:767 build/C/man2/mount.2:322 build/C/man2/spu_create.2:182 build/C/man2/spu_run.2:170 build/C/man2/sysfs.2:82 build/C/man2/umount.2:125 build/C/man2/ustat.2:80
1283 #, no-wrap
1284 msgid "B<EINVAL>"
1285 msgstr ""
1286
1287 #. type: Plain text
1288 #: build/C/man3/fts.3:770
1289 msgid "The options were invalid."
1290 msgstr ""
1291
1292 #. type: SH
1293 #: build/C/man3/fts.3:770 build/C/man2/getxattr.2:132 build/C/man2/listxattr.2:144 build/C/man2/mount.2:380 build/C/man2/removexattr.2:99 build/C/man2/setxattr.2:142 build/C/man2/spu_create.2:242 build/C/man2/spu_run.2:184 build/C/man2/umount.2:150
1294 #, no-wrap
1295 msgid "VERSIONS"
1296 msgstr ""
1297
1298 #. type: Plain text
1299 #: build/C/man3/fts.3:772
1300 msgid "These functions are available in Linux since glibc2."
1301 msgstr ""
1302
1303 #. type: SH
1304 #: build/C/man3/fts.3:772 build/C/man3/ftw.3:319 build/C/man3/getfsent.3:109 build/C/man3/getmntent.3:175 build/C/man2/getxattr.2:135 build/C/man2/listxattr.2:147 build/C/man2/mount.2:391 build/C/man2/removexattr.2:102 build/C/man2/setxattr.2:145 build/C/man2/spu_create.2:246 build/C/man2/spu_run.2:188 build/C/man2/stat.2:355 build/C/man2/statfs.2:188 build/C/man3/statvfs.3:155 build/C/man2/sysfs.2:90 build/C/man2/umount.2:156 build/C/man2/ustat.2:90
1305 #, no-wrap
1306 msgid "CONFORMING TO"
1307 msgstr ""
1308
1309 #.  The following statement is years old, and seems no closer to
1310 #.  being true -- mtk
1311 #.  The
1312 #.  .I fts
1313 #.  utility is expected to be included in a future
1314 #.  POSIX.1
1315 #.  revision.
1316 #. type: Plain text
1317 #: build/C/man3/fts.3:781
1318 msgid "4.4BSD."
1319 msgstr ""
1320
1321 #. type: Plain text
1322 #: build/C/man3/fts.3:787
1323 msgid "B<find>(1), B<chdir>(2), B<stat>(2), B<ftw>(3), B<qsort>(3)"
1324 msgstr ""
1325
1326 #. type: TH
1327 #: build/C/man3/ftw.3:34
1328 #, no-wrap
1329 msgid "FTW"
1330 msgstr ""
1331
1332 #. type: TH
1333 #: build/C/man3/ftw.3:34
1334 #, no-wrap
1335 msgid "2010-09-20"
1336 msgstr ""
1337
1338 #. type: Plain text
1339 #: build/C/man3/ftw.3:37
1340 msgid "ftw, nftw - file tree walk"
1341 msgstr ""
1342
1343 #. type: Plain text
1344 #: build/C/man3/ftw.3:40
1345 #, no-wrap
1346 msgid "B<#include E<lt>ftw.hE<gt>>\n"
1347 msgstr ""
1348
1349 #. type: Plain text
1350 #: build/C/man3/ftw.3:45
1351 #, no-wrap
1352 msgid ""
1353 "B<int ftw(const char *>I<dirpath>B<,>\n"
1354 "B<        int (*>I<fn>B<) (const char *>I<fpath>B<, const struct stat "
1355 "*>I<sb>B<,>\n"
1356 "B<                   int >I<typeflag>B<),>\n"
1357 "B<        int >I<nopenfd>B<);>\n"
1358 msgstr ""
1359
1360 #. type: Plain text
1361 #: build/C/man3/ftw.3:48
1362 #, no-wrap
1363 msgid ""
1364 "B<#define _XOPEN_SOURCE 500>   /* See feature_test_macros(7) */\n"
1365 "B<#include E<lt>ftw.hE<gt>>\n"
1366 msgstr ""
1367
1368 #. type: Plain text
1369 #: build/C/man3/ftw.3:53
1370 #, no-wrap
1371 msgid ""
1372 "B<int nftw(const char *>I<dirpath>B<,>\n"
1373 "B<        int (*>I<fn>B<) (const char *>I<fpath>B<, const struct stat "
1374 "*>I<sb>B<,>\n"
1375 "B<                   int >I<typeflag>B<, struct FTW *>I<ftwbuf>B<),>\n"
1376 "B<        int >I<nopenfd>B<, int >I<flags>B<);>\n"
1377 msgstr ""
1378
1379 #. type: Plain text
1380 #: build/C/man3/ftw.3:61
1381 msgid ""
1382 "B<ftw>()  walks through the directory tree that is located under the "
1383 "directory I<dirpath>, and calls I<fn>() once for each entry in the tree.  By "
1384 "default, directories are handled before the files and subdirectories they "
1385 "contain (preorder traversal)."
1386 msgstr ""
1387
1388 #. type: Plain text
1389 #: build/C/man3/ftw.3:74
1390 msgid ""
1391 "To avoid using up all of the calling process's file descriptors, I<nopenfd> "
1392 "specifies the maximum number of directories that B<ftw>()  will hold open "
1393 "simultaneously.  When the search depth exceeds this, B<ftw>()  will become "
1394 "slower because directories have to be closed and reopened.  B<ftw>()  uses "
1395 "at most one file descriptor for each level in the directory tree."
1396 msgstr ""
1397
1398 #. type: Plain text
1399 #: build/C/man3/ftw.3:103
1400 msgid ""
1401 "For each entry found in the tree, B<ftw>()  calls I<fn>() with three "
1402 "arguments: I<fpath>, I<sb>, and I<typeflag>.  I<fpath> is the pathname of "
1403 "the entry, and is expressed either as a pathname relative to the calling "
1404 "process's current working directory at the time of the call to B<ftw>(), if "
1405 "I<dirpath> was expressed as a relative pathname, or as an absolute pathname, "
1406 "if I<dirpath> was expressed as an absolute pathname.  I<sb> is a pointer to "
1407 "the I<stat> structure returned by a call to B<stat>(2)  for I<fpath>.  "
1408 "I<typeflag> is an integer that has one of the following values:"
1409 msgstr ""
1410
1411 #. type: TP
1412 #: build/C/man3/ftw.3:103
1413 #, no-wrap
1414 msgid "B<FTW_F>"
1415 msgstr ""
1416
1417 #. type: Plain text
1418 #: build/C/man3/ftw.3:107
1419 msgid "I<fpath> is a regular file."
1420 msgstr ""
1421
1422 #. type: TP
1423 #: build/C/man3/ftw.3:107
1424 #, no-wrap
1425 msgid "B<FTW_D>"
1426 msgstr ""
1427
1428 #. type: Plain text
1429 #: build/C/man3/ftw.3:111
1430 msgid "I<fpath> is a directory."
1431 msgstr ""
1432
1433 #. type: TP
1434 #: build/C/man3/ftw.3:111
1435 #, no-wrap
1436 msgid "B<FTW_DNR>"
1437 msgstr ""
1438
1439 #. type: Plain text
1440 #: build/C/man3/ftw.3:115
1441 msgid "I<fpath> is a directory which can't be read."
1442 msgstr ""
1443
1444 #. type: TP
1445 #: build/C/man3/ftw.3:115
1446 #, no-wrap
1447 msgid "B<FTW_NS>"
1448 msgstr ""
1449
1450 #. type: Plain text
1451 #: build/C/man3/ftw.3:122
1452 msgid "The B<stat>(2)  call failed on I<fpath>, which is not a symbolic link."
1453 msgstr ""
1454
1455 #. type: Plain text
1456 #: build/C/man3/ftw.3:131
1457 msgid ""
1458 "If I<fpath> is a symbolic link and B<stat>(2)  failed, POSIX.1-2001 states "
1459 "that it is undefined whether B<FTW_NS> or B<FTW_SL> (see below)  is passed "
1460 "in I<typeflag>."
1461 msgstr ""
1462
1463 #. type: Plain text
1464 #: build/C/man3/ftw.3:142
1465 msgid ""
1466 "To stop the tree walk, I<fn>() returns a nonzero value; this value will "
1467 "become the return value of B<ftw>().  As long as I<fn>() returns 0, B<ftw>()  "
1468 "will continue either until it has traversed the entire tree, in which case "
1469 "it will return zero, or until it encounters an error (such as a B<malloc>(3)  "
1470 "failure), in which case it will return -1."
1471 msgstr ""
1472
1473 #. type: Plain text
1474 #: build/C/man3/ftw.3:152
1475 msgid ""
1476 "Because B<ftw>()  uses dynamic data structures, the only safe way to exit "
1477 "out of a tree walk is to return a nonzero value from I<fn>().  To allow a "
1478 "signal to terminate the walk without causing a memory leak, have the handler "
1479 "set a global flag that is checked by I<fn>().  I<Don't> use B<longjmp>(3)  "
1480 "unless the program is going to terminate."
1481 msgstr ""
1482
1483 #. type: SS
1484 #: build/C/man3/ftw.3:152
1485 #, no-wrap
1486 msgid "nftw()"
1487 msgstr ""
1488
1489 #. type: Plain text
1490 #: build/C/man3/ftw.3:159
1491 msgid ""
1492 "The function B<nftw>()  is the same as B<ftw>(), except that it has one "
1493 "additional argument, I<flags>, and calls I<fn>() with one more argument, "
1494 "I<ftwbuf>."
1495 msgstr ""
1496
1497 #. type: Plain text
1498 #: build/C/man3/ftw.3:162
1499 msgid ""
1500 "This I<flags> argument is formed by ORing zero or more of the following "
1501 "flags:"
1502 msgstr ""
1503
1504 #. type: TP
1505 #: build/C/man3/ftw.3:162
1506 #, no-wrap
1507 msgid "B<FTW_ACTIONRETVAL> (since glibc 2.3.3)"
1508 msgstr ""
1509
1510 #. type: Plain text
1511 #: build/C/man3/ftw.3:171
1512 msgid ""
1513 "If this glibc-specific flag is set, then B<nftw>()  handles the return value "
1514 "from I<fn>()  differently.  I<fn>()  should return one of the following "
1515 "values:"
1516 msgstr ""
1517
1518 #. type: TP
1519 #: build/C/man3/ftw.3:172
1520 #, no-wrap
1521 msgid "B<FTW_CONTINUE>"
1522 msgstr ""
1523
1524 #. type: Plain text
1525 #: build/C/man3/ftw.3:177
1526 msgid "Instructs B<nftw>()  to continue normally."
1527 msgstr ""
1528
1529 #. type: TP
1530 #: build/C/man3/ftw.3:177
1531 #, no-wrap
1532 msgid "B<FTW_SKIP_SIBLINGS>"
1533 msgstr ""
1534
1535 #.  If \fBFTW_DEPTH\fP
1536 #.  is set, the entry's parent directory is processed next (with
1537 #.  \fIflag\fP set to \fBFTW_DP\fP).
1538 #. type: Plain text
1539 #: build/C/man3/ftw.3:185
1540 msgid ""
1541 "If I<fn>() returns this value, then siblings of the current entry will be "
1542 "skipped, and processing continues in the parent."
1543 msgstr ""
1544
1545 #. type: TP
1546 #: build/C/man3/ftw.3:185
1547 #, no-wrap
1548 msgid "B<FTW_SKIP_SUBTREE>"
1549 msgstr ""
1550
1551 #. type: Plain text
1552 #: build/C/man3/ftw.3:193
1553 msgid ""
1554 "If I<fn>() is called with an entry that is a directory (I<typeflag> is "
1555 "B<FTW_D>), this return value will prevent objects within that directory from "
1556 "being passed as arguments to I<fn>().  B<nftw>()  continues processing with "
1557 "the next sibling of the directory."
1558 msgstr ""
1559
1560 #. type: TP
1561 #: build/C/man3/ftw.3:193
1562 #, no-wrap
1563 msgid "B<FTW_STOP>"
1564 msgstr ""
1565
1566 #. type: Plain text
1567 #: build/C/man3/ftw.3:199
1568 msgid "Causes B<nftw>()  to return immediately with the return value B<FTW_STOP>."
1569 msgstr ""
1570
1571 #. type: Plain text
1572 #: build/C/man3/ftw.3:202
1573 msgid ""
1574 "Other return values could be associated with new actions in the future; "
1575 "I<fn>() should not return values other than those listed above."
1576 msgstr ""
1577
1578 #. type: Plain text
1579 #: build/C/man3/ftw.3:211
1580 msgid ""
1581 "The feature test macro B<_GNU_SOURCE> must be defined (before including "
1582 "I<any> header files)  in order to obtain the definition of "
1583 "B<FTW_ACTIONRETVAL> from I<E<lt>ftw.hE<gt>>."
1584 msgstr ""
1585
1586 #. type: TP
1587 #: build/C/man3/ftw.3:212
1588 #, no-wrap
1589 msgid "B<FTW_CHDIR>"
1590 msgstr ""
1591
1592 #. type: Plain text
1593 #: build/C/man3/ftw.3:219
1594 msgid ""
1595 "If set, do a B<chdir>(2)  to each directory before handling its contents.  "
1596 "This is useful if the program needs to perform some action in the directory "
1597 "in which I<fpath> resides."
1598 msgstr ""
1599
1600 #. type: TP
1601 #: build/C/man3/ftw.3:219
1602 #, no-wrap
1603 msgid "B<FTW_DEPTH>"
1604 msgstr ""
1605
1606 #. type: Plain text
1607 #: build/C/man3/ftw.3:225
1608 msgid ""
1609 "If set, do a post-order traversal, that is, call I<fn>() for the directory "
1610 "itself I<after> handling the contents of the directory and its "
1611 "subdirectories.  (By default, each directory is handled I<before> its "
1612 "contents.)"
1613 msgstr ""
1614
1615 #. type: TP
1616 #: build/C/man3/ftw.3:225
1617 #, no-wrap
1618 msgid "B<FTW_MOUNT>"
1619 msgstr ""
1620
1621 #. type: Plain text
1622 #: build/C/man3/ftw.3:229
1623 msgid "If set, stay within the same file system (i.e., do not cross mount points)."
1624 msgstr ""
1625
1626 #. type: TP
1627 #: build/C/man3/ftw.3:229
1628 #, no-wrap
1629 msgid "B<FTW_PHYS>"
1630 msgstr ""
1631
1632 #. type: Plain text
1633 #: build/C/man3/ftw.3:234
1634 msgid ""
1635 "If set, do not follow symbolic links.  (This is what you want.)  If not set, "
1636 "symbolic links are followed, but no file is reported twice."
1637 msgstr ""
1638
1639 #. type: Plain text
1640 #: build/C/man3/ftw.3:239
1641 msgid ""
1642 "If B<FTW_PHYS> is not set, but B<FTW_DEPTH> is set, then the function "
1643 "I<fn>()  is never called for a directory that would be a descendant of "
1644 "itself."
1645 msgstr ""
1646
1647 #. type: Plain text
1648 #: build/C/man3/ftw.3:254
1649 msgid ""
1650 "For each entry in the directory tree, B<nftw>()  calls I<fn>()  with four "
1651 "arguments.  I<fpath> and I<sb> are as for B<ftw>().  I<typeflag> may receive "
1652 "any of the same values as with B<ftw>(), or any of the following values:"
1653 msgstr ""
1654
1655 #. type: TP
1656 #: build/C/man3/ftw.3:254
1657 #, no-wrap
1658 msgid "B<FTW_DP>"
1659 msgstr ""
1660
1661 #. type: Plain text
1662 #: build/C/man3/ftw.3:260
1663 msgid ""
1664 "I<fpath> is a directory, and B<FTW_DEPTH> was specified in I<flags>.  All of "
1665 "the files and subdirectories within I<fpath> have been processed."
1666 msgstr ""
1667
1668 #. type: TP
1669 #: build/C/man3/ftw.3:260
1670 #, no-wrap
1671 msgid "B<FTW_SL>"
1672 msgstr ""
1673
1674 #.  To obtain the definition of this constant from
1675 #.  .IR <ftw.h> ,
1676 #.  either
1677 #.  .B _BSD_SOURCE
1678 #.  must be defined, or
1679 #.  .BR _XOPEN_SOURCE
1680 #.  must be defined with a value of 500 or more.
1681 #. type: Plain text
1682 #: build/C/man3/ftw.3:271
1683 msgid "I<fpath> is a symbolic link, and B<FTW_PHYS> was set in I<flags>."
1684 msgstr ""
1685
1686 #. type: TP
1687 #: build/C/man3/ftw.3:271
1688 #, no-wrap
1689 msgid "B<FTW_SLN>"
1690 msgstr ""
1691
1692 #. type: Plain text
1693 #: build/C/man3/ftw.3:276
1694 msgid ""
1695 "I<fpath> is a symbolic link pointing to a nonexistent file.  (This occurs "
1696 "only if B<FTW_PHYS> is not set.)"
1697 msgstr ""
1698
1699 #. type: Plain text
1700 #: build/C/man3/ftw.3:282
1701 msgid ""
1702 "The fourth argument that B<nftw>()  supplies when calling I<fn>()  is a "
1703 "structure of type I<FTW>:"
1704 msgstr ""
1705
1706 #. type: Plain text
1707 #: build/C/man3/ftw.3:289
1708 #, no-wrap
1709 msgid ""
1710 "struct FTW {\n"
1711 "    int base;\n"
1712 "    int level;\n"
1713 "};\n"
1714 msgstr ""
1715
1716 #. type: Plain text
1717 #: build/C/man3/ftw.3:302
1718 msgid ""
1719 "I<base> is the offset of the filename (i.e., basename component)  in the "
1720 "pathname given in I<fpath>.  I<level> is the depth of I<fpath> in the "
1721 "directory tree, relative to the root of the tree (I<dirpath>, which has "
1722 "depth 0)."
1723 msgstr ""
1724
1725 #. type: SH
1726 #: build/C/man3/ftw.3:302 build/C/man3/getfsent.3:95 build/C/man3/getmntent.3:148 build/C/man2/getxattr.2:102 build/C/man2/listxattr.2:120 build/C/man2/mount.2:281 build/C/man2/removexattr.2:80 build/C/man2/setxattr.2:107 build/C/man2/spu_create.2:161 build/C/man2/spu_run.2:98 build/C/man2/stat.2:300 build/C/man2/statfs.2:127 build/C/man3/statvfs.3:94 build/C/man2/sysfs.2:65 build/C/man2/umount.2:99 build/C/man2/ustat.2:66
1727 #, no-wrap
1728 msgid "RETURN VALUE"
1729 msgstr ""
1730
1731 #. type: Plain text
1732 #: build/C/man3/ftw.3:304
1733 msgid "These functions return 0 on success, and -1 if an error occurs."
1734 msgstr ""
1735
1736 #. type: Plain text
1737 #: build/C/man3/ftw.3:311
1738 msgid ""
1739 "If I<fn>() returns nonzero, then the tree walk is terminated and the value "
1740 "returned by I<fn>()  is returned as the result of B<ftw>()  or B<nftw>()."
1741 msgstr ""
1742
1743 #. type: Plain text
1744 #: build/C/man3/ftw.3:319
1745 msgid ""
1746 "If B<nftw>()  is called with the B<FTW_ACTIONRETVAL> flag, then the only "
1747 "nonzero value that should be used by I<fn>()  to terminate the tree walk is "
1748 "B<FTW_STOP>, and that value is returned as the result of B<nftw>()."
1749 msgstr ""
1750
1751 #. type: Plain text
1752 #: build/C/man3/ftw.3:324
1753 msgid "POSIX.1-2001, SVr4, SUSv1.  POSIX.1-2008 marks B<ftw>()  as obsolete."
1754 msgstr ""
1755
1756 #. type: SH
1757 #: build/C/man3/ftw.3:324 build/C/man3/getfsent.3:119 build/C/man3/getmntent.3:181 build/C/man2/mount.2:394 build/C/man2/spu_create.2:250 build/C/man2/spu_run.2:192 build/C/man2/stat.2:493 build/C/man2/statfs.2:194 build/C/man3/statvfs.3:157 build/C/man2/sysfs.2:92 build/C/man2/umount.2:159 build/C/man2/ustat.2:94
1758 #, no-wrap
1759 msgid "NOTES"
1760 msgstr ""
1761
1762 #. type: Plain text
1763 #: build/C/man3/ftw.3:328
1764 msgid ""
1765 "POSIX.1-2001 note that the results are unspecified if I<fn> does not "
1766 "preserve the current working directory."
1767 msgstr ""
1768
1769 #. type: Plain text
1770 #: build/C/man3/ftw.3:334
1771 msgid ""
1772 "The function B<nftw>()  and the use of B<FTW_SL> with B<ftw>()  were "
1773 "introduced in SUSv1."
1774 msgstr ""
1775
1776 #. type: Plain text
1777 #: build/C/man3/ftw.3:344
1778 msgid ""
1779 "On some systems B<ftw>()  will never use B<FTW_SL>, on other systems "
1780 "B<FTW_SL> occurs only for symbolic links that do not point to an existing "
1781 "file, and again on other systems B<ftw>()  will use B<FTW_SL> for each "
1782 "symbolic link.  For predictable control, use B<nftw>()."
1783 msgstr ""
1784
1785 #. type: Plain text
1786 #: build/C/man3/ftw.3:348
1787 msgid ""
1788 "Under Linux, libc4 and libc5 and glibc 2.0.6 will use B<FTW_F> for all "
1789 "objects (files, symbolic links, FIFOs, etc.)  that can be stat'ed but are "
1790 "not a directory."
1791 msgstr ""
1792
1793 #. type: Plain text
1794 #: build/C/man3/ftw.3:352
1795 msgid "The function B<nftw>()  is available since glibc 2.1."
1796 msgstr ""
1797
1798 #. type: Plain text
1799 #: build/C/man3/ftw.3:354
1800 msgid "B<FTW_ACTIONRETVAL> is glibc-specific."
1801 msgstr ""
1802
1803 #. type: SH
1804 #: build/C/man3/ftw.3:354 build/C/man2/spu_create.2:260 build/C/man2/spu_run.2:202 build/C/man7/spufs.7:758 build/C/man2/stat.2:584
1805 #, no-wrap
1806 msgid "EXAMPLE"
1807 msgstr ""
1808
1809 #. type: Plain text
1810 #: build/C/man3/ftw.3:363
1811 msgid ""
1812 "The following program traverses the directory tree under the path named in "
1813 "its first command-line argument, or under the current directory if no "
1814 "argument is supplied.  It displays various information about each file.  The "
1815 "second command-line argument can be used to specify characters that control "
1816 "the value assigned to the I<flags> argument when calling B<nftw>()."
1817 msgstr ""
1818
1819 #. type: Plain text
1820 #: build/C/man3/ftw.3:371
1821 #, no-wrap
1822 msgid ""
1823 "#define _XOPEN_SOURCE 500\n"
1824 "#include E<lt>ftw.hE<gt>\n"
1825 "#include E<lt>stdio.hE<gt>\n"
1826 "#include E<lt>stdlib.hE<gt>\n"
1827 "#include E<lt>string.hE<gt>\n"
1828 "#include E<lt>stdint.hE<gt>\n"
1829 msgstr ""
1830
1831 #. type: Plain text
1832 #: build/C/man3/ftw.3:385
1833 #, no-wrap
1834 msgid ""
1835 "static int\n"
1836 "display_info(const char *fpath, const struct stat *sb,\n"
1837 "             int tflag, struct FTW *ftwbuf)\n"
1838 "{\n"
1839 "    printf(\"%-3s %2d %7jd   %-40s %d %s\\en\",\n"
1840 "        (tflag == FTW_D) ?   \"d\"   : (tflag == FTW_DNR) ? \"dnr\" :\n"
1841 "        (tflag == FTW_DP) ?  \"dp\"  : (tflag == FTW_F) ?   \"f\" :\n"
1842 "        (tflag == FTW_NS) ?  \"ns\"  : (tflag == FTW_SL) ?  \"sl\" :\n"
1843 "        (tflag == FTW_SLN) ? \"sln\" : \"???\",\n"
1844 "        ftwbuf-E<gt>level, (intmax_t) sb-E<gt>st_size,\n"
1845 "        fpath, ftwbuf-E<gt>base, fpath + ftwbuf-E<gt>base);\n"
1846 "    return 0;           /* To tell nftw() to continue */\n"
1847 "}\n"
1848 msgstr ""
1849
1850 #. type: Plain text
1851 #: build/C/man3/ftw.3:390
1852 #, no-wrap
1853 msgid ""
1854 "int\n"
1855 "main(int argc, char *argv[])\n"
1856 "{\n"
1857 "    int flags = 0;\n"
1858 msgstr ""
1859
1860 #. type: Plain text
1861 #: build/C/man3/ftw.3:395
1862 #, no-wrap
1863 msgid ""
1864 "    if (argc E<gt> 2 && strchr(argv[2], \\(aqd\\(aq) != NULL)\n"
1865 "        flags |= FTW_DEPTH;\n"
1866 "    if (argc E<gt> 2 && strchr(argv[2], \\(aqp\\(aq) != NULL)\n"
1867 "        flags |= FTW_PHYS;\n"
1868 msgstr ""
1869
1870 #. type: Plain text
1871 #: build/C/man3/ftw.3:403
1872 #, no-wrap
1873 msgid ""
1874 "    if (nftw((argc E<lt> 2) ? \".\" : argv[1], display_info, 20, flags)\n"
1875 "            == -1) {\n"
1876 "        perror(\"nftw\");\n"
1877 "        exit(EXIT_FAILURE);\n"
1878 "    }\n"
1879 "    exit(EXIT_SUCCESS);\n"
1880 "}\n"
1881 msgstr ""
1882
1883 #. type: Plain text
1884 #: build/C/man3/ftw.3:408
1885 msgid "B<stat>(2), B<fts>(3), B<readdir>(3)"
1886 msgstr ""
1887
1888 #. type: TH
1889 #: build/C/man3/getfsent.3:25
1890 #, no-wrap
1891 msgid "GETFSENT"
1892 msgstr ""
1893
1894 #. type: TH
1895 #: build/C/man3/getfsent.3:25
1896 #, no-wrap
1897 msgid "2002-02-28"
1898 msgstr ""
1899
1900 #. type: TH
1901 #: build/C/man3/getfsent.3:25
1902 #, no-wrap
1903 msgid "GNU"
1904 msgstr ""
1905
1906 #. type: Plain text
1907 #: build/C/man3/getfsent.3:28
1908 msgid "getfsent, getfsspec, getfsfile, setfsent, endfsent - handle fstab entries"
1909 msgstr ""
1910
1911 #. type: Plain text
1912 #: build/C/man3/getfsent.3:30
1913 msgid "B<#include E<lt>fstab.hE<gt>>"
1914 msgstr ""
1915
1916 #. type: Plain text
1917 #: build/C/man3/getfsent.3:32
1918 msgid "B<void endfsent(void);>"
1919 msgstr ""
1920
1921 #. type: Plain text
1922 #: build/C/man3/getfsent.3:34
1923 msgid "B<struct fstab *getfsent(void);>"
1924 msgstr ""
1925
1926 #. type: Plain text
1927 #: build/C/man3/getfsent.3:36
1928 msgid "B<struct fstab *getfsfile(const char *>I<mount_point>B<);>"
1929 msgstr ""
1930
1931 #. type: Plain text
1932 #: build/C/man3/getfsent.3:38
1933 msgid "B<struct fstab *getfsspec(const char *>I<special_file>B<);>"
1934 msgstr ""
1935
1936 #. type: Plain text
1937 #: build/C/man3/getfsent.3:40
1938 msgid "B<int setfsent(void);>"
1939 msgstr ""
1940
1941 #. type: Plain text
1942 #: build/C/man3/getfsent.3:44
1943 msgid ""
1944 "These functions read from the file I</etc/fstab>.  The I<struct fstab> is "
1945 "defined by:"
1946 msgstr ""
1947
1948 #. type: Plain text
1949 #: build/C/man3/getfsent.3:56
1950 #, no-wrap
1951 msgid ""
1952 "struct fstab {\n"
1953 "    char       *fs_spec;       /* block device name */\n"
1954 "    char       *fs_file;       /* mount point */\n"
1955 "    char       *fs_vfstype;    /* file-sysem type */\n"
1956 "    char       *fs_mntops;     /* mount options */\n"
1957 "    const char *fs_type;       /* rw/rq/ro/sw/xx option */\n"
1958 "    int         fs_freq;       /* dump frequency, in days */\n"
1959 "    int         fs_passno;     /* pass number on parallel dump */\n"
1960 "};\n"
1961 msgstr ""
1962
1963 #. type: Plain text
1964 #: build/C/man3/getfsent.3:64
1965 msgid ""
1966 "Here the field I<fs_type> contains (on a *BSD system)  one of the five "
1967 "strings \"rw\", \"rq\", \"ro\", \"sw\", \"xx\" (read-write, read-write with "
1968 "quota, read-only, swap, ignore)."
1969 msgstr ""
1970
1971 #. type: Plain text
1972 #: build/C/man3/getfsent.3:68
1973 msgid ""
1974 "The function B<setfsent>()  opens the file when required and positions it at "
1975 "the first line."
1976 msgstr ""
1977
1978 #. type: Plain text
1979 #: build/C/man3/getfsent.3:73
1980 msgid ""
1981 "The function B<getfsent>()  parses the next line from the file.  (After "
1982 "opening it when required.)"
1983 msgstr ""
1984
1985 #. type: Plain text
1986 #: build/C/man3/getfsent.3:77
1987 msgid "The function B<endfsent>()  closes the file when required."
1988 msgstr ""
1989
1990 #. type: Plain text
1991 #: build/C/man3/getfsent.3:86
1992 msgid ""
1993 "The function B<getfsspec>()  searches the file from the start and returns "
1994 "the first entry found for which the I<fs_spec> field matches the "
1995 "I<special_file> argument."
1996 msgstr ""
1997
1998 #. type: Plain text
1999 #: build/C/man3/getfsent.3:95
2000 msgid ""
2001 "The function B<getfsfile>()  searches the file from the start and returns "
2002 "the first entry found for which the I<fs_file> field matches the "
2003 "I<mount_point> argument."
2004 msgstr ""
2005
2006 #.  .SH HISTORY
2007 #.  The
2008 #.  .BR getfsent ()
2009 #.  function appeared in 4.0BSD; the other four functions appeared in 4.3BSD.
2010 #. type: Plain text
2011 #: build/C/man3/getfsent.3:109
2012 msgid ""
2013 "Upon success, the functions B<getfsent>(), B<getfsfile>(), and "
2014 "B<getfsspec>()  return a pointer to a I<struct fstab>, while B<setfsent>()  "
2015 "returns 1.  Upon failure or end-of-file, these functions return NULL and 0, "
2016 "respectively."
2017 msgstr ""
2018
2019 #. type: Plain text
2020 #: build/C/man3/getfsent.3:119
2021 msgid ""
2022 "These functions are not in POSIX.1-2001.  Several operating systems have "
2023 "them, e.g., *BSD, SunOS, Digital UNIX, AIX (which also has a "
2024 "B<getfstype>()).  HP-UX has functions of the same names, that however use a "
2025 "I<struct checklist> instead of a I<struct fstab>, and calls these functions "
2026 "obsolete, superseded by B<getmntent>(3)."
2027 msgstr ""
2028
2029 #. type: Plain text
2030 #: build/C/man3/getfsent.3:121
2031 msgid "These functions are not thread-safe."
2032 msgstr ""
2033
2034 #. type: Plain text
2035 #: build/C/man3/getfsent.3:131
2036 msgid ""
2037 "Since Linux allows mounting a block special device in several places, and "
2038 "since several devices can have the same mount point, where the last device "
2039 "with a given mount point is the interesting one, while B<getfsfile>()  and "
2040 "B<getfsspec>()  only return the first occurrence, these two functions are "
2041 "not suitable for use under Linux."
2042 msgstr ""
2043
2044 #. type: Plain text
2045 #: build/C/man3/getfsent.3:134
2046 msgid "B<getmntent>(3), B<fstab>(5)"
2047 msgstr ""
2048
2049 #. type: TH
2050 #: build/C/man3/getmntent.3:30
2051 #, no-wrap
2052 msgid "GETMNTENT"
2053 msgstr ""
2054
2055 #. type: TH
2056 #: build/C/man3/getmntent.3:30
2057 #, no-wrap
2058 msgid "2009-09-15"
2059 msgstr ""
2060
2061 #. type: Plain text
2062 #: build/C/man3/getmntent.3:34
2063 msgid ""
2064 "getmntent, setmntent, addmntent, endmntent, hasmntopt, getmntent_r - get "
2065 "file system descriptor file entry"
2066 msgstr ""
2067
2068 #. type: Plain text
2069 #: build/C/man3/getmntent.3:38
2070 #, no-wrap
2071 msgid ""
2072 "B<#include E<lt>stdio.hE<gt>>\n"
2073 "B<#include E<lt>mntent.hE<gt>>\n"
2074 msgstr ""
2075
2076 #. type: Plain text
2077 #: build/C/man3/getmntent.3:40
2078 #, no-wrap
2079 msgid "B<FILE *setmntent(const char *>I<filename>B<, const char *>I<type>B<);>\n"
2080 msgstr ""
2081
2082 #. type: Plain text
2083 #: build/C/man3/getmntent.3:42
2084 #, no-wrap
2085 msgid "B<struct mntent *getmntent(FILE *>I<fp>B<);>\n"
2086 msgstr ""
2087
2088 #. type: Plain text
2089 #: build/C/man3/getmntent.3:44
2090 #, no-wrap
2091 msgid "B<int addmntent(FILE *>I<fp>B<, const struct mntent *>I<mnt>B<);>\n"
2092 msgstr ""
2093
2094 #. type: Plain text
2095 #: build/C/man3/getmntent.3:46
2096 #, no-wrap
2097 msgid "B<int endmntent(FILE *>I<fp>B<);>\n"
2098 msgstr ""
2099
2100 #. type: Plain text
2101 #: build/C/man3/getmntent.3:48
2102 #, no-wrap
2103 msgid "B<char *hasmntopt(const struct mntent *>I<mnt>B<, const char *>I<opt>B<);>\n"
2104 msgstr ""
2105
2106 #. type: Plain text
2107 #: build/C/man3/getmntent.3:51
2108 #, no-wrap
2109 msgid ""
2110 "/* GNU extension */\n"
2111 "B<#include E<lt>mntent.hE<gt>>\n"
2112 msgstr ""
2113
2114 #. type: Plain text
2115 #: build/C/man3/getmntent.3:54
2116 #, no-wrap
2117 msgid ""
2118 "B<struct mntent *getmntent_r(FILE *>I<fp>B<, struct mntent *>I<mntbuf>B<,>\n"
2119 "B<                           char *>I<buf>B<, int >I<buflen>B<);>\n"
2120 msgstr ""
2121
2122 #. type: Plain text
2123 #: build/C/man3/getmntent.3:59 build/C/man2/stat.2:59
2124 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
2125 msgstr ""
2126
2127 #. type: Plain text
2128 #: build/C/man3/getmntent.3:63
2129 msgid "B<getmntent_r>(): _BSD_SOURCE || _SVID_SOURCE"
2130 msgstr ""
2131
2132 #. type: Plain text
2133 #: build/C/man3/getmntent.3:67
2134 msgid ""
2135 "These routines are used to access the file system description file "
2136 "I</etc/fstab> and the mounted file system description file I</etc/mtab>."
2137 msgstr ""
2138
2139 #. type: Plain text
2140 #: build/C/man3/getmntent.3:76
2141 msgid ""
2142 "The B<setmntent>()  function opens the file system description file "
2143 "I<filename> and returns a file pointer which can be used by B<getmntent>().  "
2144 "The argument I<type> is the type of access required and can take the same "
2145 "values as the I<mode> argument of B<fopen>(3)."
2146 msgstr ""
2147
2148 #. type: Plain text
2149 #: build/C/man3/getmntent.3:86
2150 msgid ""
2151 "The B<getmntent>()  function reads the next line from the file system "
2152 "description file I<fp> and returns a pointer to a structure containing the "
2153 "broken out fields from a line in the file.  The pointer points to a static "
2154 "area of memory which is overwritten by subsequent calls to B<getmntent>()."
2155 msgstr ""
2156
2157 #. type: Plain text
2158 #: build/C/man3/getmntent.3:93
2159 msgid ""
2160 "The B<addmntent>()  function adds the I<mntent> structure I<mnt> to the end "
2161 "of the open file I<fp>."
2162 msgstr ""
2163
2164 #. type: Plain text
2165 #: build/C/man3/getmntent.3:98
2166 msgid "The B<endmntent>()  function closes the file system description file I<fp>."
2167 msgstr ""
2168
2169 #. type: Plain text
2170 #: build/C/man3/getmntent.3:108
2171 msgid ""
2172 "The B<hasmntopt>()  function scans the I<mnt_opts> field (see below)  of the "
2173 "I<mntent> structure I<mnt> for a substring that matches I<opt>.  See "
2174 "I<E<lt>mntent.hE<gt>> and B<mount>(8)  for valid mount options."
2175 msgstr ""
2176
2177 #. type: Plain text
2178 #: build/C/man3/getmntent.3:120
2179 msgid ""
2180 "The reentrant B<getmntent_r>()  function is similar to B<getmntent>(), but "
2181 "stores the I<struct mount> in the provided I<*mntbuf> and stores the strings "
2182 "pointed to by the entries in that struct in the provided array I<buf> of "
2183 "size I<buflen>."
2184 msgstr ""
2185
2186 #. type: Plain text
2187 #: build/C/man3/getmntent.3:122
2188 msgid "The I<mntent> structure is defined in I<E<lt>mntent.hE<gt>> as follows:"
2189 msgstr ""
2190
2191 #. type: Plain text
2192 #: build/C/man3/getmntent.3:133
2193 #, no-wrap
2194 msgid ""
2195 "struct mntent {\n"
2196 "    char *mnt_fsname;   /* name of mounted file system */\n"
2197 "    char *mnt_dir;      /* file system path prefix */\n"
2198 "    char *mnt_type;     /* mount type (see mntent.h) */\n"
2199 "    char *mnt_opts;     /* mount options (see mntent.h) */\n"
2200 "    int   mnt_freq;     /* dump frequency in days */\n"
2201 "    int   mnt_passno;   /* pass number on parallel fsck */\n"
2202 "};\n"
2203 msgstr ""
2204
2205 #. type: Plain text
2206 #: build/C/man3/getmntent.3:148
2207 msgid ""
2208 "Since fields in the mtab and fstab files are separated by whitespace, octal "
2209 "escapes are used to represent the four characters space (\\e040), tab "
2210 "(\\e011), newline (\\e012) and backslash (\\e134) in those files when they "
2211 "occur in one of the four strings in a I<mntent> structure.  The routines "
2212 "B<addmntent>()  and B<getmntent>()  will convert from string representation "
2213 "to escaped representation and back."
2214 msgstr ""
2215
2216 #. type: Plain text
2217 #: build/C/man3/getmntent.3:157
2218 msgid ""
2219 "The B<getmntent>()  and B<getmntent_r>()  functions return a pointer to the "
2220 "I<mntent> structure or NULL on failure."
2221 msgstr ""
2222
2223 #. type: Plain text
2224 #: build/C/man3/getmntent.3:161
2225 msgid "The B<addmntent>()  function returns 0 on success and 1 on failure."
2226 msgstr ""
2227
2228 #. type: Plain text
2229 #: build/C/man3/getmntent.3:165
2230 msgid "The B<endmntent>()  function always returns 1."
2231 msgstr ""
2232
2233 #. type: Plain text
2234 #: build/C/man3/getmntent.3:170
2235 msgid ""
2236 "The B<hasmntopt>()  function returns the address of the substring if a match "
2237 "is found and NULL otherwise."
2238 msgstr ""
2239
2240 #. type: SH
2241 #: build/C/man3/getmntent.3:170 build/C/man2/spu_create.2:236
2242 #, no-wrap
2243 msgid "FILES"
2244 msgstr ""
2245
2246 #. type: Plain text
2247 #: build/C/man3/getmntent.3:174
2248 #, no-wrap
2249 msgid ""
2250 "/etc/fstab          file system description file\n"
2251 "/etc/mtab           mounted file system description file\n"
2252 msgstr ""
2253
2254 #. type: Plain text
2255 #: build/C/man3/getmntent.3:181
2256 msgid ""
2257 "The nonreentrant functions are from SunOS 4.1.3.  A routine B<getmntent_r>()  "
2258 "was introduced in HP-UX 10, but it returns an int.  The prototype shown "
2259 "above is glibc-only."
2260 msgstr ""
2261
2262 #. type: Plain text
2263 #: build/C/man3/getmntent.3:193
2264 msgid ""
2265 "System V also has a B<getmntent>()  function but the calling sequence "
2266 "differs, and the returned structure is different.  Under System V "
2267 "I</etc/mnttab> is used.  4.4BSD and Digital UNIX have a routine "
2268 "B<getmntinfo>(), a wrapper around the system call B<getfsstat>()."
2269 msgstr ""
2270
2271 #. type: Plain text
2272 #: build/C/man3/getmntent.3:197
2273 msgid "B<fopen>(3), B<fstab>(5), B<mount>(8)"
2274 msgstr ""
2275
2276 #. type: TH
2277 #: build/C/man2/getxattr.2:27
2278 #, no-wrap
2279 msgid "GETXATTR"
2280 msgstr ""
2281
2282 #. type: TH
2283 #: build/C/man2/getxattr.2:27 build/C/man2/listxattr.2:27 build/C/man2/removexattr.2:27
2284 #, no-wrap
2285 msgid "2001-12-01"
2286 msgstr ""
2287
2288 #. type: Plain text
2289 #: build/C/man2/getxattr.2:30
2290 msgid "getxattr, lgetxattr, fgetxattr - retrieve an extended attribute value"
2291 msgstr ""
2292
2293 #. type: Plain text
2294 #: build/C/man2/getxattr.2:35 build/C/man2/listxattr.2:35 build/C/man2/removexattr.2:35 build/C/man2/setxattr.2:35
2295 #, no-wrap
2296 msgid ""
2297 "B<#include E<lt>sys/types.hE<gt>>\n"
2298 "B<#include E<lt>attr/xattr.hE<gt>>\n"
2299 msgstr ""
2300
2301 #. type: Plain text
2302 #: build/C/man2/getxattr.2:42
2303 #, no-wrap
2304 msgid ""
2305 "B<ssize_t getxattr(const char\\ *>I<path>B<, const char\\ *>I<name>B<,>\n"
2306 "B<                 void\\ *>I<value>B<, size_t >I<size>B<);>\n"
2307 "B<ssize_t lgetxattr(const char\\ *>I<path>B<, const char\\ *>I<name>B<,>\n"
2308 "B<                 void\\ *>I<value>B<, size_t >I<size>B<);>\n"
2309 "B<ssize_t fgetxattr(int >I<fd>B<, const char\\ *>I<name>B<,>\n"
2310 "B<                 void\\ *>I<value>B<, size_t >I<size>B<);>\n"
2311 msgstr ""
2312
2313 #. type: Plain text
2314 #: build/C/man2/getxattr.2:55 build/C/man2/setxattr.2:55
2315 msgid ""
2316 "Extended attributes are I<name>:I<value> pairs associated with inodes "
2317 "(files, directories, symbolic links, etc.).  They are extensions to the "
2318 "normal attributes which are associated with all inodes in the system (i.e., "
2319 "the B<stat>(2)  data).  A complete overview of extended attributes concepts "
2320 "can be found in B<attr>(5)."
2321 msgstr ""
2322
2323 #. type: Plain text
2324 #: build/C/man2/getxattr.2:67
2325 msgid ""
2326 "B<getxattr>()  retrieves the I<value> of the extended attribute identified "
2327 "by I<name> and associated with the given I<path> in the file system.  The "
2328 "length of the attribute I<value> is returned."
2329 msgstr ""
2330
2331 #. type: Plain text
2332 #: build/C/man2/getxattr.2:73
2333 msgid ""
2334 "B<lgetxattr>()  is identical to B<getxattr>(), except in the case of a "
2335 "symbolic link, where the link itself is interrogated, not the file that it "
2336 "refers to."
2337 msgstr ""
2338
2339 #. type: Plain text
2340 #: build/C/man2/getxattr.2:83
2341 msgid ""
2342 "B<fgetxattr>()  is identical to B<getxattr>(), only the open file referred "
2343 "to by I<fd> (as returned by B<open>(2))  is interrogated in place of "
2344 "I<path>."
2345 msgstr ""
2346
2347 #. type: Plain text
2348 #: build/C/man2/getxattr.2:91
2349 msgid ""
2350 "An extended attribute I<name> is a simple null-terminated string.  The name "
2351 "includes a namespace prefix; there may be several, disjoint namespaces "
2352 "associated with an individual inode.  The value of an extended attribute is "
2353 "a chunk of arbitrary textual or binary data of specified length."
2354 msgstr ""
2355
2356 #. type: Plain text
2357 #: build/C/man2/getxattr.2:98
2358 msgid ""
2359 "An empty buffer of I<size> zero can be passed into these calls to return the "
2360 "current size of the named extended attribute, which can be used to estimate "
2361 "the size of a buffer which is sufficiently large to hold the value "
2362 "associated with the extended attribute."
2363 msgstr ""
2364
2365 #. type: Plain text
2366 #: build/C/man2/getxattr.2:102
2367 msgid ""
2368 "The interface is designed to allow guessing of initial buffer sizes, and to "
2369 "enlarge buffers when the return value indicates that the buffer provided was "
2370 "too small."
2371 msgstr ""
2372
2373 #. type: Plain text
2374 #: build/C/man2/getxattr.2:108
2375 msgid ""
2376 "On success, a positive number is returned indicating the size of the "
2377 "extended attribute value.  On failure, -1 is returned and I<errno> is set "
2378 "appropriately."
2379 msgstr ""
2380
2381 #. type: Plain text
2382 #: build/C/man2/getxattr.2:114
2383 msgid ""
2384 "If the named attribute does not exist, or the process has no access to this "
2385 "attribute, I<errno> is set to B<ENOATTR>."
2386 msgstr ""
2387
2388 #. type: Plain text
2389 #: build/C/man2/getxattr.2:123
2390 msgid ""
2391 "If the I<size> of the I<value> buffer is too small to hold the result, "
2392 "I<errno> is set to B<ERANGE>."
2393 msgstr ""
2394
2395 #. type: Plain text
2396 #: build/C/man2/getxattr.2:128 build/C/man2/listxattr.2:140 build/C/man2/removexattr.2:95 build/C/man2/setxattr.2:138
2397 msgid ""
2398 "If extended attributes are not supported by the file system, or are "
2399 "disabled, I<errno> is set to B<ENOTSUP>."
2400 msgstr ""
2401
2402 #. type: Plain text
2403 #: build/C/man2/getxattr.2:132 build/C/man2/listxattr.2:144 build/C/man2/removexattr.2:99 build/C/man2/setxattr.2:142
2404 msgid ""
2405 "The errors documented for the B<stat>(2)  system call are also applicable "
2406 "here."
2407 msgstr ""
2408
2409 #. type: Plain text
2410 #: build/C/man2/getxattr.2:135 build/C/man2/listxattr.2:147 build/C/man2/removexattr.2:102 build/C/man2/setxattr.2:145
2411 msgid ""
2412 "These system calls have been available on Linux since kernel 2.4; glibc "
2413 "support is provided since version 2.3."
2414 msgstr ""
2415
2416 #.  .SH AUTHORS
2417 #.  Andreas Gruenbacher,
2418 #.  .RI < a.gruenbacher@computer.org >
2419 #.  and the SGI XFS development team,
2420 #.  .RI < linux-xfs@oss.sgi.com >.
2421 #.  Please send any bug reports or comments to these addresses.
2422 #. type: Plain text
2423 #: build/C/man2/getxattr.2:143 build/C/man2/listxattr.2:155 build/C/man2/removexattr.2:110 build/C/man2/setxattr.2:153
2424 msgid "These system calls are Linux-specific."
2425 msgstr ""
2426
2427 #. type: Plain text
2428 #: build/C/man2/getxattr.2:153
2429 msgid ""
2430 "B<getfattr>(1), B<setfattr>(1), B<listxattr>(2), B<open>(2), "
2431 "B<removexattr>(2), B<setxattr>(2), B<stat>(2), B<attr>(5), B<symlink>(7)"
2432 msgstr ""
2433
2434 #. type: TH
2435 #: build/C/man2/listxattr.2:27
2436 #, no-wrap
2437 msgid "LISTXATTR"
2438 msgstr ""
2439
2440 #. type: Plain text
2441 #: build/C/man2/listxattr.2:30
2442 msgid "listxattr, llistxattr, flistxattr - list extended attribute names"
2443 msgstr ""
2444
2445 #. type: Plain text
2446 #: build/C/man2/listxattr.2:41
2447 #, no-wrap
2448 msgid ""
2449 "B<ssize_t listxattr(const char\\ *>I<path>B<, char\\ *>I<list>B<, size_t "
2450 ">I<size>B<);>\n"
2451 "B<ssize_t llistxattr(const char\\ *>I<path>B<, char\\ *>I<list>B<, size_t "
2452 ">I<size>B<);>\n"
2453 "B<ssize_t flistxattr(int >I<fd>B<, char\\ *>I<list>B<, size_t "
2454 ">I<size>B<);>\n"
2455 msgstr ""
2456
2457 #. type: Plain text
2458 #: build/C/man2/listxattr.2:52
2459 msgid ""
2460 "Extended attributes are name:value pairs associated with inodes (files, "
2461 "directories, symbolic links, etc.).  They are extensions to the normal "
2462 "attributes which are associated with all inodes in the system (i.e., the "
2463 "B<stat>(2)  data).  A complete overview of extended attributes concepts can "
2464 "be found in B<attr>(5)."
2465 msgstr ""
2466
2467 #. type: Plain text
2468 #: build/C/man2/listxattr.2:65
2469 msgid ""
2470 "B<listxattr>()  retrieves the I<list> of extended attribute names associated "
2471 "with the given I<path> in the file system.  The list is the set of "
2472 "(null-terminated) names, one after the other.  Names of extended attributes "
2473 "to which the calling process does not have access may be omitted from the "
2474 "list.  The length of the attribute name I<list> is returned."
2475 msgstr ""
2476
2477 #. type: Plain text
2478 #: build/C/man2/listxattr.2:72
2479 msgid ""
2480 "B<llistxattr>()  is identical to B<listxattr>(), except in the case of a "
2481 "symbolic link, where the list of names of extended attributes associated "
2482 "with the link itself is retrieved, not the file that it refers to."
2483 msgstr ""
2484
2485 #. type: Plain text
2486 #: build/C/man2/listxattr.2:82
2487 msgid ""
2488 "B<flistxattr>()  is identical to B<listxattr>(), only the open file referred "
2489 "to by I<fd> (as returned by B<open>(2))  is interrogated in place of "
2490 "I<path>."
2491 msgstr ""
2492
2493 #. type: Plain text
2494 #: build/C/man2/listxattr.2:88
2495 msgid ""
2496 "A single extended attribute I<name> is a simple null-terminated string.  The "
2497 "name includes a namespace prefix; there may be several, disjoint namespaces "
2498 "associated with an individual inode."
2499 msgstr ""
2500
2501 #. type: Plain text
2502 #: build/C/man2/listxattr.2:94
2503 msgid ""
2504 "An empty buffer of I<size> zero can be passed into these calls to return the "
2505 "current size of the list of extended attribute names, which can be used to "
2506 "estimate the size of a buffer which is sufficiently large to hold the list "
2507 "of names."
2508 msgstr ""
2509
2510 #. type: SS
2511 #: build/C/man2/listxattr.2:94
2512 #, no-wrap
2513 msgid "Example"
2514 msgstr ""
2515
2516 #. type: Plain text
2517 #: build/C/man2/listxattr.2:99
2518 msgid ""
2519 "The I<list> of names is returned as an unordered array of null-terminated "
2520 "character strings (attribute names are separated by null bytes "
2521 "(\\(aq\\e0\\(aq)), like this:"
2522 msgstr ""
2523
2524 #. type: Plain text
2525 #: build/C/man2/listxattr.2:104
2526 #, no-wrap
2527 msgid "user.name1\\e0system.name1\\e0user.name2\\e0\n"
2528 msgstr ""
2529
2530 #. type: Plain text
2531 #: build/C/man2/listxattr.2:112
2532 msgid ""
2533 "Filesystems like ext2, ext3 and XFS which implement POSIX ACLs using "
2534 "extended attributes, might return a I<list> like this:"
2535 msgstr ""
2536
2537 #. type: Plain text
2538 #: build/C/man2/listxattr.2:117
2539 #, no-wrap
2540 msgid "system.posix_acl_access\\e0system.posix_acl_default\\e0\n"
2541 msgstr ""
2542
2543 #. type: Plain text
2544 #: build/C/man2/listxattr.2:126
2545 msgid ""
2546 "On success, a positive number is returned indicating the size of the "
2547 "extended attribute name list.  On failure, -1 is returned and I<errno> is "
2548 "set appropriately."
2549 msgstr ""
2550
2551 #. type: Plain text
2552 #: build/C/man2/listxattr.2:135
2553 msgid ""
2554 "If the I<size> of the I<list> buffer is too small to hold the result, "
2555 "I<errno> is set to B<ERANGE>."
2556 msgstr ""
2557
2558 #. type: Plain text
2559 #: build/C/man2/listxattr.2:165
2560 msgid ""
2561 "B<getfattr>(1), B<setfattr>(1), B<getxattr>(2), B<open>(2), "
2562 "B<removexattr>(2), B<setxattr>(2), B<stat>(2), B<attr>(5), B<symlink>(7)"
2563 msgstr ""
2564
2565 #. type: TH
2566 #: build/C/man2/mount.2:40
2567 #, no-wrap
2568 msgid "MOUNT"
2569 msgstr ""
2570
2571 #. type: TH
2572 #: build/C/man2/mount.2:40
2573 #, no-wrap
2574 msgid "2012-05-10"
2575 msgstr ""
2576
2577 #. type: Plain text
2578 #: build/C/man2/mount.2:43
2579 msgid "mount - mount file system"
2580 msgstr ""
2581
2582 #. type: Plain text
2583 #: build/C/man2/mount.2:46 build/C/man2/umount.2:36
2584 #, no-wrap
2585 msgid "B<#include E<lt>sys/mount.hE<gt>>\n"
2586 msgstr ""
2587
2588 #. type: Plain text
2589 #: build/C/man2/mount.2:50
2590 #, no-wrap
2591 msgid ""
2592 "B<int mount(const char *>I<source>B<, const char *>I<target>B<,>\n"
2593 "B<          const char *>I<filesystemtype>B<, unsigned long "
2594 ">I<mountflags>B<,>\n"
2595 "B<          const void *>I<data>B<);>\n"
2596 msgstr ""
2597
2598 #. type: Plain text
2599 #: build/C/man2/mount.2:58
2600 msgid ""
2601 "B<mount>()  attaches the file system specified by I<source> (which is often "
2602 "a device name, but can also be a directory name or a dummy) to the directory "
2603 "specified by I<target>."
2604 msgstr ""
2605
2606 #. type: Plain text
2607 #: build/C/man2/mount.2:62
2608 msgid ""
2609 "Appropriate privilege (Linux: the B<CAP_SYS_ADMIN> capability) is required "
2610 "to mount file systems."
2611 msgstr ""
2612
2613 #.  Multiple mounts on same mount point: since 2.3.99pre7.
2614 #. type: Plain text
2615 #: build/C/man2/mount.2:67
2616 msgid ""
2617 "Since Linux 2.4 a single file system can be visible at multiple mount "
2618 "points, and multiple mounts can be stacked on the same mount point."
2619 msgstr ""
2620
2621 #. type: Plain text
2622 #: build/C/man2/mount.2:76
2623 msgid ""
2624 "Values for the I<filesystemtype> argument supported by the kernel are listed "
2625 "in I</proc/filesystems> (e.g., \"minix\", \"ext2\", \"ext3\", \"jfs\", "
2626 "\"xfs\", \"reiserfs\", \"msdos\", \"proc\", \"nfs\", \"iso9660\").  Further "
2627 "types may become available when the appropriate modules are loaded."
2628 msgstr ""
2629
2630 #.  (as defined in \fI<linux/fs.h>\fP for libc4 and libc5
2631 #.  and in \fI<sys/mount.h>\fP for glibc2)
2632 #.  FIXME 2.6.15 added flags for "shared subtree" functionality:
2633 #.  MS_UNBINDABLE, MS_PRIVATE, MS_SHARED, MS_SLAVE
2634 #.  These need to be documented on this page.
2635 #.  See:
2636 #.  Documentation/filesystems/sharedsubtree.txt
2637 #
2638 #.  http://lwn.net/Articles/159077/
2639 #
2640 #.  http://myweb.sudhaa.com:2022/~ram/sharedsubtree/paper/sharedsubtree.1.pdf
2641 #.  Shared-Subtree Concept, Implementation, and Applications in Linux
2642 #.  Al Viro viro@ftp.linux.org.uk
2643 #.  Ram Pai linuxram@us.ibm.com
2644 #
2645 #.  http://foss.in/2005/slides/sharedsubtree1.pdf
2646 #.  Shared Subtree Concept and Implementation in the Linux Kernel
2647 #.  Ram Pai
2648 #
2649 #.  2.6.25 Added MS_I_VERSION, which needs to be documented.
2650 #. type: Plain text
2651 #: build/C/man2/mount.2:105
2652 msgid ""
2653 "The I<mountflags> argument may have the magic number 0xC0ED (B<MS_MGC_VAL>)  "
2654 "in the top 16 bits (this was required in kernel versions prior to 2.4, but "
2655 "is no longer required and ignored if specified), and various mount flags in "
2656 "the low order 16 bits:"
2657 msgstr ""
2658
2659 #. type: TP
2660 #: build/C/man2/mount.2:105
2661 #, no-wrap
2662 msgid "B<MS_BIND> (Linux 2.4 onward)"
2663 msgstr ""
2664
2665 #.  since 2.4.0-test9
2666 #.  with the exception of the "hidden" MS_REC mountflags bit
2667 #. type: Plain text
2668 #: build/C/man2/mount.2:124
2669 msgid ""
2670 "Perform a bind mount, making a file or a directory subtree visible at "
2671 "another point within a file system.  Bind mounts may cross file system "
2672 "boundaries and span B<chroot>(2)  jails.  The I<filesystemtype> and I<data> "
2673 "arguments are ignored.  Up until Linux 2.6.26, I<mountflags> was also "
2674 "ignored (the bind mount has the same mount options as the underlying mount "
2675 "point)."
2676 msgstr ""
2677
2678 #. type: TP
2679 #: build/C/man2/mount.2:124
2680 #, no-wrap
2681 msgid "B<MS_DIRSYNC> (since Linux 2.5.19)"
2682 msgstr ""
2683
2684 #. type: Plain text
2685 #: build/C/man2/mount.2:130
2686 msgid ""
2687 "Make directory changes on this file system synchronous.  (This property can "
2688 "be obtained for individual directories or subtrees using B<chattr>(1).)"
2689 msgstr ""
2690
2691 #. type: TP
2692 #: build/C/man2/mount.2:130
2693 #, no-wrap
2694 msgid "B<MS_MANDLOCK>"
2695 msgstr ""
2696
2697 #.  FIXME Say more about MS_MOVE
2698 #. type: Plain text
2699 #: build/C/man2/mount.2:137
2700 msgid ""
2701 "Permit mandatory locking on files in this file system.  (Mandatory locking "
2702 "must still be enabled on a per-file basis, as described in B<fcntl>(2).)"
2703 msgstr ""
2704
2705 #. type: TP
2706 #: build/C/man2/mount.2:137
2707 #, no-wrap
2708 msgid "B<MS_MOVE>"
2709 msgstr ""
2710
2711 #. type: Plain text
2712 #: build/C/man2/mount.2:148
2713 msgid ""
2714 "Move a subtree.  I<source> specifies an existing mount point and I<target> "
2715 "specifies the new location.  The move is atomic: at no point is the subtree "
2716 "unmounted.  The I<filesystemtype>, I<mountflags>, and I<data> arguments are "
2717 "ignored."
2718 msgstr ""
2719
2720 #. type: TP
2721 #: build/C/man2/mount.2:148
2722 #, no-wrap
2723 msgid "B<MS_NOATIME>"
2724 msgstr ""
2725
2726 #. type: Plain text
2727 #: build/C/man2/mount.2:151
2728 msgid "Do not update access times for (all types of) files on this file system."
2729 msgstr ""
2730
2731 #. type: TP
2732 #: build/C/man2/mount.2:151
2733 #, no-wrap
2734 msgid "B<MS_NODEV>"
2735 msgstr ""
2736
2737 #. type: Plain text
2738 #: build/C/man2/mount.2:154
2739 msgid "Do not allow access to devices (special files) on this file system."
2740 msgstr ""
2741
2742 #. type: TP
2743 #: build/C/man2/mount.2:154
2744 #, no-wrap
2745 msgid "B<MS_NODIRATIME>"
2746 msgstr ""
2747
2748 #. type: Plain text
2749 #: build/C/man2/mount.2:163
2750 msgid ""
2751 "Do not update access times for directories on this file system.  This flag "
2752 "provides a subset of the functionality provided by B<MS_NOATIME>; that is, "
2753 "B<MS_NOATIME> implies B<MS_NODIRATIME>."
2754 msgstr ""
2755
2756 #. type: TP
2757 #: build/C/man2/mount.2:163
2758 #, no-wrap
2759 msgid "B<MS_NOEXEC>"
2760 msgstr ""
2761
2762 #.  (Possibly useful for a file system that contains non-Linux executables.
2763 #.  Often used as a security feature, e.g., to make sure that restricted
2764 #.  users cannot execute files uploaded using ftp or so.)
2765 #. type: Plain text
2766 #: build/C/man2/mount.2:169
2767 msgid "Do not allow programs to be executed from this file system."
2768 msgstr ""
2769
2770 #. type: TP
2771 #: build/C/man2/mount.2:169
2772 #, no-wrap
2773 msgid "B<MS_NOSUID>"
2774 msgstr ""
2775
2776 #.  (This is a security feature to prevent users executing set-user-ID and
2777 #.  set-group-ID programs from removable disk devices.)
2778 #. type: Plain text
2779 #: build/C/man2/mount.2:175
2780 msgid ""
2781 "Do not honor set-user-ID and set-group-ID bits when executing programs from "
2782 "this file system."
2783 msgstr ""
2784
2785 #. type: TP
2786 #: build/C/man2/mount.2:175
2787 #, no-wrap
2788 msgid "B<MS_RDONLY>"
2789 msgstr ""
2790
2791 #
2792 #.  FIXME Document MS_REC, available since 2.4.11.
2793 #.  This flag has meaning in conjunction with MS_BIND and
2794 #.  also with the shared subtree flags.
2795 #. type: Plain text
2796 #: build/C/man2/mount.2:182
2797 msgid "Mount file system read-only."
2798 msgstr ""
2799
2800 #. type: TP
2801 #: build/C/man2/mount.2:182
2802 #, no-wrap
2803 msgid "B<MS_RELATIME> (Since Linux 2.6.20)"
2804 msgstr ""
2805
2806 #.  Matthew Garrett notes in the patch that added this behavior
2807 #.  that this lets utilities such as tmpreaper (which deletes
2808 #.  files based on last acces time) work correctly.
2809 #. type: Plain text
2810 #: build/C/man2/mount.2:203
2811 msgid ""
2812 "When a file on this file system is accessed, only update the file's last "
2813 "access time (atime) if the current value of atime is less than or equal to "
2814 "the file's last modification time (mtime)  or last status change time "
2815 "(ctime).  This option is useful for programs, such as B<mutt>(1), that need "
2816 "to know when a file has been read since it was last modified.  Since Linux "
2817 "2.6.30, the kernel defaults to the behavior provided by this flag (unless "
2818 "B<MS_NOATIME> was specified), and the B<MS_STRICTATIME> flag is required to "
2819 "obtain traditional semantics.  In addition, since Linux 2.6.30, the file's "
2820 "last access time is always updated if it is more than 1 day old."
2821 msgstr ""
2822
2823 #. type: TP
2824 #: build/C/man2/mount.2:203
2825 #, no-wrap
2826 msgid "B<MS_REMOUNT>"
2827 msgstr ""
2828
2829 #. type: Plain text
2830 #: build/C/man2/mount.2:219
2831 msgid ""
2832 "Remount an existing mount.  This allows you to change the I<mountflags> and "
2833 "I<data> of an existing mount without having to unmount and remount the file "
2834 "system.  I<source> and I<target> should be the same values specified in the "
2835 "initial B<mount>()  call; I<filesystemtype> is ignored."
2836 msgstr ""
2837
2838 #. type: Plain text
2839 #: build/C/man2/mount.2:234
2840 msgid ""
2841 "The following I<mountflags> can be changed: B<MS_RDONLY>, B<MS_SYNCHRONOUS>, "
2842 "B<MS_MANDLOCK>; before kernel 2.6.16, the following could also be changed: "
2843 "B<MS_NOATIME> and B<MS_NODIRATIME>; and, additionally, before kernel 2.4.10, "
2844 "the following could also be changed: B<MS_NOSUID>, B<MS_NODEV>, "
2845 "B<MS_NOEXEC>."
2846 msgstr ""
2847
2848 #. type: TP
2849 #: build/C/man2/mount.2:234
2850 #, no-wrap
2851 msgid "B<MS_SILENT> (since Linux 2.6.17)"
2852 msgstr ""
2853
2854 #. type: Plain text
2855 #: build/C/man2/mount.2:242
2856 msgid ""
2857 "Suppress the display of certain (I<printk>())  warning messages in the "
2858 "kernel log.  This flag supersedes the misnamed and obsolete B<MS_VERBOSE> "
2859 "flag (available since Linux 2.4.12), which has the same meaning."
2860 msgstr ""
2861
2862 #. type: TP
2863 #: build/C/man2/mount.2:242
2864 #, no-wrap
2865 msgid "B<MS_STRICTATIME> (Since Linux 2.6.30)"
2866 msgstr ""
2867
2868 #. type: Plain text
2869 #: build/C/man2/mount.2:252
2870 msgid ""
2871 "Always update the last access time (atime) when files on this file system "
2872 "are accessed.  (This was the default behavior before Linux 2.6.30.)  "
2873 "Specifying this flag overrides the effect of setting the B<MS_NOATIME> and "
2874 "B<MS_RELATIME> flags."
2875 msgstr ""
2876
2877 #. type: TP
2878 #: build/C/man2/mount.2:252
2879 #, no-wrap
2880 msgid "B<MS_SYNCHRONOUS>"
2881 msgstr ""
2882
2883 #. type: Plain text
2884 #: build/C/man2/mount.2:260
2885 msgid ""
2886 "Make writes on this file system synchronous (as though the B<O_SYNC> flag to "
2887 "B<open>(2)  was specified for all file opens to this file system)."
2888 msgstr ""
2889
2890 #. type: Plain text
2891 #: build/C/man2/mount.2:272
2892 msgid ""
2893 "From Linux 2.4 onward, the B<MS_NODEV>, B<MS_NOEXEC>, and B<MS_NOSUID> flags "
2894 "are settable on a per-mount-point basis.  From kernel 2.6.16 onward, "
2895 "B<MS_NOATIME> and B<MS_NODIRATIME> are also settable on a per-mount-point "
2896 "basis.  The B<MS_RELATIME> flag is also settable on a per-mount-point basis."
2897 msgstr ""
2898
2899 #. type: Plain text
2900 #: build/C/man2/mount.2:281
2901 msgid ""
2902 "The I<data> argument is interpreted by the different file systems.  "
2903 "Typically it is a string of comma-separated options understood by this file "
2904 "system.  See B<mount>(8)  for details of the options available for each "
2905 "filesystem type."
2906 msgstr ""
2907
2908 #. type: Plain text
2909 #: build/C/man2/mount.2:286 build/C/man2/stat.2:305 build/C/man2/statfs.2:132 build/C/man3/statvfs.3:99 build/C/man2/umount.2:104
2910 msgid ""
2911 "On success, zero is returned.  On error, -1 is returned, and I<errno> is set "
2912 "appropriately."
2913 msgstr ""
2914
2915 #. type: Plain text
2916 #: build/C/man2/mount.2:292
2917 msgid ""
2918 "The error values given below result from filesystem type independent "
2919 "errors.  Each file-system type may have its own special errors and its own "
2920 "special behavior.  See the kernel source code for details."
2921 msgstr ""
2922
2923 #. type: TP
2924 #: build/C/man2/mount.2:292 build/C/man2/spu_create.2:169 build/C/man2/stat.2:306 build/C/man2/statfs.2:133 build/C/man3/statvfs.3:100
2925 #, no-wrap
2926 msgid "B<EACCES>"
2927 msgstr ""
2928
2929 #.  mtk: Probably: write permission is required for MS_BIND, with
2930 #.  the error EPERM if not present; CAP_DAC_OVERRIDE is required.
2931 #. type: Plain text
2932 #: build/C/man2/mount.2:307
2933 msgid ""
2934 "A component of a path was not searchable.  (See also B<path_resolution>(7).)  "
2935 "Or, mounting a read-only file system was attempted without giving the "
2936 "B<MS_RDONLY> flag.  Or, the block device I<source> is located on a file "
2937 "system mounted with the B<MS_NODEV> option."
2938 msgstr ""
2939
2940 #. type: TP
2941 #: build/C/man2/mount.2:307 build/C/man2/umount.2:117
2942 #, no-wrap
2943 msgid "B<EBUSY>"
2944 msgstr ""
2945
2946 #. type: Plain text
2947 #: build/C/man2/mount.2:319
2948 msgid ""
2949 "I<source> is already mounted.  Or, it cannot be remounted read-only, because "
2950 "it still holds files open for writing.  Or, it cannot be mounted on "
2951 "I<target> because I<target> is still busy (it is the working directory of "
2952 "some thread, the mount point of another device, has open files, etc.)."
2953 msgstr ""
2954
2955 #. type: TP
2956 #: build/C/man2/mount.2:319 build/C/man2/spu_create.2:177 build/C/man2/spu_run.2:154 build/C/man2/stat.2:317 build/C/man2/statfs.2:145 build/C/man3/statvfs.3:112 build/C/man2/sysfs.2:78 build/C/man2/umount.2:121 build/C/man2/ustat.2:76
2957 #, no-wrap
2958 msgid "B<EFAULT>"
2959 msgstr ""
2960
2961 #. type: Plain text
2962 #: build/C/man2/mount.2:322
2963 msgid "One of the pointer arguments points outside the user address space."
2964 msgstr ""
2965
2966 #. type: Plain text
2967 #: build/C/man2/mount.2:337
2968 msgid ""
2969 "I<source> had an invalid superblock.  Or, a remount (B<MS_REMOUNT>)  was "
2970 "attempted, but I<source> was not already mounted on I<target>.  Or, a move "
2971 "(B<MS_MOVE>)  was attempted, but I<source> was not a mount point, or was "
2972 "\\(aq/\\(aq."
2973 msgstr ""
2974
2975 #. type: TP
2976 #: build/C/man2/mount.2:337 build/C/man2/spu_create.2:188 build/C/man2/stat.2:320 build/C/man2/statfs.2:157 build/C/man3/statvfs.3:124
2977 #, no-wrap
2978 msgid "B<ELOOP>"
2979 msgstr ""
2980
2981 #. type: Plain text
2982 #: build/C/man2/mount.2:344
2983 msgid ""
2984 "Too many links encountered during pathname resolution.  Or, a move was "
2985 "attempted, while I<target> is a descendant of I<source>."
2986 msgstr ""
2987
2988 #. type: TP
2989 #: build/C/man2/mount.2:344 build/C/man2/spu_create.2:192
2990 #, no-wrap
2991 msgid "B<EMFILE>"
2992 msgstr ""
2993
2994 #. type: Plain text
2995 #: build/C/man2/mount.2:348
2996 msgid "(In case no block device is required:)  Table of dummy devices is full."
2997 msgstr ""
2998
2999 #. type: TP
3000 #: build/C/man2/mount.2:348 build/C/man2/spu_create.2:195 build/C/man2/stat.2:323 build/C/man2/statfs.2:162 build/C/man3/statvfs.3:129 build/C/man2/umount.2:137
3001 #, no-wrap
3002 msgid "B<ENAMETOOLONG>"
3003 msgstr ""
3004
3005 #. type: Plain text
3006 #: build/C/man2/mount.2:352 build/C/man2/umount.2:141
3007 msgid "A pathname was longer than B<MAXPATHLEN>."
3008 msgstr ""
3009
3010 #. type: TP
3011 #: build/C/man2/mount.2:352 build/C/man2/spu_create.2:202
3012 #, no-wrap
3013 msgid "B<ENODEV>"
3014 msgstr ""
3015
3016 #. type: Plain text
3017 #: build/C/man2/mount.2:356
3018 msgid "I<filesystemtype> not configured in the kernel."
3019 msgstr ""
3020
3021 #. type: TP
3022 #: build/C/man2/mount.2:356 build/C/man2/spu_create.2:206 build/C/man2/stat.2:327 build/C/man2/statfs.2:167 build/C/man3/statvfs.3:134 build/C/man2/umount.2:141
3023 #, no-wrap
3024 msgid "B<ENOENT>"
3025 msgstr ""
3026
3027 #. type: Plain text
3028 #: build/C/man2/mount.2:359 build/C/man2/umount.2:144
3029 msgid "A pathname was empty or had a nonexistent component."
3030 msgstr ""
3031
3032 #. type: TP
3033 #: build/C/man2/mount.2:359 build/C/man2/spu_create.2:211 build/C/man2/spu_run.2:175 build/C/man2/stat.2:334 build/C/man2/statfs.2:173 build/C/man3/statvfs.3:140 build/C/man2/umount.2:144
3034 #, no-wrap
3035 msgid "B<ENOMEM>"
3036 msgstr ""
3037
3038 #. type: Plain text
3039 #: build/C/man2/mount.2:362 build/C/man2/umount.2:147
3040 msgid "The kernel could not allocate a free page to copy filenames or data into."
3041 msgstr ""
3042
3043 #. type: TP
3044 #: build/C/man2/mount.2:362
3045 #, no-wrap
3046 msgid "B<ENOTBLK>"
3047 msgstr ""
3048
3049 #. type: Plain text
3050 #: build/C/man2/mount.2:366
3051 msgid "I<source> is not a block device (and a device was required)."
3052 msgstr ""
3053
3054 #. type: TP
3055 #: build/C/man2/mount.2:366 build/C/man2/spu_create.2:224 build/C/man2/stat.2:337 build/C/man2/statfs.2:179 build/C/man3/statvfs.3:146
3056 #, no-wrap
3057 msgid "B<ENOTDIR>"
3058 msgstr ""
3059
3060 #. type: Plain text
3061 #: build/C/man2/mount.2:372
3062 msgid "I<target>, or a prefix of I<source>, is not a directory."
3063 msgstr ""
3064
3065 #. type: TP
3066 #: build/C/man2/mount.2:372
3067 #, no-wrap
3068 msgid "B<ENXIO>"
3069 msgstr ""
3070
3071 #. type: Plain text
3072 #: build/C/man2/mount.2:377
3073 msgid "The major number of the block device I<source> is out of range."
3074 msgstr ""
3075
3076 #. type: TP
3077 #: build/C/man2/mount.2:377 build/C/man2/spu_create.2:229 build/C/man2/umount.2:147
3078 #, no-wrap
3079 msgid "B<EPERM>"
3080 msgstr ""
3081
3082 #. type: Plain text
3083 #: build/C/man2/mount.2:380 build/C/man2/umount.2:150
3084 msgid "The caller does not have the required privileges."
3085 msgstr ""
3086
3087 #.  FIXME: Definitions of the so-far-undocumented MS_UNBINDABLE, MS_PRIVATE,
3088 #.   MS_SHARED, and MS_SLAVE were (also) only added to glibc headers in 2.12.
3089 #. type: Plain text
3090 #: build/C/man2/mount.2:391
3091 msgid ""
3092 "The definitions of B<MS_DIRSYNC>, B<MS_MOVE>, B<MS_REC>, B<MS_RELATIME>, and "
3093 "B<MS_STRICTATIME> were only added to glibc headers in version 2.12."
3094 msgstr ""
3095
3096 #. type: Plain text
3097 #: build/C/man2/mount.2:394
3098 msgid ""
3099 "This function is Linux-specific and should not be used in programs intended "
3100 "to be portable."
3101 msgstr ""
3102
3103 #. type: Plain text
3104 #: build/C/man2/mount.2:403
3105 msgid ""
3106 "The original B<MS_SYNC> flag was renamed B<MS_SYNCHRONOUS> in 1.1.69 when a "
3107 "different B<MS_SYNC> was added to I<E<lt>mman.hE<gt>>."
3108 msgstr ""
3109
3110 #.  The change is in patch-2.4.0-prerelease.
3111 #. type: Plain text
3112 #: build/C/man2/mount.2:412
3113 msgid ""
3114 "Before Linux 2.4 an attempt to execute a set-user-ID or set-group-ID program "
3115 "on a file system mounted with B<MS_NOSUID> would fail with B<EPERM>.  Since "
3116 "Linux 2.4 the set-user-ID and set-group-ID bits are just silently ignored in "
3117 "this case."
3118 msgstr ""
3119
3120 #. type: SS
3121 #: build/C/man2/mount.2:412
3122 #, no-wrap
3123 msgid "Per-process Namespaces"
3124 msgstr ""
3125
3126 #. type: Plain text
3127 #: build/C/man2/mount.2:423
3128 msgid ""
3129 "Starting with kernel 2.4.19, Linux provides per-process mount namespaces.  A "
3130 "mount namespace is the set of file system mounts that are visible to a "
3131 "process.  Mount-point namespaces can be (and usually are)  shared between "
3132 "multiple processes, and changes to the namespace (i.e., mounts and unmounts) "
3133 "by one process are visible to all other processes sharing the same "
3134 "namespace.  (The pre-2.4.19 Linux situation can be considered as one in "
3135 "which a single namespace was shared by every process on the system.)"
3136 msgstr ""
3137
3138 #. type: Plain text
3139 #: build/C/man2/mount.2:429
3140 msgid ""
3141 "A child process created by B<fork>(2)  shares its parent's mount namespace; "
3142 "the mount namespace is preserved across an B<execve>(2)."
3143 msgstr ""
3144
3145 #. type: Plain text
3146 #: build/C/man2/mount.2:449
3147 msgid ""
3148 "A process can obtain a private mount namespace if: it was created using the "
3149 "B<clone>(2)  B<CLONE_NEWNS> flag, in which case its new namespace is "
3150 "initialized to be a I<copy> of the namespace of the process that called "
3151 "B<clone>(2); or it calls B<unshare>(2)  with the B<CLONE_NEWNS> flag, which "
3152 "causes the caller's mount namespace to obtain a private copy of the "
3153 "namespace that it was previously sharing with other processes, so that "
3154 "future mounts and unmounts by the caller are invisible to other processes "
3155 "(except child processes that the caller subsequently creates) and vice "
3156 "versa."
3157 msgstr ""
3158
3159 #. type: Plain text
3160 #: build/C/man2/mount.2:456
3161 msgid ""
3162 "The Linux-specific I</proc/PID/mounts> file exposes the list of mount points "
3163 "in the mount namespace of the process with the specified ID; see B<proc>(5)  "
3164 "for details."
3165 msgstr ""
3166
3167 #. type: Plain text
3168 #: build/C/man2/mount.2:461
3169 msgid "B<umount>(2), B<path_resolution>(7), B<mount>(8), B<umount>(8)"
3170 msgstr ""
3171
3172 #. type: TH
3173 #: build/C/man7/path_resolution.7:23
3174 #, no-wrap
3175 msgid "PATH_RESOLUTION"
3176 msgstr ""
3177
3178 #. type: TH
3179 #: build/C/man7/path_resolution.7:23
3180 #, no-wrap
3181 msgid "2009-12-05"
3182 msgstr ""
3183
3184 #. type: Plain text
3185 #: build/C/man7/path_resolution.7:26
3186 msgid "path_resolution - how a pathname is resolved to a file"
3187 msgstr ""
3188
3189 #. type: Plain text
3190 #: build/C/man7/path_resolution.7:29
3191 msgid ""
3192 "Some UNIX/Linux system calls have as parameter one or more filenames.  A "
3193 "filename (or pathname) is resolved as follows."
3194 msgstr ""
3195
3196 #. type: SS
3197 #: build/C/man7/path_resolution.7:29
3198 #, no-wrap
3199 msgid "Step 1: Start of the resolution process"
3200 msgstr ""
3201
3202 #. type: Plain text
3203 #: build/C/man7/path_resolution.7:48
3204 msgid ""
3205 "If the pathname starts with the \\(aq/\\(aq character, the starting lookup "
3206 "directory is the root directory of the calling process.  (A process inherits "
3207 "its root directory from its parent.  Usually this will be the root directory "
3208 "of the file hierarchy.  A process may get a different root directory by use "
3209 "of the B<chroot>(2)  system call.  A process may get an entirely private "
3210 "mount namespace in case it\\(emor one of its ancestors\\(emwas started by an "
3211 "invocation of the B<clone>(2)  system call that had the B<CLONE_NEWNS> flag "
3212 "set.)  This handles the \\(aq/\\(aq part of the pathname."
3213 msgstr ""
3214
3215 #. type: Plain text
3216 #: build/C/man7/path_resolution.7:56
3217 msgid ""
3218 "If the pathname does not start with the \\(aq/\\(aq character, the starting "
3219 "lookup directory of the resolution process is the current working directory "
3220 "of the process.  (This is also inherited from the parent.  It can be changed "
3221 "by use of the B<chdir>(2)  system call.)"
3222 msgstr ""
3223
3224 #. type: Plain text
3225 #: build/C/man7/path_resolution.7:59
3226 msgid ""
3227 "Pathnames starting with a \\(aq/\\(aq character are called absolute "
3228 "pathnames.  Pathnames not starting with a \\(aq/\\(aq are called relative "
3229 "pathnames."
3230 msgstr ""
3231
3232 #. type: SS
3233 #: build/C/man7/path_resolution.7:59
3234 #, no-wrap
3235 msgid "Step 2: Walk along the path"
3236 msgstr ""
3237
3238 #. type: Plain text
3239 #: build/C/man7/path_resolution.7:64
3240 msgid ""
3241 "Set the current lookup directory to the starting lookup directory.  Now, for "
3242 "each nonfinal component of the pathname, where a component is a substring "
3243 "delimited by \\(aq/\\(aq characters, this component is looked up in the "
3244 "current lookup directory."
3245 msgstr ""
3246
3247 #. type: Plain text
3248 #: build/C/man7/path_resolution.7:70
3249 msgid ""
3250 "If the process does not have search permission on the current lookup "
3251 "directory, an B<EACCES> error is returned (\"Permission denied\")."
3252 msgstr ""
3253
3254 #. type: Plain text
3255 #: build/C/man7/path_resolution.7:75
3256 msgid ""
3257 "If the component is not found, an B<ENOENT> error is returned (\"No such "
3258 "file or directory\")."
3259 msgstr ""
3260
3261 #. type: Plain text
3262 #: build/C/man7/path_resolution.7:80
3263 msgid ""
3264 "If the component is found, but is neither a directory nor a symbolic link, "
3265 "an B<ENOTDIR> error is returned (\"Not a directory\")."
3266 msgstr ""
3267
3268 #. type: Plain text
3269 #: build/C/man7/path_resolution.7:84
3270 msgid ""
3271 "If the component is found and is a directory, we set the current lookup "
3272 "directory to that directory, and go to the next component."
3273 msgstr ""
3274
3275 #
3276 #.  presently: max recursion depth during symlink resolution: 5
3277 #.  max total number of symbolic links followed: 40
3278 #.  _POSIX_SYMLOOP_MAX is 8
3279 #. type: Plain text
3280 #: build/C/man7/path_resolution.7:108
3281 msgid ""
3282 "If the component is found and is a symbolic link (symlink), we first resolve "
3283 "this symbolic link (with the current lookup directory as starting lookup "
3284 "directory).  Upon error, that error is returned.  If the result is not a "
3285 "directory, an B<ENOTDIR> error is returned.  If the resolution of the "
3286 "symlink is successful and returns a directory, we set the current lookup "
3287 "directory to that directory, and go to the next component.  Note that the "
3288 "resolution process here involves recursion.  In order to protect the kernel "
3289 "against stack overflow, and also to protect against denial of service, there "
3290 "are limits on the maximum recursion depth, and on the maximum number of "
3291 "symbolic links followed.  An B<ELOOP> error is returned when the maximum is "
3292 "exceeded (\"Too many levels of symbolic links\")."
3293 msgstr ""
3294
3295 #. type: SS
3296 #: build/C/man7/path_resolution.7:108
3297 #, no-wrap
3298 msgid "Step 3: Find the final entry"
3299 msgstr ""
3300
3301 #. type: Plain text
3302 #: build/C/man7/path_resolution.7:120
3303 msgid ""
3304 "The lookup of the final component of the pathname goes just like that of all "
3305 "other components, as described in the previous step, with two differences: "
3306 "(i) the final component need not be a directory (at least as far as the path "
3307 "resolution process is concerned\\(emit may have to be a directory, or a "
3308 "nondirectory, because of the requirements of the specific system call), and "
3309 "(ii) it is not necessarily an error if the component is not found\\(emmaybe "
3310 "we are just creating it.  The details on the treatment of the final entry "
3311 "are described in the manual pages of the specific system calls."
3312 msgstr ""
3313
3314 #. type: SS
3315 #: build/C/man7/path_resolution.7:120
3316 #, no-wrap
3317 msgid ". and .."
3318 msgstr ""
3319
3320 #. type: Plain text
3321 #: build/C/man7/path_resolution.7:124
3322 msgid ""
3323 "By convention, every directory has the entries \".\" and \"..\", which refer "
3324 "to the directory itself and to its parent directory, respectively."
3325 msgstr ""
3326
3327 #. type: Plain text
3328 #: build/C/man7/path_resolution.7:128
3329 msgid ""
3330 "The path resolution process will assume that these entries have their "
3331 "conventional meanings, regardless of whether they are actually present in "
3332 "the physical file system."
3333 msgstr ""
3334
3335 #. type: Plain text
3336 #: build/C/man7/path_resolution.7:130
3337 msgid "One cannot walk down past the root: \"/..\" is the same as \"/\"."
3338 msgstr ""
3339
3340 #. type: SS
3341 #: build/C/man7/path_resolution.7:130
3342 #, no-wrap
3343 msgid "Mount points"
3344 msgstr ""
3345
3346 #. type: Plain text
3347 #: build/C/man7/path_resolution.7:134
3348 msgid ""
3349 "After a \"mount dev path\" command, the pathname \"path\" refers to the root "
3350 "of the file system hierarchy on the device \"dev\", and no longer to "
3351 "whatever it referred to earlier."
3352 msgstr ""
3353
3354 #. type: Plain text
3355 #: build/C/man7/path_resolution.7:138
3356 msgid ""
3357 "One can walk out of a mounted file system: \"path/..\" refers to the parent "
3358 "directory of \"path\", outside of the file system hierarchy on \"dev\"."
3359 msgstr ""
3360
3361 #. type: SS
3362 #: build/C/man7/path_resolution.7:138
3363 #, no-wrap
3364 msgid "Trailing slashes"
3365 msgstr ""
3366
3367 #. type: Plain text
3368 #: build/C/man7/path_resolution.7:144
3369 msgid ""
3370 "If a pathname ends in a \\(aq/\\(aq, that forces resolution of the preceding "
3371 "component as in Step 2: it has to exist and resolve to a directory.  "
3372 "Otherwise a trailing \\(aq/\\(aq is ignored.  (Or, equivalently, a pathname "
3373 "with a trailing \\(aq/\\(aq is equivalent to the pathname obtained by "
3374 "appending \\(aq.\\(aq to it.)"
3375 msgstr ""
3376
3377 #. type: SS
3378 #: build/C/man7/path_resolution.7:144
3379 #, no-wrap
3380 msgid "Final symlink"
3381 msgstr ""
3382
3383 #. type: Plain text
3384 #: build/C/man7/path_resolution.7:153
3385 msgid ""
3386 "If the last component of a pathname is a symbolic link, then it depends on "
3387 "the system call whether the file referred to will be the symbolic link or "
3388 "the result of path resolution on its contents.  For example, the system call "
3389 "B<lstat>(2)  will operate on the symlink, while B<stat>(2)  operates on the "
3390 "file pointed to by the symlink."
3391 msgstr ""
3392
3393 #. type: SS
3394 #: build/C/man7/path_resolution.7:153
3395 #, no-wrap
3396 msgid "Length limit"
3397 msgstr ""
3398
3399 #. type: Plain text
3400 #: build/C/man7/path_resolution.7:160
3401 msgid ""
3402 "There is a maximum length for pathnames.  If the pathname (or some "
3403 "intermediate pathname obtained while resolving symbolic links)  is too long, "
3404 "an B<ENAMETOOLONG> error is returned (\"Filename too long\")."
3405 msgstr ""
3406
3407 #. type: SS
3408 #: build/C/man7/path_resolution.7:160
3409 #, no-wrap
3410 msgid "Empty pathname"
3411 msgstr ""
3412
3413 #. type: Plain text
3414 #: build/C/man7/path_resolution.7:167
3415 msgid ""
3416 "In the original UNIX, the empty pathname referred to the current directory.  "
3417 "Nowadays POSIX decrees that an empty pathname must not be resolved "
3418 "successfully.  Linux returns B<ENOENT> in this case."
3419 msgstr ""
3420
3421 #. type: SS
3422 #: build/C/man7/path_resolution.7:167
3423 #, no-wrap
3424 msgid "Permissions"
3425 msgstr ""
3426
3427 #. type: Plain text
3428 #: build/C/man7/path_resolution.7:180
3429 msgid ""
3430 "The permission bits of a file consist of three groups of three bits, cf.\\& "
3431 "B<chmod>(1)  and B<stat>(2).  The first group of three is used when the "
3432 "effective user ID of the calling process equals the owner ID of the file.  "
3433 "The second group of three is used when the group ID of the file either "
3434 "equals the effective group ID of the calling process, or is one of the "
3435 "supplementary group IDs of the calling process (as set by B<setgroups>(2)).  "
3436 "When neither holds, the third group is used."
3437 msgstr ""
3438
3439 #. type: Plain text
3440 #: build/C/man7/path_resolution.7:184
3441 msgid ""
3442 "Of the three bits used, the first bit determines read permission, the second "
3443 "write permission, and the last execute permission in case of ordinary files, "
3444 "or search permission in case of directories."
3445 msgstr ""
3446
3447 #. type: Plain text
3448 #: build/C/man7/path_resolution.7:189
3449 msgid ""
3450 "Linux uses the fsuid instead of the effective user ID in permission checks.  "
3451 "Ordinarily the fsuid will equal the effective user ID, but the fsuid can be "
3452 "changed by the system call B<setfsuid>(2)."
3453 msgstr ""
3454
3455 #. type: Plain text
3456 #: build/C/man7/path_resolution.7:197
3457 msgid ""
3458 "(Here \"fsuid\" stands for something like \"file system user ID\".  The "
3459 "concept was required for the implementation of a user space NFS server at a "
3460 "time when processes could send a signal to a process with the same effective "
3461 "user ID.  It is obsolete now.  Nobody should use B<setfsuid>(2).)"
3462 msgstr ""
3463
3464 #.  FIXME say something about file system mounted read-only ?
3465 #. type: Plain text
3466 #: build/C/man7/path_resolution.7:203
3467 msgid ""
3468 "Similarly, Linux uses the fsgid (\"file system group ID\")  instead of the "
3469 "effective group ID.  See B<setfsgid>(2)."
3470 msgstr ""
3471
3472 #. type: SS
3473 #: build/C/man7/path_resolution.7:203
3474 #, no-wrap
3475 msgid "Bypassing permission checks: superuser and capabilities"
3476 msgstr ""
3477
3478 #.  (but for exec at least one x bit must be set) -- AEB
3479 #.  but there is variation across systems on this point: for
3480 #.  example, HP-UX and Tru64 are as described by AEB.  However,
3481 #.  on some implementations (e.g., Solaris, FreeBSD),
3482 #.  access(X_OK) by superuser will report success, regardless
3483 #.  of the file's execute permission bits. -- MTK (Oct 05)
3484 #. type: Plain text
3485 #: build/C/man7/path_resolution.7:214
3486 msgid ""
3487 "On a traditional UNIX system, the superuser (I<root>, user ID 0) is "
3488 "all-powerful, and bypasses all permissions restrictions when accessing "
3489 "files."
3490 msgstr ""
3491
3492 #. type: Plain text
3493 #: build/C/man7/path_resolution.7:220
3494 msgid ""
3495 "On Linux, superuser privileges are divided into capabilities (see "
3496 "B<capabilities>(7)).  Two capabilities are relevant for file permissions "
3497 "checks: B<CAP_DAC_OVERRIDE> and B<CAP_DAC_READ_SEARCH>.  (A process has "
3498 "these capabilities if its fsuid is 0.)"
3499 msgstr ""
3500
3501 #. type: Plain text
3502 #: build/C/man7/path_resolution.7:224
3503 msgid ""
3504 "The B<CAP_DAC_OVERRIDE> capability overrides all permission checking, but "
3505 "only grants execute permission when at least one of the file's three execute "
3506 "permission bits is set."
3507 msgstr ""
3508
3509 #.  FIXME say something about immutable files
3510 #.  FIXME say something about ACLs
3511 #. type: Plain text
3512 #: build/C/man7/path_resolution.7:229
3513 msgid ""
3514 "The B<CAP_DAC_READ_SEARCH> capability grants read and search permission on "
3515 "directories, and read permission on ordinary files."
3516 msgstr ""
3517
3518 #. type: Plain text
3519 #: build/C/man7/path_resolution.7:234
3520 msgid "B<readlink>(2), B<capabilities>(7), B<credentials>(7), B<symlink>(7)"
3521 msgstr ""
3522
3523 #. type: TH
3524 #: build/C/man2/removexattr.2:27
3525 #, no-wrap
3526 msgid "REMOVEXATTR"
3527 msgstr ""
3528
3529 #. type: Plain text
3530 #: build/C/man2/removexattr.2:30
3531 msgid "removexattr, lremovexattr, fremovexattr - remove an extended attribute"
3532 msgstr ""
3533
3534 #. type: Plain text
3535 #: build/C/man2/removexattr.2:39
3536 #, no-wrap
3537 msgid ""
3538 "B<int removexattr(const char\\ *>I<path>B<, const char\\ *>I<name>B<);>\n"
3539 "B<int lremovexattr(const char\\ *>I<path>B<, const char\\ *>I<name>B<);>\n"
3540 "B<int fremovexattr(int >I<fd>B<, const char\\ *>I<name>B<);>\n"
3541 msgstr ""
3542
3543 #. type: Plain text
3544 #: build/C/man2/removexattr.2:51
3545 msgid ""
3546 "Extended attributes are I<name>:value pairs associated with inodes (files, "
3547 "directories, symbolic links, etc.).  They are extensions to the normal "
3548 "attributes which are associated with all inodes in the system (i.e., the "
3549 "B<stat>(2)  data).  A complete overview of extended attributes concepts can "
3550 "be found in B<attr>(5)."
3551 msgstr ""
3552
3553 #. type: Plain text
3554 #: build/C/man2/removexattr.2:58
3555 msgid ""
3556 "B<removexattr>()  removes the extended attribute identified by I<name> and "
3557 "associated with the given I<path> in the file system."
3558 msgstr ""
3559
3560 #. type: Plain text
3561 #: build/C/man2/removexattr.2:64
3562 msgid ""
3563 "B<lremovexattr>()  is identical to B<removexattr>(), except in the case of a "
3564 "symbolic link, where the extended attribute is removed from the link itself, "
3565 "not the file that it refers to."
3566 msgstr ""
3567
3568 #. type: Plain text
3569 #: build/C/man2/removexattr.2:74
3570 msgid ""
3571 "B<fremovexattr>()  is identical to B<removexattr>(), only the extended "
3572 "attribute is removed from the open file referred to by I<fd> (as returned by "
3573 "B<open>(2))  in place of I<path>."
3574 msgstr ""
3575
3576 #. type: Plain text
3577 #: build/C/man2/removexattr.2:80
3578 msgid ""
3579 "An extended attribute name is a simple null-terminated string.  The I<name> "
3580 "includes a namespace prefix; there may be several, disjoint namespaces "
3581 "associated with an individual inode."
3582 msgstr ""
3583
3584 #. type: Plain text
3585 #: build/C/man2/removexattr.2:85 build/C/man2/setxattr.2:112
3586 msgid ""
3587 "On success, zero is returned.  On failure, -1 is returned and I<errno> is "
3588 "set appropriately."
3589 msgstr ""
3590
3591 #. type: Plain text
3592 #: build/C/man2/removexattr.2:90
3593 msgid "If the named attribute does not exist, I<errno> is set to B<ENOATTR>."
3594 msgstr ""
3595
3596 #. type: Plain text
3597 #: build/C/man2/removexattr.2:120
3598 msgid ""
3599 "B<getfattr>(1), B<setfattr>(1), B<getxattr>(2), B<listxattr>(2), B<open>(2), "
3600 "B<setxattr>(2), B<stat>(2), B<attr>(5), B<symlink>(7)"
3601 msgstr ""
3602
3603 #. type: TH
3604 #: build/C/man2/setxattr.2:27
3605 #, no-wrap
3606 msgid "SETXATTR"
3607 msgstr ""
3608
3609 #. type: TH
3610 #: build/C/man2/setxattr.2:27
3611 #, no-wrap
3612 msgid "2001-12-31"
3613 msgstr ""
3614
3615 #. type: Plain text
3616 #: build/C/man2/setxattr.2:30
3617 msgid "setxattr, lsetxattr, fsetxattr - set an extended attribute value"
3618 msgstr ""
3619
3620 #. type: Plain text
3621 #: build/C/man2/setxattr.2:42
3622 #, no-wrap
3623 msgid ""
3624 "B<int setxattr(const char\\ *>I<path>B<, const char\\ *>I<name>B<,>\n"
3625 "B<              const void\\ *>I<value>B<, size_t >I<size>B<, int "
3626 ">I<flags>B<);>\n"
3627 "B<int lsetxattr(const char\\ *>I<path>B<, const char\\ *>I<name>B<,>\n"
3628 "B<              const void\\ *>I<value>B<, size_t >I<size>B<, int "
3629 ">I<flags>B<);>\n"
3630 "B<int fsetxattr(int >I<fd>B<, const char\\ *>I<name>B<,>\n"
3631 "B<              const void\\ *>I<value>B<, size_t >I<size>B<, int "
3632 ">I<flags>B<);>\n"
3633 msgstr ""
3634
3635 #. type: Plain text
3636 #: build/C/man2/setxattr.2:69
3637 msgid ""
3638 "B<setxattr>()  sets the I<value> of the extended attribute identified by "
3639 "I<name> and associated with the given I<path> in the file system.  The "
3640 "I<size> of the I<value> must be specified."
3641 msgstr ""
3642
3643 #. type: Plain text
3644 #: build/C/man2/setxattr.2:75
3645 msgid ""
3646 "B<lsetxattr>()  is identical to B<setxattr>(), except in the case of a "
3647 "symbolic link, where the extended attribute is set on the link itself, not "
3648 "the file that it refers to."
3649 msgstr ""
3650
3651 #. type: Plain text
3652 #: build/C/man2/setxattr.2:85
3653 msgid ""
3654 "B<fsetxattr>()  is identical to B<setxattr>(), only the extended attribute "
3655 "is set on the open file referred to by I<fd> (as returned by B<open>(2))  in "
3656 "place of I<path>."
3657 msgstr ""
3658
3659 #. type: Plain text
3660 #: build/C/man2/setxattr.2:95
3661 msgid ""
3662 "An extended attribute name is a simple null-terminated string.  The I<name> "
3663 "includes a namespace prefix; there may be several, disjoint namespaces "
3664 "associated with an individual inode.  The I<value> of an extended attribute "
3665 "is a chunk of arbitrary textual or binary data of specified length."
3666 msgstr ""
3667
3668 #. type: Plain text
3669 #: build/C/man2/setxattr.2:107
3670 msgid ""
3671 "The I<flags> argument can be used to refine the semantics of the operation.  "
3672 "B<XATTR_CREATE> specifies a pure create, which fails if the named attribute "
3673 "exists already.  B<XATTR_REPLACE> specifies a pure replace operation, which "
3674 "fails if the named attribute does not already exist.  By default (no flags), "
3675 "the extended attribute will be created if need be, or will simply replace "
3676 "the value if the attribute exists."
3677 msgstr ""
3678
3679 #. type: Plain text
3680 #: build/C/man2/setxattr.2:125
3681 msgid ""
3682 "If B<XATTR_CREATE> is specified, and the attribute exists already, I<errno> "
3683 "is set to B<EEXIST>.  If B<XATTR_REPLACE> is specified, and the attribute "
3684 "does not exist, I<errno> is set to B<ENOATTR>."
3685 msgstr ""
3686
3687 #. type: Plain text
3688 #: build/C/man2/setxattr.2:133
3689 msgid ""
3690 "If there is insufficient space remaining to store the extended attribute, "
3691 "I<errno> is set to either B<ENOSPC>, or B<EDQUOT> if quota enforcement was "
3692 "the cause."
3693 msgstr ""
3694
3695 #. type: Plain text
3696 #: build/C/man2/setxattr.2:163
3697 msgid ""
3698 "B<getfattr>(1), B<setfattr>(1), B<getxattr>(2), B<listxattr>(2), B<open>(2), "
3699 "B<removexattr>(2), B<stat>(2), B<attr>(5), B<symlink>(7)"
3700 msgstr ""
3701
3702 #. type: TH
3703 #: build/C/man2/spu_create.2:24
3704 #, no-wrap
3705 msgid "SPU_CREATE"
3706 msgstr ""
3707
3708 #. type: TH
3709 #: build/C/man2/spu_create.2:24 build/C/man7/spufs.7:26
3710 #, no-wrap
3711 msgid "2007-12-20"
3712 msgstr ""
3713
3714 #. type: Plain text
3715 #: build/C/man2/spu_create.2:27
3716 msgid "spu_create - create a new spu context"
3717 msgstr ""
3718
3719 #. type: Plain text
3720 #: build/C/man2/spu_create.2:31
3721 #, no-wrap
3722 msgid ""
3723 "B<#include E<lt>sys/types.hE<gt>>\n"
3724 "B<#include E<lt>sys/spu.hE<gt>>\n"
3725 msgstr ""
3726
3727 #. type: Plain text
3728 #: build/C/man2/spu_create.2:35
3729 #, no-wrap
3730 msgid ""
3731 "B<int spu_create(const char *>I<pathname>B<, int >I<flags>B<, mode_t "
3732 ">I<mode>B<);>\n"
3733 "B<int spu_create(const char *>I<pathname>B<, int >I<flags>B<, mode_t "
3734 ">I<mode>B<,>\n"
3735 "B<               int >I<neighbor_fd>B<);>\n"
3736 msgstr ""
3737
3738 #. type: Plain text
3739 #: build/C/man2/spu_create.2:55
3740 msgid ""
3741 "The B<spu_create>()  system call is used on PowerPC machines that implement "
3742 "the Cell Broadband Engine Architecture in order to access Synergistic "
3743 "Processor Units (SPUs).  It creates a new logical context for an SPU in "
3744 "I<pathname> and returns a file descriptor associated with it.  I<pathname> "
3745 "must refer to a nonexistent directory in the mount point of the SPU file "
3746 "system (B<spufs>).  If B<spu_create>()  is successful, a directory is "
3747 "created at I<pathname> and it is populated with the files described in "
3748 "B<spufs>(7)."
3749 msgstr ""
3750
3751 #. type: Plain text
3752 #: build/C/man2/spu_create.2:74
3753 msgid ""
3754 "When a context is created, the returned file descriptor can only be passed "
3755 "to B<spu_run>(2), used as the I<dirfd> argument to the B<*at> family of "
3756 "system calls (e.g., B<openat>(2)), or closed; other operations are not "
3757 "defined.  A logical SPU context is destroyed (along with all files created "
3758 "within the context's I<pathname> directory) once the last reference to the "
3759 "context has gone; this usually occurs when the file descriptor returned by "
3760 "B<spu_create>()  is closed."
3761 msgstr ""
3762
3763 #. type: Plain text
3764 #: build/C/man2/spu_create.2:79
3765 msgid ""
3766 "The I<flags> argument can be zero or any bitwise OR-ed combination of the "
3767 "following constants:"
3768 msgstr ""
3769
3770 #. type: TP
3771 #: build/C/man2/spu_create.2:79
3772 #, no-wrap
3773 msgid "B<SPU_CREATE_EVENTS_ENABLED>"
3774 msgstr ""
3775
3776 #. type: Plain text
3777 #: build/C/man2/spu_create.2:85
3778 msgid ""
3779 "Rather than using signals for reporting DMA errors, use the I<event> "
3780 "argument to B<spu_run>(2)."
3781 msgstr ""
3782
3783 #. type: TP
3784 #: build/C/man2/spu_create.2:85
3785 #, no-wrap
3786 msgid "B<SPU_CREATE_GANG>"
3787 msgstr ""
3788
3789 #. type: Plain text
3790 #: build/C/man2/spu_create.2:93
3791 msgid ""
3792 "Create an SPU gang instead of a context.  (A gang is a group of SPU contexts "
3793 "that are functionally related to each other and which share common "
3794 "scheduling parameters\\(empriority and policy.  In the future, gang "
3795 "scheduling may be implemented causing the group to be switched in and out as "
3796 "a single unit.)"
3797 msgstr ""
3798
3799 #. type: Plain text
3800 #: build/C/man2/spu_create.2:100
3801 msgid ""
3802 "A new directory will be created at the location specified by the I<pathname> "
3803 "argument.  This gang may be used to hold other SPU contexts, by providing a "
3804 "pathname that is within the gang directory to further calls to "
3805 "B<spu_create>()."
3806 msgstr ""
3807
3808 #. type: TP
3809 #: build/C/man2/spu_create.2:100
3810 #, no-wrap
3811 msgid "B<SPU_CREATE_NOSCHED>"
3812 msgstr ""
3813
3814 #. type: Plain text
3815 #: build/C/man2/spu_create.2:106
3816 msgid ""
3817 "Create a context that is not affected by the SPU scheduler.  Once the "
3818 "context is run, it will not be scheduled out until it is destroyed by the "
3819 "creating process."
3820 msgstr ""
3821
3822 #. type: Plain text
3823 #: build/C/man2/spu_create.2:117
3824 msgid ""
3825 "Because the context cannot be removed from the SPU, some functionality is "
3826 "disabled for B<SPU_CREATE_NOSCHED> contexts.  Only a subset of the files "
3827 "will be available in this context directory in B<spufs>.  Additionally, "
3828 "B<SPU_CREATE_NOSCHED> contexts cannot dump a core file when crashing."
3829 msgstr ""
3830
3831 #. type: Plain text
3832 #: build/C/man2/spu_create.2:123
3833 msgid ""
3834 "Creating B<SPU_CREATE_NOSCHED> contexts requires the B<CAP_SYS_NICE> "
3835 "capability."
3836 msgstr ""
3837
3838 #. type: TP
3839 #: build/C/man2/spu_create.2:123
3840 #, no-wrap
3841 msgid "B<SPU_CREATE_ISOLATE>"
3842 msgstr ""
3843
3844 #. type: Plain text
3845 #: build/C/man2/spu_create.2:130
3846 msgid ""
3847 "Create an isolated SPU context.  Isolated contexts are protected from some "
3848 "PPE (PowerPC Processing Element)  operations, such as access to the SPU "
3849 "local store and the NPC register."
3850 msgstr ""
3851
3852 #. type: Plain text
3853 #: build/C/man2/spu_create.2:136
3854 msgid ""
3855 "Creating B<SPU_CREATE_ISOLATE> contexts also requires the "
3856 "B<SPU_CREATE_NOSCHED> flag."
3857 msgstr ""
3858
3859 #. type: TP
3860 #: build/C/man2/spu_create.2:136
3861 #, no-wrap
3862 msgid "B<SPU_CREATE_AFFINITY_SPU>"
3863 msgstr ""
3864
3865 #. type: Plain text
3866 #: build/C/man2/spu_create.2:144
3867 msgid ""
3868 "Create a context with affinity to another SPU context.  This affinity "
3869 "information is used within the SPU scheduling algorithm.  Using this flag "
3870 "requires that a file descriptor referring to the other SPU context be passed "
3871 "in the I<neighbor_fd> argument."
3872 msgstr ""
3873
3874 #. type: TP
3875 #: build/C/man2/spu_create.2:144
3876 #, no-wrap
3877 msgid "B<SPU_CREATE_AFFINITY_MEM>"
3878 msgstr ""
3879
3880 #. type: Plain text
3881 #: build/C/man2/spu_create.2:149
3882 msgid ""
3883 "Create a context with affinity to system memory.  This affinity information "
3884 "is used within the SPU scheduling algorithm."
3885 msgstr ""
3886
3887 #. type: Plain text
3888 #: build/C/man2/spu_create.2:161
3889 msgid ""
3890 "The I<mode> argument (minus any bits set in the process's B<umask>(2))  "
3891 "specifies the permissions used for creating the new directory in B<spufs>.  "
3892 "See B<stat>(2)  for a full list of the possible I<mode> values."
3893 msgstr ""
3894
3895 #. type: Plain text
3896 #: build/C/man2/spu_create.2:168
3897 msgid ""
3898 "On success, B<spu_create>()  returns a new file descriptor.  On error, -1 is "
3899 "returned, and I<errno> is set to one of the error codes listed below."
3900 msgstr ""
3901
3902 #. type: Plain text
3903 #: build/C/man2/spu_create.2:174
3904 msgid "The current user does not have write access to the B<spufs>(7)  mount point."
3905 msgstr ""
3906
3907 #. type: TP
3908 #: build/C/man2/spu_create.2:174
3909 #, no-wrap
3910 msgid "B<EEXIST>"
3911 msgstr ""
3912
3913 #. type: Plain text
3914 #: build/C/man2/spu_create.2:177
3915 msgid "An SPU context already exists at the given path name."
3916 msgstr ""
3917
3918 #. type: Plain text
3919 #: build/C/man2/spu_create.2:182
3920 msgid ""
3921 "I<pathname> is not a valid string pointer in the calling process's address "
3922 "space."
3923 msgstr ""
3924
3925 #. type: Plain text
3926 #: build/C/man2/spu_create.2:188
3927 msgid ""
3928 "I<pathname> is not a directory in the B<spufs>(7)  mount point, or invalid "
3929 "flags have been provided."
3930 msgstr ""
3931
3932 #. type: Plain text
3933 #: build/C/man2/spu_create.2:192
3934 msgid "Too many symbolic links were found while resolving I<pathname>."
3935 msgstr ""
3936
3937 #. type: Plain text
3938 #: build/C/man2/spu_create.2:195
3939 msgid "The process has reached its maximum open files limit."
3940 msgstr ""
3941
3942 #. type: Plain text
3943 #: build/C/man2/spu_create.2:199
3944 msgid "I<pathname> is too long."
3945 msgstr ""
3946
3947 #. type: TP
3948 #: build/C/man2/spu_create.2:199
3949 #, no-wrap
3950 msgid "B<ENFILE>"
3951 msgstr ""
3952
3953 #. type: Plain text
3954 #: build/C/man2/spu_create.2:202
3955 msgid "The system has reached the global open files limit."
3956 msgstr ""
3957
3958 #. type: Plain text
3959 #: build/C/man2/spu_create.2:206
3960 msgid ""
3961 "An isolated context was requested, but the hardware does not support SPU "
3962 "isolation."
3963 msgstr ""
3964
3965 #. type: Plain text
3966 #: build/C/man2/spu_create.2:211
3967 msgid "Part of I<pathname> could not be resolved."
3968 msgstr ""
3969
3970 #. type: Plain text
3971 #: build/C/man2/spu_create.2:214
3972 msgid "The kernel could not allocate all resources required."
3973 msgstr ""
3974
3975 #. type: TP
3976 #: build/C/man2/spu_create.2:214
3977 #, no-wrap
3978 msgid "B<ENOSPC>"
3979 msgstr ""
3980
3981 #. type: Plain text
3982 #: build/C/man2/spu_create.2:219
3983 msgid ""
3984 "There are not enough SPU resources available to create a new context or the "
3985 "user-specific limit for the number of SPU contexts has been reached."
3986 msgstr ""
3987
3988 #. type: TP
3989 #: build/C/man2/spu_create.2:219 build/C/man2/spu_run.2:179 build/C/man2/statfs.2:176 build/C/man3/statvfs.3:143 build/C/man2/ustat.2:84
3990 #, no-wrap
3991 msgid "B<ENOSYS>"
3992 msgstr ""
3993
3994 #. type: Plain text
3995 #: build/C/man2/spu_create.2:224 build/C/man2/spu_run.2:184
3996 msgid ""
3997 "The functionality is not provided by the current system, because either the "
3998 "hardware does not provide SPUs or the spufs module is not loaded."
3999 msgstr ""
4000
4001 #. type: Plain text
4002 #: build/C/man2/spu_create.2:229
4003 msgid "A part of I<pathname> is not a directory."
4004 msgstr ""
4005
4006 #. type: Plain text
4007 #: build/C/man2/spu_create.2:236
4008 msgid ""
4009 "The I<SPU_CREATE_NOSCHED> flag has been given, but the user does not have "
4010 "the B<CAP_SYS_NICE> capability."
4011 msgstr ""
4012
4013 #. type: Plain text
4014 #: build/C/man2/spu_create.2:242
4015 msgid ""
4016 "I<pathname> must point to a location beneath the mount point of B<spufs>.  "
4017 "By convention, it gets mounted in I</spu>."
4018 msgstr ""
4019
4020 #. type: Plain text
4021 #: build/C/man2/spu_create.2:246
4022 msgid "The B<spu_create>()  system call was added to Linux in kernel 2.6.16."
4023 msgstr ""
4024
4025 #. type: Plain text
4026 #: build/C/man2/spu_create.2:250
4027 msgid ""
4028 "This call is Linux-specific and only implemented on the PowerPC "
4029 "architecture.  Programs using this system call are not portable."
4030 msgstr ""
4031
4032 #. type: Plain text
4033 #: build/C/man2/spu_create.2:260
4034 msgid ""
4035 "Glibc does not provide a wrapper for this system call; call it using "
4036 "B<syscall>(2).  Note however, that B<spu_create>()  is meant to be used from "
4037 "libraries that implement a more abstract interface to SPUs, not to be used "
4038 "from regular applications.  See "
4039 "I<http://www.bsc.es/projects/deepcomputing/linuxoncell/> for the recommended "
4040 "libraries."
4041 msgstr ""
4042
4043 #. type: Plain text
4044 #: build/C/man2/spu_create.2:265
4045 msgid "See B<spu_run>(2)  for an example of the use of B<spu_create>()"
4046 msgstr ""
4047
4048 #. type: Plain text
4049 #: build/C/man2/spu_create.2:270
4050 msgid "B<close>(2), B<spu_run>(2), B<capabilities>(7), B<spufs>(7)"
4051 msgstr ""
4052
4053 #. type: TH
4054 #: build/C/man2/spu_run.2:25
4055 #, no-wrap
4056 msgid "SPU_RUN"
4057 msgstr ""
4058
4059 #. type: TH
4060 #: build/C/man2/spu_run.2:25
4061 #, no-wrap
4062 msgid "2007-11-25"
4063 msgstr ""
4064
4065 #. type: Plain text
4066 #: build/C/man2/spu_run.2:28
4067 msgid "spu_run - execute an SPU context"
4068 msgstr ""
4069
4070 #. type: Plain text
4071 #: build/C/man2/spu_run.2:31
4072 #, no-wrap
4073 msgid "B<#include E<lt>sys/spu.hE<gt>>\n"
4074 msgstr ""
4075
4076 #. type: Plain text
4077 #: build/C/man2/spu_run.2:34
4078 #, no-wrap
4079 msgid ""
4080 "B<int spu_run(int >I<fd>B<, unsigned int *>I<npc>B<, unsigned int "
4081 "*>I<event>B<);>\n"
4082 msgstr ""
4083
4084 #. type: Plain text
4085 #: build/C/man2/spu_run.2:49
4086 msgid ""
4087 "The B<spu_run>()  system call is used on PowerPC machines that implement the "
4088 "Cell Broadband Engine Architecture in order to access Synergistic Processor "
4089 "Units (SPUs).  The I<fd> argument is a file descriptor returned by "
4090 "B<spu_create>(2)  that refers to a specific SPU context.  When the context "
4091 "gets scheduled to a physical SPU, it starts execution at the instruction "
4092 "pointer passed in I<npc>."
4093 msgstr ""
4094
4095 #. type: Plain text
4096 #: build/C/man2/spu_run.2:58
4097 msgid ""
4098 "Execution of SPU code happens synchronously, meaning that B<spu_run>()  "
4099 "blocks while the SPU is still running.  If there is a need to execute SPU "
4100 "code in parallel with other code on either the main CPU or other SPUs, a new "
4101 "thread of execution must be created first (e.g., using "
4102 "B<pthread_create>(3))."
4103 msgstr ""
4104
4105 #. type: Plain text
4106 #: build/C/man2/spu_run.2:68
4107 msgid ""
4108 "When B<spu_run>()  returns, the current value of the SPU program counter is "
4109 "written to I<npc>, so successive calls to B<spu_run>()  can use the same "
4110 "I<npc> pointer."
4111 msgstr ""
4112
4113 #. type: Plain text
4114 #: build/C/man2/spu_run.2:78
4115 msgid ""
4116 "The I<event> argument provides a buffer for an extended status code.  If the "
4117 "SPU context was created with the B<SPU_CREATE_EVENTS_ENABLED> flag, then "
4118 "this buffer is populated by the Linux kernel before B<spu_run>()  returns."
4119 msgstr ""
4120
4121 #. type: Plain text
4122 #: build/C/man2/spu_run.2:80
4123 msgid "The status code may be one (or more) of the following constants:"
4124 msgstr ""
4125
4126 #. type: TP
4127 #: build/C/man2/spu_run.2:80
4128 #, no-wrap
4129 msgid "B<SPE_EVENT_DMA_ALIGNMENT>"
4130 msgstr ""
4131
4132 #. type: Plain text
4133 #: build/C/man2/spu_run.2:83
4134 msgid "A DMA alignment error occurred."
4135 msgstr ""
4136
4137 #. type: TP
4138 #: build/C/man2/spu_run.2:83
4139 #, no-wrap
4140 msgid "B<SPE_EVENT_INVALID_DMA>"
4141 msgstr ""
4142
4143 #. type: Plain text
4144 #: build/C/man2/spu_run.2:86
4145 msgid "An invalid MFC DMA command was attempted."
4146 msgstr ""
4147
4148 #. type: TP
4149 #: build/C/man2/spu_run.2:86
4150 #, no-wrap
4151 msgid "B<SPE_EVENT_SPE_DATA_STORAGE>"
4152 msgstr ""
4153
4154 #. type: Plain text
4155 #: build/C/man2/spu_run.2:89
4156 msgid "A DMA storage error occurred."
4157 msgstr ""
4158
4159 #. type: TP
4160 #: build/C/man2/spu_run.2:89
4161 #, no-wrap
4162 msgid "B<SPE_EVENT_SPE_ERROR>"
4163 msgstr ""
4164
4165 #. type: Plain text
4166 #: build/C/man2/spu_run.2:92
4167 msgid "An illegal instruction was executed."
4168 msgstr ""
4169
4170 #. type: Plain text
4171 #: build/C/man2/spu_run.2:98
4172 msgid ""
4173 "NULL is a valid value for the I<event> argument.  In this case, the events "
4174 "will not be reported to the calling process."
4175 msgstr ""
4176
4177 #. type: Plain text
4178 #: build/C/man2/spu_run.2:107
4179 msgid ""
4180 "On success, B<spu_run>()  returns the value of the I<spu_status> register.  "
4181 "On error it returns -1 and sets I<errno> to one of the error codes listed "
4182 "below."
4183 msgstr ""
4184
4185 #. type: Plain text
4186 #: build/C/man2/spu_run.2:116
4187 msgid ""
4188 "The I<spu_status> register value is a bit mask of status codes and "
4189 "optionally a 14-bit code returned from the B<stop-and-signal> instruction on "
4190 "the SPU.  The bit masks for the status codes are:"
4191 msgstr ""
4192
4193 #. type: TP
4194 #: build/C/man2/spu_run.2:116
4195 #, no-wrap
4196 msgid "B<0x02>"
4197 msgstr ""
4198
4199 #. type: Plain text
4200 #: build/C/man2/spu_run.2:121
4201 msgid "SPU was stopped by a B<stop-and-signal> instruction."
4202 msgstr ""
4203
4204 #. type: TP
4205 #: build/C/man2/spu_run.2:121
4206 #, no-wrap
4207 msgid "B<0x04>"
4208 msgstr ""
4209
4210 #. type: Plain text
4211 #: build/C/man2/spu_run.2:126
4212 msgid "SPU was stopped by a B<halt> instruction."
4213 msgstr ""
4214
4215 #. type: TP
4216 #: build/C/man2/spu_run.2:126
4217 #, no-wrap
4218 msgid "B<0x08>"
4219 msgstr ""
4220
4221 #. type: Plain text
4222 #: build/C/man2/spu_run.2:129
4223 msgid "SPU is waiting for a channel."
4224 msgstr ""
4225
4226 #. type: TP
4227 #: build/C/man2/spu_run.2:129
4228 #, no-wrap
4229 msgid "B<0x10>"
4230 msgstr ""
4231
4232 #. type: Plain text
4233 #: build/C/man2/spu_run.2:132
4234 msgid "SPU is in single-step mode."
4235 msgstr ""
4236
4237 #. type: TP
4238 #: build/C/man2/spu_run.2:132
4239 #, no-wrap
4240 msgid "B<0x20>"
4241 msgstr ""
4242
4243 #. type: Plain text
4244 #: build/C/man2/spu_run.2:135
4245 msgid "SPU has tried to execute an invalid instruction."
4246 msgstr ""
4247
4248 #. type: TP
4249 #: build/C/man2/spu_run.2:135
4250 #, no-wrap
4251 msgid "B<0x40>"
4252 msgstr ""
4253
4254 #. type: Plain text
4255 #: build/C/man2/spu_run.2:138
4256 msgid "SPU has tried to access an invalid channel."
4257 msgstr ""
4258
4259 #. type: TP
4260 #: build/C/man2/spu_run.2:138
4261 #, no-wrap
4262 msgid "B<0x3fff0000>"
4263 msgstr ""
4264
4265 #. type: Plain text
4266 #: build/C/man2/spu_run.2:144
4267 msgid ""
4268 "The bits masked with this value contain the code returned from a "
4269 "B<stop-and-signal> instruction.  These bits are only valid if the 0x02 bit "
4270 "is set."
4271 msgstr ""
4272
4273 #. type: Plain text
4274 #: build/C/man2/spu_run.2:149
4275 msgid ""
4276 "If B<spu_run>()  has not returned an error, one or more bits among the lower "
4277 "eight ones are always set."
4278 msgstr ""
4279
4280 #. type: TP
4281 #: build/C/man2/spu_run.2:150 build/C/man2/stat.2:313 build/C/man2/statfs.2:140 build/C/man3/statvfs.3:107
4282 #, no-wrap
4283 msgid "B<EBADF>"
4284 msgstr ""
4285
4286 #. type: Plain text
4287 #: build/C/man2/spu_run.2:154
4288 msgid "I<fd> is not a valid file descriptor."
4289 msgstr ""
4290
4291 #. type: Plain text
4292 #: build/C/man2/spu_run.2:160
4293 msgid ""
4294 "I<npc> is not a valid pointer, or I<event> is non-NULL and an invalid "
4295 "pointer."
4296 msgstr ""
4297
4298 #. type: TP
4299 #: build/C/man2/spu_run.2:160 build/C/man2/statfs.2:151 build/C/man3/statvfs.3:118
4300 #, no-wrap
4301 msgid "B<EINTR>"
4302 msgstr ""
4303
4304 #. type: Plain text
4305 #: build/C/man2/spu_run.2:170
4306 msgid ""
4307 "A signal occurred while B<spu_run>()  was in progress; see B<signal>(7).  "
4308 "The I<npc> value has been updated to the new program counter value if "
4309 "necessary."
4310 msgstr ""
4311
4312 #. type: Plain text
4313 #: build/C/man2/spu_run.2:175
4314 msgid "I<fd> is not a valid file descriptor returned from B<spu_create>(2)."
4315 msgstr ""
4316
4317 #. type: Plain text
4318 #: build/C/man2/spu_run.2:179
4319 msgid ""
4320 "There was not enough memory available to handle a page fault resulting from "
4321 "a Memory Flow Controller (MFC) direct memory access."
4322 msgstr ""
4323
4324 #. type: Plain text
4325 #: build/C/man2/spu_run.2:188
4326 msgid "The B<spu_run>()  system call was added to Linux in kernel 2.6.16."
4327 msgstr ""
4328
4329 #. type: Plain text
4330 #: build/C/man2/spu_run.2:192
4331 msgid ""
4332 "This call is Linux-specific and only implemented by the PowerPC "
4333 "architecture.  Programs using this system call are not portable."
4334 msgstr ""
4335
4336 #. type: Plain text
4337 #: build/C/man2/spu_run.2:202
4338 msgid ""
4339 "Glibc does not provide a wrapper for this system call; call it using "
4340 "B<syscall>(2).  Note however, that B<spu_run>()  is meant to be used from "
4341 "libraries that implement a more abstract interface to SPUs, not to be used "
4342 "from regular applications.  See "
4343 "I<http://www.bsc.es/projects/deepcomputing/linuxoncell/> for the recommended "
4344 "libraries."
4345 msgstr ""
4346
4347 #. type: Plain text
4348 #: build/C/man2/spu_run.2:207
4349 msgid ""
4350 "The following is an example of running a simple, one-instruction SPU program "
4351 "with the B<spu_run>()  system call."
4352 msgstr ""
4353
4354 #. type: Plain text
4355 #: build/C/man2/spu_run.2:215
4356 #, no-wrap
4357 msgid ""
4358 "#include E<lt>stdlib.hE<gt>\n"
4359 "#include E<lt>stdint.hE<gt>\n"
4360 "#include E<lt>unistd.hE<gt>\n"
4361 "#include E<lt>stdio.hE<gt>\n"
4362 "#include E<lt>sys/types.hE<gt>\n"
4363 "#include E<lt>fcntl.hE<gt>\n"
4364 msgstr ""
4365
4366 #. type: Plain text
4367 #: build/C/man2/spu_run.2:218
4368 #, no-wrap
4369 msgid ""
4370 "#define handle_error(msg) \\e\n"
4371 "    do { perror(msg); exit(EXIT_FAILURE); } while (0)\n"
4372 msgstr ""
4373
4374 #. type: Plain text
4375 #: build/C/man2/spu_run.2:223
4376 #, no-wrap
4377 msgid ""
4378 "int main(void)\n"
4379 "{\n"
4380 "    int context, fd, spu_status;\n"
4381 "    uint32_t instruction, npc;\n"
4382 msgstr ""
4383
4384 #. type: Plain text
4385 #: build/C/man2/spu_run.2:227
4386 #, no-wrap
4387 msgid ""
4388 "    context = spu_create(\"/spu/example-context\", 0, 0755);\n"
4389 "    if (context == -1)\n"
4390 "        handle_error(\"spu_create\");\n"
4391 msgstr ""
4392
4393 #. type: Plain text
4394 #: build/C/man2/spu_run.2:232
4395 #, no-wrap
4396 msgid ""
4397 "    /* write a \\(aqstop 0x1234\\(aq instruction to the SPU\\(aqs\n"
4398 "     * local store memory\n"
4399 "     */\n"
4400 "    instruction = 0x00001234;\n"
4401 msgstr ""
4402
4403 #. type: Plain text
4404 #: build/C/man2/spu_run.2:237
4405 #, no-wrap
4406 msgid ""
4407 "    fd = open(\"/spu/example-context/mem\", O_RDWR);\n"
4408 "    if (fd == -1)\n"
4409 "        handle_error(\"open\");\n"
4410 "    write(fd, &instruction, sizeof(instruction));\n"
4411 msgstr ""
4412
4413 #. type: Plain text
4414 #: build/C/man2/spu_run.2:243
4415 #, no-wrap
4416 msgid ""
4417 "    /* set npc to the starting instruction address of the\n"
4418 "     * SPU program. Since we wrote the instruction at the\n"
4419 "     * start of the mem file, the entry point will be 0x0\n"
4420 "     */\n"
4421 "    npc = 0;\n"
4422 msgstr ""
4423
4424 #. type: Plain text
4425 #: build/C/man2/spu_run.2:247
4426 #, no-wrap
4427 msgid ""
4428 "    spu_status = spu_run(context, &npc, NULL);\n"
4429 "    if (spu_status == -1)\n"
4430 "        handle_error(\"open\");\n"
4431 msgstr ""
4432
4433 #. type: Plain text
4434 #: build/C/man2/spu_run.2:253
4435 #, no-wrap
4436 msgid ""
4437 "    /* we should see a status code of 0x1234002:\n"
4438 "     *   0x00000002 (spu was stopped due to stop-and-signal)\n"
4439 "     * | 0x12340000 (the stop-and-signal code)\n"
4440 "     */\n"
4441 "    printf(\"SPU Status: 0x%08x\\en\", spu_status);\n"
4442 msgstr ""
4443
4444 #. type: Plain text
4445 #: build/C/man2/spu_run.2:256 build/C/man2/stat.2:648
4446 #, no-wrap
4447 msgid ""
4448 "    exit(EXIT_SUCCESS);\n"
4449 "}\n"
4450 msgstr ""
4451
4452 #. type: Plain text
4453 #: build/C/man2/spu_run.2:264
4454 msgid "B<close>(2), B<spu_create>(2), B<capabilities>(7), B<spufs>(7)"
4455 msgstr ""
4456
4457 #. type: TH
4458 #: build/C/man7/spufs.7:26
4459 #, no-wrap
4460 msgid "SPUFS"
4461 msgstr ""
4462
4463 #. type: Plain text
4464 #: build/C/man7/spufs.7:29
4465 msgid "spufs - SPU file system"
4466 msgstr ""
4467
4468 #. type: Plain text
4469 #: build/C/man7/spufs.7:33
4470 msgid ""
4471 "The SPU file system is used on PowerPC machines that implement the Cell "
4472 "Broadband Engine Architecture in order to access Synergistic Processor Units "
4473 "(SPUs)."
4474 msgstr ""
4475
4476 #. type: Plain text
4477 #: build/C/man7/spufs.7:42
4478 msgid ""
4479 "The file system provides a name space similar to POSIX shared memory or "
4480 "message queues.  Users that have write permissions on the file system can "
4481 "use B<spu_create>(2)  to establish SPU contexts under the B<spufs> root "
4482 "directory."
4483 msgstr ""
4484
4485 #. type: Plain text
4486 #: build/C/man7/spufs.7:49
4487 msgid ""
4488 "Every SPU context is represented by a directory containing a predefined set "
4489 "of files.  These files can be used for manipulating the state of the logical "
4490 "SPU.  Users can change permissions on the files, but can't add or remove "
4491 "files."
4492 msgstr ""
4493
4494 #. type: SS
4495 #: build/C/man7/spufs.7:49
4496 #, no-wrap
4497 msgid "Mount Options"
4498 msgstr ""
4499
4500 #. type: TP
4501 #: build/C/man7/spufs.7:50
4502 #, no-wrap
4503 msgid "B<uid=E<lt>uidE<gt>>"
4504 msgstr ""
4505
4506 #. type: Plain text
4507 #: build/C/man7/spufs.7:53
4508 msgid "Set the user owning the mount point; the default is 0 (root)."
4509 msgstr ""
4510
4511 #. type: TP
4512 #: build/C/man7/spufs.7:53
4513 #, no-wrap
4514 msgid "B<gid=E<lt>gidE<gt>>"
4515 msgstr ""
4516
4517 #. type: Plain text
4518 #: build/C/man7/spufs.7:56
4519 msgid "Set the group owning the mount point; the default is 0 (root)."
4520 msgstr ""
4521
4522 #. type: TP
4523 #: build/C/man7/spufs.7:56
4524 #, no-wrap
4525 msgid "B<mode=E<lt>modeE<gt>>"
4526 msgstr ""
4527
4528 #. type: Plain text
4529 #: build/C/man7/spufs.7:62
4530 msgid ""
4531 "Set the mode of the top-level directory in B<spufs>, as an octal mode "
4532 "string.  The default is 0775."
4533 msgstr ""
4534
4535 #. type: SS
4536 #: build/C/man7/spufs.7:62
4537 #, no-wrap
4538 msgid "Files"
4539 msgstr ""
4540
4541 #. type: Plain text
4542 #: build/C/man7/spufs.7:74
4543 msgid ""
4544 "The files in B<spufs> mostly follow the standard behavior for regular system "
4545 "calls like B<read>(2)  or B<write>(2), but often support only a subset of "
4546 "the operations supported on regular file systems.  This list details the "
4547 "supported operations and the deviations from the standard behavior described "
4548 "in the respective man pages."
4549 msgstr ""
4550
4551 #. type: Plain text
4552 #: build/C/man7/spufs.7:96
4553 msgid ""
4554 "All files that support the B<read>(2)  operation also support B<readv>(2)  "
4555 "and all files that support the B<write>(2)  operation also support "
4556 "B<writev>(2).  All files support the B<access>(2)  and B<stat>(2)  family of "
4557 "operations, but for the latter call, the only fields of the returned I<stat> "
4558 "structure that contain reliable information are I<st_mode>, I<st_nlink>, "
4559 "I<st_uid>, and I<st_gid>."
4560 msgstr ""
4561
4562 #. type: Plain text
4563 #: build/C/man7/spufs.7:105
4564 msgid ""
4565 "All files support the B<chmod>(2)/B<fchmod>(2)  and B<chown>(2)/B<fchown>(2)  "
4566 "operations, but will not be able to grant permissions that contradict the "
4567 "possible operations (e.g., read access on the I<wbox> file)."
4568 msgstr ""
4569
4570 #. type: Plain text
4571 #: build/C/man7/spufs.7:107
4572 msgid "The current set of files is:"
4573 msgstr ""
4574
4575 #. type: TP
4576 #: build/C/man7/spufs.7:107
4577 #, no-wrap
4578 msgid "I</capabilities>"
4579 msgstr ""
4580
4581 #. type: Plain text
4582 #: build/C/man7/spufs.7:112
4583 msgid ""
4584 "Contains a comma-delimited string representing the capabilities of this SPU "
4585 "context.  Possible capabilities are:"
4586 msgstr ""
4587
4588 #. type: TP
4589 #: build/C/man7/spufs.7:113
4590 #, no-wrap
4591 msgid "B<sched>"
4592 msgstr ""
4593
4594 #. type: Plain text
4595 #: build/C/man7/spufs.7:116
4596 msgid "This context may be scheduled."
4597 msgstr ""
4598
4599 #. type: TP
4600 #: build/C/man7/spufs.7:116
4601 #, no-wrap
4602 msgid "B<step>"
4603 msgstr ""
4604
4605 #. type: Plain text
4606 #: build/C/man7/spufs.7:119
4607 msgid "This context can be run in single-step mode, for debugging."
4608 msgstr ""
4609
4610 #. type: Plain text
4611 #: build/C/man7/spufs.7:121
4612 msgid "New capabilities flags may be added in the future."
4613 msgstr ""
4614
4615 #. type: TP
4616 #: build/C/man7/spufs.7:122
4617 #, no-wrap
4618 msgid "I</mem>"
4619 msgstr ""
4620
4621 #. type: Plain text
4622 #: build/C/man7/spufs.7:131
4623 msgid ""
4624 "the contents of the local storage memory of the SPU.  This can be accessed "
4625 "like a regular shared memory file and contains both code and data in the "
4626 "address space of the SPU.  The possible operations on an open I<mem> file "
4627 "are:"
4628 msgstr ""
4629
4630 #. type: TP
4631 #: build/C/man7/spufs.7:132
4632 #, no-wrap
4633 msgid "B<read>(2), B<pread>(2), B<write>(2), B<pwrite>(2), B<lseek>(2)"
4634 msgstr ""
4635
4636 #. type: Plain text
4637 #: build/C/man7/spufs.7:143
4638 msgid ""
4639 "These operate as usual, with the exception that B<lseek>(2), B<write>(2), "
4640 "and B<pwrite>(2)  are not supported beyond the end of the file.  The file "
4641 "size is the size of the local storage of the SPU, which is normally 256 "
4642 "kilobytes."
4643 msgstr ""
4644
4645 #. type: TP
4646 #: build/C/man7/spufs.7:143 build/C/man7/spufs.7:705 build/C/man7/spufs.7:724
4647 #, no-wrap
4648 msgid "B<mmap>(2)"
4649 msgstr ""
4650
4651 #. type: Plain text
4652 #: build/C/man7/spufs.7:152
4653 msgid ""
4654 "Mapping I<mem> into the process address space provides access to the SPU "
4655 "local storage within the process address space.  Only B<MAP_SHARED> mappings "
4656 "are allowed."
4657 msgstr ""
4658
4659 #. type: TP
4660 #: build/C/man7/spufs.7:153
4661 #, no-wrap
4662 msgid "I</regs>"
4663 msgstr ""
4664
4665 #. type: Plain text
4666 #: build/C/man7/spufs.7:160
4667 msgid ""
4668 "Contains the saved general-purpose registers of the SPU context.  This file "
4669 "contains the 128-bit values of each register, from register 0 to register "
4670 "127, in order.  This allows the general-purpose registers to be inspected "
4671 "for debugging."
4672 msgstr ""
4673
4674 #. type: Plain text
4675 #: build/C/man7/spufs.7:164
4676 msgid ""
4677 "Reading to or writing from this file requires that the context is scheduled "
4678 "out, so use of this file is not recommended in normal program operation."
4679 msgstr ""
4680
4681 #. type: Plain text
4682 #: build/C/man7/spufs.7:170
4683 msgid ""
4684 "The I<regs> file is not present on contexts that have been created with the "
4685 "B<SPU_CREATE_NOSCHED> flag."
4686 msgstr ""
4687
4688 #. type: TP
4689 #: build/C/man7/spufs.7:170
4690 #, no-wrap
4691 msgid "I</mbox>"
4692 msgstr ""
4693
4694 #. type: Plain text
4695 #: build/C/man7/spufs.7:180
4696 msgid ""
4697 "The first SPU-to-CPU communication mailbox.  This file is read-only and can "
4698 "be read in units of 4 bytes.  The file can only be used in nonblocking mode "
4699 "- even B<poll>(2)  cannot be used to block on this file.  The only possible "
4700 "operation on an open I<mbox> file is:"
4701 msgstr ""
4702
4703 #. type: TP
4704 #: build/C/man7/spufs.7:181 build/C/man7/spufs.7:221 build/C/man7/spufs.7:316 build/C/man7/spufs.7:380 build/C/man7/spufs.7:417 build/C/man7/spufs.7:462 build/C/man7/spufs.7:516 build/C/man7/spufs.7:631 build/C/man7/spufs.7:675 build/C/man7/spufs.7:753
4705 #, no-wrap
4706 msgid "B<read>(2)"
4707 msgstr ""
4708
4709 #. type: Plain text
4710 #: build/C/man7/spufs.7:199
4711 msgid ""
4712 "If I<count> is smaller than four, B<read>(2)  returns -1 and sets I<errno> "
4713 "to B<EINVAL>.  If there is no data available in the mailbox (i.e., the SPU "
4714 "has not sent a mailbox message), the return value is set to -1 and I<errno> "
4715 "is set to B<EAGAIN>.  When data has been read successfully, four bytes are "
4716 "placed in the data buffer and the value four is returned."
4717 msgstr ""
4718
4719 #. type: TP
4720 #: build/C/man7/spufs.7:200
4721 #, no-wrap
4722 msgid "I</ibox>"
4723 msgstr ""
4724
4725 #. type: Plain text
4726 #: build/C/man7/spufs.7:216
4727 msgid ""
4728 "The second SPU-to-CPU communication mailbox.  This file is similar to the "
4729 "first mailbox file, but can be read in blocking I/O mode, thus calling "
4730 "B<read>(2)  on an open I<ibox> file will block until the SPU has written "
4731 "data to its interrupt mailbox channel (unless the file has been opened with "
4732 "B<O_NONBLOCK>, see below).  Also, B<poll>(2)  and similar system calls can "
4733 "be used to monitor for the presence of mailbox data."
4734 msgstr ""
4735
4736 #. type: Plain text
4737 #: build/C/man7/spufs.7:220
4738 msgid "The possible operations on an open I<ibox> file are:"
4739 msgstr ""
4740
4741 #. type: Plain text
4742 #: build/C/man7/spufs.7:238
4743 msgid ""
4744 "If I<count> is smaller than four, B<read>(2)  returns -1 and sets I<errno> "
4745 "to B<EINVAL>.  If there is no data available in the mailbox and the file "
4746 "descriptor has been opened with B<O_NONBLOCK>, the return value is set to -1 "
4747 "and I<errno> is set to B<EAGAIN>."
4748 msgstr ""
4749
4750 #. type: Plain text
4751 #: build/C/man7/spufs.7:246
4752 msgid ""
4753 "If there is no data available in the mailbox and the file descriptor has "
4754 "been opened without B<O_NONBLOCK>, the call will block until the SPU writes "
4755 "to its interrupt mailbox channel.  When data has been read successfully, "
4756 "four bytes are placed in the data buffer and the value four is returned."
4757 msgstr ""
4758
4759 #. type: TP
4760 #: build/C/man7/spufs.7:246 build/C/man7/spufs.7:294 build/C/man7/spufs.7:684
4761 #, no-wrap
4762 msgid "B<poll>(2)"
4763 msgstr ""
4764
4765 #. type: Plain text
4766 #: build/C/man7/spufs.7:253
4767 msgid ""
4768 "Poll on the I<ibox> file returns I<(POLLIN | POLLRDNORM)> whenever data is "
4769 "available for reading."
4770 msgstr ""
4771
4772 #. type: TP
4773 #: build/C/man7/spufs.7:254
4774 #, no-wrap
4775 msgid "I</wbox>"
4776 msgstr ""
4777
4778 #. type: Plain text
4779 #: build/C/man7/spufs.7:266
4780 msgid ""
4781 "The CPU-to-SPU communication mailbox.  It is write-only and can be written "
4782 "in units of four bytes.  If the mailbox is full, B<write>(2)  will block, "
4783 "and B<poll>(2)  can be used to block until the mailbox is available for "
4784 "writing again.  The possible operations on an open I<wbox> file are:"
4785 msgstr ""
4786
4787 #. type: TP
4788 #: build/C/man7/spufs.7:267 build/C/man7/spufs.7:391 build/C/man7/spufs.7:431 build/C/man7/spufs.7:475 build/C/man7/spufs.7:526 build/C/man7/spufs.7:637 build/C/man7/spufs.7:651 build/C/man7/spufs.7:748
4789 #, no-wrap
4790 msgid "B<write>(2)"
4791 msgstr ""
4792
4793 #. type: Plain text
4794 #: build/C/man7/spufs.7:285
4795 msgid ""
4796 "If I<count> is smaller than four, B<write>(2)  returns -1 and sets I<errno> "
4797 "to B<EINVAL>.  If there is no space available in the mailbox and the file "
4798 "descriptor has been opened with B<O_NONBLOCK>, the return value is set to -1 "
4799 "and I<errno> is set to B<EAGAIN>."
4800 msgstr ""
4801
4802 #. type: Plain text
4803 #: build/C/man7/spufs.7:294
4804 msgid ""
4805 "If there is no space available in the mailbox and the file descriptor has "
4806 "been opened without B<O_NONBLOCK>, the call will block until the SPU reads "
4807 "from its PPE (PowerPC Processing Element)  mailbox channel.  When data has "
4808 "been written successfully, the system call returns four as its function "
4809 "result."
4810 msgstr ""
4811
4812 #. type: Plain text
4813 #: build/C/man7/spufs.7:301
4814 msgid ""
4815 "A poll on the I<wbox> file returns I<(POLLOUT | POLLWRNORM)> whenever space "
4816 "is available for writing."
4817 msgstr ""
4818
4819 #. type: TP
4820 #: build/C/man7/spufs.7:302
4821 #, no-wrap
4822 msgid "I</mbox_stat>, I</ibox_stat>, I</wbox_stat>"
4823 msgstr ""
4824
4825 #. type: Plain text
4826 #: build/C/man7/spufs.7:315
4827 msgid ""
4828 "These are read-only files that contain the length of the current queue of "
4829 "each mailbox, i.e., how many words can be read from I<mbox> or I<ibox> or "
4830 "how many words can be written to I<wbox> without blocking.  The files can be "
4831 "read only in four-byte units and return a big-endian binary integer number.  "
4832 "The only possible operation on an open I<*box_stat> file is:"
4833 msgstr ""
4834
4835 #. type: Plain text
4836 #: build/C/man7/spufs.7:336
4837 msgid ""
4838 "If I<count> is smaller than four, B<read>(2)  returns -1 and sets I<errno> "
4839 "to B<EINVAL>.  Otherwise, a four-byte value is placed in the data buffer.  "
4840 "This value is the number of elements that can be read from (for I<mbox_stat> "
4841 "and I<ibox_stat>)  or written to (for I<wbox_stat>)  the respective mailbox "
4842 "without blocking or returning an B<EAGAIN> error."
4843 msgstr ""
4844
4845 #. type: TP
4846 #: build/C/man7/spufs.7:337
4847 #, no-wrap
4848 msgid ""
4849 "I</npc>, I</decr>, I</decr_status>, I</spu_tag_mask>, I</event_mask>, "
4850 "I</event_status>, I</srr0>, I</lslr>"
4851 msgstr ""
4852
4853 #. type: Plain text
4854 #: build/C/man7/spufs.7:349
4855 msgid ""
4856 "Internal registers of the SPU.  These files contain an ASCII string "
4857 "representing the hex value of the specified register.  Reads and writes on "
4858 "these files (except for I<npc>, see below) require that the SPU context be "
4859 "scheduled out, so frequent access to these files is not recommended for "
4860 "normal program operation."
4861 msgstr ""
4862
4863 #. type: Plain text
4864 #: build/C/man7/spufs.7:351
4865 msgid "The contents of these files are:"
4866 msgstr ""
4867
4868 #. type: TP
4869 #: build/C/man7/spufs.7:352
4870 #, no-wrap
4871 msgid "I<npc>"
4872 msgstr ""
4873
4874 #. type: Plain text
4875 #: build/C/man7/spufs.7:355
4876 msgid "Next Program Counter - only valid when the SPU is in a stopped state."
4877 msgstr ""
4878
4879 #. type: TP
4880 #: build/C/man7/spufs.7:355
4881 #, no-wrap
4882 msgid "I<decr>"
4883 msgstr ""
4884
4885 #. type: Plain text
4886 #: build/C/man7/spufs.7:358
4887 msgid "SPU Decrementer"
4888 msgstr ""
4889
4890 #. type: TP
4891 #: build/C/man7/spufs.7:358
4892 #, no-wrap
4893 msgid "I<decr_status>"
4894 msgstr ""
4895
4896 #. type: Plain text
4897 #: build/C/man7/spufs.7:361
4898 msgid "Decrementer Status"
4899 msgstr ""
4900
4901 #. type: TP
4902 #: build/C/man7/spufs.7:361
4903 #, no-wrap
4904 msgid "I<spu_tag_mask>"
4905 msgstr ""
4906
4907 #. type: Plain text
4908 #: build/C/man7/spufs.7:364
4909 msgid "MFC tag mask for SPU DMA"
4910 msgstr ""
4911
4912 #. type: TP
4913 #: build/C/man7/spufs.7:364
4914 #, no-wrap
4915 msgid "I<event_mask>"
4916 msgstr ""
4917
4918 #. type: Plain text
4919 #: build/C/man7/spufs.7:367
4920 msgid "Event mask for SPU interrupts"
4921 msgstr ""
4922
4923 #. type: TP
4924 #: build/C/man7/spufs.7:367
4925 #, no-wrap
4926 msgid "I<event_status>"
4927 msgstr ""
4928
4929 #. type: Plain text
4930 #: build/C/man7/spufs.7:370
4931 msgid "Number of SPU events pending (read-only)"
4932 msgstr ""
4933
4934 #. type: TP
4935 #: build/C/man7/spufs.7:370
4936 #, no-wrap
4937 msgid "I<srr0>"
4938 msgstr ""
4939
4940 #. type: Plain text
4941 #: build/C/man7/spufs.7:373
4942 msgid "Interrupt Return address register"
4943 msgstr ""
4944
4945 #. type: TP
4946 #: build/C/man7/spufs.7:373
4947 #, no-wrap
4948 msgid "I<lslr>"
4949 msgstr ""
4950
4951 #. type: Plain text
4952 #: build/C/man7/spufs.7:376
4953 msgid "Local Store Limit Register"
4954 msgstr ""
4955
4956 #. type: Plain text
4957 #: build/C/man7/spufs.7:379
4958 msgid "The possible operations on these files are:"
4959 msgstr ""
4960
4961 #. type: Plain text
4962 #: build/C/man7/spufs.7:387
4963 msgid ""
4964 "Reads the current register value.  If the register value is larger than the "
4965 "buffer passed to the B<read>(2)  system call, subsequent reads will continue "
4966 "reading from the same buffer, until the end of the buffer is reached."
4967 msgstr ""
4968
4969 #. type: Plain text
4970 #: build/C/man7/spufs.7:391
4971 msgid ""
4972 "When a complete string has been read, all subsequent read operations will "
4973 "return zero bytes and a new file descriptor needs to be opened to read a new "
4974 "value."
4975 msgstr ""
4976
4977 #. type: Plain text
4978 #: build/C/man7/spufs.7:401 build/C/man7/spufs.7:536
4979 msgid ""
4980 "A B<write>(2)  operation on the file sets the register to the value given in "
4981 "the string.  The string is parsed from the beginning until the first "
4982 "nonnumeric character or the end of the buffer.  Subsequent writes to the "
4983 "same file descriptor overwrite the previous setting."
4984 msgstr ""
4985
4986 #. type: Plain text
4987 #: build/C/man7/spufs.7:408
4988 msgid ""
4989 "Except for the I<npc> file, these files are not present on contexts that "
4990 "have been created with the B<SPU_CREATE_NOSCHED> flag."
4991 msgstr ""
4992
4993 #. type: TP
4994 #: build/C/man7/spufs.7:409
4995 #, no-wrap
4996 msgid "I</fpcr>"
4997 msgstr ""
4998
4999 #. type: Plain text
5000 #: build/C/man7/spufs.7:416
5001 msgid ""
5002 "This file provides access to the Floating Point Status and Control Register "
5003 "(fcpr) as a binary, four-byte file.  The operations on the I<fpcr> file are:"
5004 msgstr ""
5005
5006 #. type: Plain text
5007 #: build/C/man7/spufs.7:431
5008 msgid ""
5009 "If I<count> is smaller than four, B<read>(2)  returns -1 and sets I<errno> "
5010 "to B<EINVAL>.  Otherwise, a four-byte value is placed in the data buffer; "
5011 "this is the current value of the I<fpcr> register."
5012 msgstr ""
5013
5014 #. type: Plain text
5015 #: build/C/man7/spufs.7:445
5016 msgid ""
5017 "If I<count> is smaller than four, B<write>(2)  returns -1 and sets I<errno> "
5018 "to B<EINVAL>.  Otherwise, a four-byte value is copied from the data buffer, "
5019 "updating the value of the I<fpcr> register."
5020 msgstr ""
5021
5022 #. type: TP
5023 #: build/C/man7/spufs.7:446
5024 #, no-wrap
5025 msgid "I</signal1>, I</signal2>"
5026 msgstr ""
5027
5028 #. type: Plain text
5029 #: build/C/man7/spufs.7:461
5030 msgid ""
5031 "The files provide access to the two signal notification channels of an SPU.  "
5032 "These are read-write files that operate on four-byte words.  Writing to one "
5033 "of these files triggers an interrupt on the SPU.  The value written to the "
5034 "signal files can be read from the SPU through a channel read or from host "
5035 "user space through the file.  After the value has been read by the SPU, it "
5036 "is reset to zero.  The possible operations on an open I<signal1> or "
5037 "I<signal2> file are:"
5038 msgstr ""
5039
5040 #. type: Plain text
5041 #: build/C/man7/spufs.7:475
5042 msgid ""
5043 "If I<count> is smaller than four, B<read>(2)  returns -1 and sets I<errno> "
5044 "to B<EINVAL>.  Otherwise, a four-byte value is placed in the data buffer; "
5045 "this is the current value of the specified signal notification register."
5046 msgstr ""
5047
5048 #. type: Plain text
5049 #: build/C/man7/spufs.7:496
5050 msgid ""
5051 "If I<count> is smaller than four, B<write>(2)  returns -1 and sets I<errno> "
5052 "to B<EINVAL>.  Otherwise, a four-byte value is copied from the data buffer, "
5053 "updating the value of the specified signal notification register.  The "
5054 "signal notification register will either be replaced with the input data or "
5055 "will be updated to the bitwise OR operation of the old value and the input "
5056 "data, depending on the contents of the I<signal1_type> or I<signal2_type> "
5057 "files respectively."
5058 msgstr ""
5059
5060 #. type: TP
5061 #: build/C/man7/spufs.7:497
5062 #, no-wrap
5063 msgid "I</signal1_type>, I</signal2_type>"
5064 msgstr ""
5065
5066 #. type: Plain text
5067 #: build/C/man7/spufs.7:515
5068 msgid ""
5069 "These two files change the behavior of the I<signal1> and I<signal2> "
5070 "notification files.  They contain a numeric ASCII string which is read as "
5071 "either \"1\" or \"0\".  In mode 0 (overwrite), the hardware replaces the "
5072 "contents of the signal channel with the data that is written to it.  In mode "
5073 "1 (logical OR), the hardware accumulates the bits that are subsequently "
5074 "written to it.  The possible operations on an open I<signal1_type> or "
5075 "I<signal2_type> file are:"
5076 msgstr ""
5077
5078 #. type: Plain text
5079 #: build/C/man7/spufs.7:526
5080 msgid ""
5081 "When the count supplied to the B<read>(2)  call is shorter than the required "
5082 "length for the digit (plus a newline character), subsequent reads from the "
5083 "same file descriptor will complete the string.  When a complete string has "
5084 "been read, all subsequent read operations will return zero bytes and a new "
5085 "file descriptor needs to be opened to read the value again."
5086 msgstr ""
5087
5088 #. type: TP
5089 #: build/C/man7/spufs.7:537
5090 #, no-wrap
5091 msgid "I</mbox_info>, I</ibox_info>, I</wbox_info>, I</dma_into>, I</proxydma_info>"
5092 msgstr ""
5093
5094 #. type: Plain text
5095 #: build/C/man7/spufs.7:556
5096 msgid ""
5097 "Read-only files that contain the saved state of the SPU mailboxes and DMA "
5098 "queues.  This allows the SPU status to be inspected, mainly for debugging.  "
5099 "The I<mbox_info> and I<ibox_info> files each contain the four-byte mailbox "
5100 "message that has been written by the SPU.  If no message has been written to "
5101 "these mailboxes, then contents of these files is undefined.  The "
5102 "I<mbox_stat>, I<ibox_stat> and I<wbox_stat> files contain the available "
5103 "message count."
5104 msgstr ""
5105
5106 #. type: Plain text
5107 #: build/C/man7/spufs.7:565
5108 msgid ""
5109 "The I<wbox_info> file contains an array of four-byte mailbox messages, which "
5110 "have been sent to the SPU.  With current CBEA machines, the array is four "
5111 "items in length, so up to 4 * 4 = 16 bytes can be read from this file.  If "
5112 "any mailbox queue entry is empty, then the bytes read at the corresponding "
5113 "location are undefined."
5114 msgstr ""
5115
5116 #. type: Plain text
5117 #: build/C/man7/spufs.7:570
5118 msgid ""
5119 "The I<dma_info> file contains the contents of the SPU MFC DMA queue, "
5120 "represented as the following structure:"
5121 msgstr ""
5122
5123 #. type: Plain text
5124 #: build/C/man7/spufs.7:581
5125 #, no-wrap
5126 msgid ""
5127 "struct spu_dma_info {\n"
5128 "    uint64_t         dma_info_type;\n"
5129 "    uint64_t         dma_info_mask;\n"
5130 "    uint64_t         dma_info_status;\n"
5131 "    uint64_t         dma_info_stall_and_notify;\n"
5132 "    uint64_t         dma_info_atomic_command_status;\n"
5133 "    struct mfc_cq_sr dma_info_command_data[16];\n"
5134 "};\n"
5135 msgstr ""
5136
5137 #. type: Plain text
5138 #: build/C/man7/spufs.7:589
5139 msgid ""
5140 "The last member of this data structure is the actual DMA queue, containing "
5141 "16 entries.  The I<mfc_cq_sr> structure is defined as:"
5142 msgstr ""
5143
5144 #. type: Plain text
5145 #: build/C/man7/spufs.7:598
5146 #, no-wrap
5147 msgid ""
5148 "struct mfc_cq_sr {\n"
5149 "    uint64_t mfc_cq_data0_RW;\n"
5150 "    uint64_t mfc_cq_data1_RW;\n"
5151 "    uint64_t mfc_cq_data2_RW;\n"
5152 "    uint64_t mfc_cq_data3_RW;\n"
5153 "};\n"
5154 msgstr ""
5155
5156 #. type: Plain text
5157 #: build/C/man7/spufs.7:606
5158 msgid ""
5159 "The I<proxydma_info> file contains similar information, but describes the "
5160 "proxy DMA queue (i.e., DMAs initiated by entities outside the SPU) instead.  "
5161 "The file is in the following format:"
5162 msgstr ""
5163
5164 #. type: Plain text
5165 #: build/C/man7/spufs.7:615
5166 #, no-wrap
5167 msgid ""
5168 "struct spu_proxydma_info {\n"
5169 "    uint64_t         proxydma_info_type;\n"
5170 "    uint64_t         proxydma_info_mask;\n"
5171 "    uint64_t         proxydma_info_status;\n"
5172 "    struct mfc_cq_sr proxydma_info_command_data[8];\n"
5173 "};\n"
5174 msgstr ""
5175
5176 #. type: Plain text
5177 #: build/C/man7/spufs.7:621
5178 msgid ""
5179 "Accessing these files requires that the SPU context is scheduled out - "
5180 "frequent use can be inefficient.  These files should not be used for normal "
5181 "program operation."
5182 msgstr ""
5183
5184 #. type: Plain text
5185 #: build/C/man7/spufs.7:625
5186 msgid ""
5187 "These files are not present on contexts that have been created with the "
5188 "B<SPU_CREATE_NOSCHED> flag."
5189 msgstr ""
5190
5191 #. type: TP
5192 #: build/C/man7/spufs.7:625
5193 #, no-wrap
5194 msgid "I</cntl>"
5195 msgstr ""
5196
5197 #. type: Plain text
5198 #: build/C/man7/spufs.7:630
5199 msgid ""
5200 "This file provides access to the SPU Run Control and SPU status registers, "
5201 "as an ASCII string.  The following operations are supported:"
5202 msgstr ""
5203
5204 #. type: Plain text
5205 #: build/C/man7/spufs.7:637
5206 msgid ""
5207 "Reads from the I<cntl> file will return an ASCII string with the hex value "
5208 "of the SPU Status register."
5209 msgstr ""
5210
5211 #. type: Plain text
5212 #: build/C/man7/spufs.7:642
5213 msgid "Writes to the I<cntl> file will set the context's SPU Run Control register."
5214 msgstr ""
5215
5216 #. type: TP
5217 #: build/C/man7/spufs.7:643
5218 #, no-wrap
5219 msgid "I</mfc>"
5220 msgstr ""
5221
5222 #. type: Plain text
5223 #: build/C/man7/spufs.7:650
5224 msgid ""
5225 "Provides access to the Memory Flow Controller of the SPU.  Reading from the "
5226 "file returns the contents of the SPU's MFC Tag Status register, and writing "
5227 "to the file initiates a DMA from the MFC.  The following operations are "
5228 "supported:"
5229 msgstr ""
5230
5231 #. type: Plain text
5232 #: build/C/man7/spufs.7:655
5233 msgid ""
5234 "Writes to this file need to be in the format of a MFC DMA command, defined "
5235 "as follows:"
5236 msgstr ""
5237
5238 #. type: Plain text
5239 #: build/C/man7/spufs.7:667
5240 #, no-wrap
5241 msgid ""
5242 "struct mfc_dma_command {\n"
5243 "    int32_t  pad;    /* reserved */\n"
5244 "    uint32_t lsa;    /* local storage address */\n"
5245 "    uint64_t ea;     /* effective address */\n"
5246 "    uint16_t size;   /* transfer size */\n"
5247 "    uint16_t tag;    /* command tag */\n"
5248 "    uint16_t class;  /* class ID */\n"
5249 "    uint16_t cmd;    /* command opcode */\n"
5250 "};\n"
5251 msgstr ""
5252
5253 #. type: Plain text
5254 #: build/C/man7/spufs.7:675
5255 msgid ""
5256 "Writes are required to be exactly I<sizeof(struct mfc_dma_command)> bytes in "
5257 "size.  The command will be sent to the SPU's MFC proxy queue, and the tag "
5258 "stored in the kernel (see below)."
5259 msgstr ""
5260
5261 #. type: Plain text
5262 #: build/C/man7/spufs.7:684
5263 msgid ""
5264 "Reads the contents of the tag status register.  If the file is opened in "
5265 "blocking mode (i.e., without B<O_NONBLOCK>), then the read will block until "
5266 "a DMA tag (as performed by a previous write) is complete.  In nonblocking "
5267 "mode, the MFC tag status register will be returned without waiting."
5268 msgstr ""
5269
5270 #. type: Plain text
5271 #: build/C/man7/spufs.7:697
5272 msgid ""
5273 "Calling B<poll>(2)  on the I<mfc> file will block until a new DMA can be "
5274 "started (by checking for B<POLLOUT>)  or until a previously started DMA (by "
5275 "checking for B<POLLIN>)  has been completed."
5276 msgstr ""
5277
5278 #. type: Plain text
5279 #: build/C/man7/spufs.7:703
5280 msgid ""
5281 "I</mss> Provides access to the MFC MultiSource Synchronization (MSS) "
5282 "facility.  By B<mmap>(2)-ing this file, processes can access the MSS area of "
5283 "the SPU."
5284 msgstr ""
5285
5286 #. type: Plain text
5287 #: build/C/man7/spufs.7:705 build/C/man7/spufs.7:723
5288 msgid "The following operations are supported:"
5289 msgstr ""
5290
5291 #. type: Plain text
5292 #: build/C/man7/spufs.7:714
5293 msgid ""
5294 "Mapping B<mss> into the process address space gives access to the SPU MSS "
5295 "area within the process address space.  Only B<MAP_SHARED> mappings are "
5296 "allowed."
5297 msgstr ""
5298
5299 #. type: TP
5300 #: build/C/man7/spufs.7:715
5301 #, no-wrap
5302 msgid "I</psmap>"
5303 msgstr ""
5304
5305 #. type: Plain text
5306 #: build/C/man7/spufs.7:721
5307 msgid ""
5308 "Provides access to the whole problem-state mapping of the SPU.  Applications "
5309 "can use this area to interface to the SPU, rather than writing to individual "
5310 "register files in B<spufs>."
5311 msgstr ""
5312
5313 #. type: Plain text
5314 #: build/C/man7/spufs.7:732
5315 msgid ""
5316 "Mapping B<psmap> gives a process a direct map of the SPU problem state "
5317 "area.  Only B<MAP_SHARED> mappings are supported."
5318 msgstr ""
5319
5320 #. type: TP
5321 #: build/C/man7/spufs.7:733
5322 #, no-wrap
5323 msgid "I</phys-id>"
5324 msgstr ""
5325
5326 #. type: Plain text
5327 #: build/C/man7/spufs.7:739
5328 msgid ""
5329 "Read-only file containing the physical SPU number that the SPU context is "
5330 "running on.  When the context is not running, this file contains the string "
5331 "\"-1\"."
5332 msgstr ""
5333
5334 #. type: Plain text
5335 #: build/C/man7/spufs.7:741
5336 msgid "The physical SPU number is given by an ASCII hex string."
5337 msgstr ""
5338
5339 #. type: TP
5340 #: build/C/man7/spufs.7:741
5341 #, no-wrap
5342 msgid "I</object-id>"
5343 msgstr ""
5344
5345 #. type: Plain text
5346 #: build/C/man7/spufs.7:747
5347 msgid ""
5348 "Allows applications to store (or retrieve) a single 64-bit ID into the "
5349 "context.  This ID is later used by profiling tools to uniquely identify the "
5350 "context."
5351 msgstr ""
5352
5353 #. type: Plain text
5354 #: build/C/man7/spufs.7:753
5355 msgid ""
5356 "By writing an ASCII hex value into this file, applications can set the "
5357 "object ID of the SPU context.  Any previous value of the object ID is "
5358 "overwritten."
5359 msgstr ""
5360
5361 #. type: Plain text
5362 #: build/C/man7/spufs.7:757
5363 msgid ""
5364 "Reading this file gives an ASCII hex string representing the object ID for "
5365 "this SPU context."
5366 msgstr ""
5367
5368 #. type: TP
5369 #: build/C/man7/spufs.7:759
5370 #, no-wrap
5371 msgid "I</etc/fstab>  entry"
5372 msgstr ""
5373
5374 #.  .SH AUTHORS
5375 #.  Arnd Bergmann <arndb@de.ibm.com>, Mark Nutter <mnutter@us.ibm.com>,
5376 #.  Ulrich Weigand <Ulrich.Weigand@de.ibm.com>, Jeremy Kerr <jk@ozlabs.org>
5377 #. type: Plain text
5378 #: build/C/man7/spufs.7:765
5379 msgid "none \t/spu \tspufs \tgid=spu \t0\t0"
5380 msgstr ""
5381
5382 #. type: Plain text
5383 #: build/C/man7/spufs.7:771
5384 msgid ""
5385 "B<close>(2), B<spu_create>(2), B<spu_run>(2), B<capabilities>(7), I<The Cell "
5386 "Broadband Engine Architecture (CBEA) specification>"
5387 msgstr ""
5388
5389 #. type: TH
5390 #: build/C/man2/stat.2:40
5391 #, no-wrap
5392 msgid "STAT"
5393 msgstr ""
5394
5395 #. type: TH
5396 #: build/C/man2/stat.2:40
5397 #, no-wrap
5398 msgid "2012-05-07"
5399 msgstr ""
5400
5401 #. type: Plain text
5402 #: build/C/man2/stat.2:43
5403 msgid "stat, fstat, lstat - get file status"
5404 msgstr ""
5405
5406 #. type: Plain text
5407 #: build/C/man2/stat.2:45
5408 msgid "B<#include E<lt>sys/types.hE<gt>>"
5409 msgstr ""
5410
5411 #. type: Plain text
5412 #: build/C/man2/stat.2:47
5413 msgid "B<#include E<lt>sys/stat.hE<gt>>"
5414 msgstr ""
5415
5416 #. type: Plain text
5417 #: build/C/man2/stat.2:49
5418 msgid "B<#include E<lt>unistd.hE<gt>>"
5419 msgstr ""
5420
5421 #. type: Plain text
5422 #: build/C/man2/stat.2:51
5423 msgid "B<int stat(const char *>I<path>B<, struct stat *>I<buf>B<);>"
5424 msgstr ""
5425
5426 #. type: Plain text
5427 #: build/C/man2/stat.2:53
5428 msgid "B<int fstat(int >I<fd>B<, struct stat *>I<buf>B<);>"
5429 msgstr ""
5430
5431 #. type: Plain text
5432 #: build/C/man2/stat.2:55
5433 msgid "B<int lstat(const char *>I<path>B<, struct stat *>I<buf>B<);>"
5434 msgstr ""
5435
5436 #. type: Plain text
5437 #: build/C/man2/stat.2:64
5438 msgid "B<lstat>():"
5439 msgstr ""
5440
5441 #. type: Plain text
5442 #: build/C/man2/stat.2:67
5443 msgid ""
5444 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
5445 "_XOPEN_SOURCE_EXTENDED"
5446 msgstr ""
5447
5448 #. type: Plain text
5449 #: build/C/man2/stat.2:69
5450 msgid "|| /* Since glibc 2.10: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
5451 msgstr ""
5452
5453 #. type: Plain text
5454 #: build/C/man2/stat.2:83
5455 msgid ""
5456 "These functions return information about a file.  No permissions are "
5457 "required on the file itself, but\\(emin the case of B<stat>()  and "
5458 "B<lstat>()  \\(em execute (search) permission is required on all of the "
5459 "directories in I<path> that lead to the file."
5460 msgstr ""
5461
5462 #. type: Plain text
5463 #: build/C/man2/stat.2:89
5464 msgid "B<stat>()  stats the file pointed to by I<path> and fills in I<buf>."
5465 msgstr ""
5466
5467 #. type: Plain text
5468 #: build/C/man2/stat.2:97
5469 msgid ""
5470 "B<lstat>()  is identical to B<stat>(), except that if I<path> is a symbolic "
5471 "link, then the link itself is stat-ed, not the file that it refers to."
5472 msgstr ""
5473
5474 #. type: Plain text
5475 #: build/C/man2/stat.2:103
5476 msgid ""
5477 "B<fstat>()  is identical to B<stat>(), except that the file to be stat-ed is "
5478 "specified by the file descriptor I<fd>."
5479 msgstr ""
5480
5481 #. type: Plain text
5482 #: build/C/man2/stat.2:107
5483 msgid ""
5484 "All of these system calls return a I<stat> structure, which contains the "
5485 "following fields:"
5486 msgstr ""
5487
5488 #. type: Plain text
5489 #: build/C/man2/stat.2:125
5490 #, no-wrap
5491 msgid ""
5492 "struct stat {\n"
5493 "    dev_t     st_dev;     /* ID of device containing file */\n"
5494 "    ino_t     st_ino;     /* inode number */\n"
5495 "    mode_t    st_mode;    /* protection */\n"
5496 "    nlink_t   st_nlink;   /* number of hard links */\n"
5497 "    uid_t     st_uid;     /* user ID of owner */\n"
5498 "    gid_t     st_gid;     /* group ID of owner */\n"
5499 "    dev_t     st_rdev;    /* device ID (if special file) */\n"
5500 "    off_t     st_size;    /* total size, in bytes */\n"
5501 "    blksize_t st_blksize; /* blocksize for file system I/O */\n"
5502 "    blkcnt_t  st_blocks;  /* number of 512B blocks allocated */\n"
5503 "    time_t    st_atime;   /* time of last access */\n"
5504 "    time_t    st_mtime;   /* time of last modification */\n"
5505 "    time_t    st_ctime;   /* time of last status change */\n"
5506 "};\n"
5507 msgstr ""
5508
5509 #. type: Plain text
5510 #: build/C/man2/stat.2:136
5511 msgid ""
5512 "The I<st_dev> field describes the device on which this file resides.  (The "
5513 "B<major>(3)  and B<minor>(3)  macros may be useful to decompose the device "
5514 "ID in this field.)"
5515 msgstr ""
5516
5517 #. type: Plain text
5518 #: build/C/man2/stat.2:140
5519 msgid "The I<st_rdev> field describes the device that this file (inode) represents."
5520 msgstr ""
5521
5522 #. type: Plain text
5523 #: build/C/man2/stat.2:147
5524 msgid ""
5525 "The I<st_size> field gives the size of the file (if it is a regular file or "
5526 "a symbolic link) in bytes.  The size of a symbolic link is the length of the "
5527 "pathname it contains, without a terminating null byte."
5528 msgstr ""
5529
5530 #. type: Plain text
5531 #: build/C/man2/stat.2:154
5532 msgid ""
5533 "The I<st_blocks> field indicates the number of blocks allocated to the file, "
5534 "512-byte units.  (This may be smaller than I<st_size>/512 when the file has "
5535 "holes.)"
5536 msgstr ""
5537
5538 #. type: Plain text
5539 #: build/C/man2/stat.2:160
5540 msgid ""
5541 "The I<st_blksize> field gives the \"preferred\" blocksize for efficient file "
5542 "system I/O.  (Writing to a file in smaller chunks may cause an inefficient "
5543 "read-modify-rewrite.)"
5544 msgstr ""
5545
5546 #. type: Plain text
5547 #: build/C/man2/stat.2:181
5548 msgid ""
5549 "Not all of the Linux file systems implement all of the time fields.  Some "
5550 "file system types allow mounting in such a way that file and/or directory "
5551 "accesses do not cause an update of the I<st_atime> field.  (See I<noatime>, "
5552 "I<nodiratime>, and I<relatime> in B<mount>(8), and related information in "
5553 "B<mount>(2).)  In addition, I<st_atime> is not updated if a file is opened "
5554 "with the B<O_NOATIME>; see B<open>(2)."
5555 msgstr ""
5556
5557 #. type: Plain text
5558 #: build/C/man2/stat.2:196
5559 msgid ""
5560 "The field I<st_atime> is changed by file accesses, for example, by "
5561 "B<execve>(2), B<mknod>(2), B<pipe>(2), B<utime>(2)  and B<read>(2)  (of more "
5562 "than zero bytes).  Other routines, like B<mmap>(2), may or may not update "
5563 "I<st_atime>."
5564 msgstr ""
5565
5566 #. type: Plain text
5567 #: build/C/man2/stat.2:215
5568 msgid ""
5569 "The field I<st_mtime> is changed by file modifications, for example, by "
5570 "B<mknod>(2), B<truncate>(2), B<utime>(2)  and B<write>(2)  (of more than "
5571 "zero bytes).  Moreover, I<st_mtime> of a directory is changed by the "
5572 "creation or deletion of files in that directory.  The I<st_mtime> field is "
5573 "I<not> changed for changes in owner, group, hard link count, or mode."
5574 msgstr ""
5575
5576 #. type: Plain text
5577 #: build/C/man2/stat.2:220
5578 msgid ""
5579 "The field I<st_ctime> is changed by writing or by setting inode information "
5580 "(i.e., owner, group, link count, mode, etc.)."
5581 msgstr ""
5582
5583 #. type: Plain text
5584 #: build/C/man2/stat.2:224
5585 msgid ""
5586 "The following POSIX macros are defined to check the file type using the "
5587 "I<st_mode> field:"
5588 msgstr ""
5589
5590 #. type: TP
5591 #: build/C/man2/stat.2:225
5592 #, no-wrap
5593 msgid "B<S_ISREG>(m)"
5594 msgstr ""
5595
5596 #. type: Plain text
5597 #: build/C/man2/stat.2:228
5598 msgid "is it a regular file?"
5599 msgstr ""
5600
5601 #. type: TP
5602 #: build/C/man2/stat.2:228
5603 #, no-wrap
5604 msgid "B<S_ISDIR>(m)"
5605 msgstr ""
5606
5607 #. type: Plain text
5608 #: build/C/man2/stat.2:231
5609 msgid "directory?"
5610 msgstr ""
5611
5612 #. type: TP
5613 #: build/C/man2/stat.2:231
5614 #, no-wrap
5615 msgid "B<S_ISCHR>(m)"
5616 msgstr ""
5617
5618 #. type: Plain text
5619 #: build/C/man2/stat.2:234
5620 msgid "character device?"
5621 msgstr ""
5622
5623 #. type: TP
5624 #: build/C/man2/stat.2:234
5625 #, no-wrap
5626 msgid "B<S_ISBLK>(m)"
5627 msgstr ""
5628
5629 #. type: Plain text
5630 #: build/C/man2/stat.2:237
5631 msgid "block device?"
5632 msgstr ""
5633
5634 #. type: TP
5635 #: build/C/man2/stat.2:237
5636 #, no-wrap
5637 msgid "B<S_ISFIFO>(m)"
5638 msgstr ""
5639
5640 #. type: Plain text
5641 #: build/C/man2/stat.2:240
5642 msgid "FIFO (named pipe)?"
5643 msgstr ""
5644
5645 #. type: TP
5646 #: build/C/man2/stat.2:240
5647 #, no-wrap
5648 msgid "B<S_ISLNK>(m)"
5649 msgstr ""
5650
5651 #. type: Plain text
5652 #: build/C/man2/stat.2:243
5653 msgid "symbolic link? (Not in POSIX.1-1996.)"
5654 msgstr ""
5655
5656 #. type: TP
5657 #: build/C/man2/stat.2:243
5658 #, no-wrap
5659 msgid "B<S_ISSOCK>(m)"
5660 msgstr ""
5661
5662 #. type: Plain text
5663 #: build/C/man2/stat.2:246
5664 msgid "socket? (Not in POSIX.1-1996.)"
5665 msgstr ""
5666
5667 #. type: Plain text
5668 #: build/C/man2/stat.2:251
5669 msgid "The following flags are defined for the I<st_mode> field:"
5670 msgstr ""
5671
5672 #. type: tbl table
5673 #: build/C/man2/stat.2:254
5674 #, no-wrap
5675 msgid "S_IFMT\t0170000\tbit mask for the file type bit fields\n"
5676 msgstr ""
5677
5678 #. type: tbl table
5679 #: build/C/man2/stat.2:255
5680 #, no-wrap
5681 msgid "S_IFSOCK\t0140000\tsocket\n"
5682 msgstr ""
5683
5684 #. type: tbl table
5685 #: build/C/man2/stat.2:256
5686 #, no-wrap
5687 msgid "S_IFLNK\t0120000\tsymbolic link\n"
5688 msgstr ""
5689
5690 #. type: tbl table
5691 #: build/C/man2/stat.2:257
5692 #, no-wrap
5693 msgid "S_IFREG\t0100000\tregular file\n"
5694 msgstr ""
5695
5696 #. type: tbl table
5697 #: build/C/man2/stat.2:258
5698 #, no-wrap
5699 msgid "S_IFBLK\t0060000\tblock device\n"
5700 msgstr ""
5701
5702 #. type: tbl table
5703 #: build/C/man2/stat.2:259
5704 #, no-wrap
5705 msgid "S_IFDIR\t0040000\tdirectory\n"
5706 msgstr ""
5707
5708 #. type: tbl table
5709 #: build/C/man2/stat.2:260
5710 #, no-wrap
5711 msgid "S_IFCHR\t0020000\tcharacter device\n"
5712 msgstr ""
5713
5714 #. type: tbl table
5715 #: build/C/man2/stat.2:261
5716 #, no-wrap
5717 msgid "S_IFIFO\t0010000\tFIFO\n"
5718 msgstr ""
5719
5720 #. type: tbl table
5721 #: build/C/man2/stat.2:262
5722 #, no-wrap
5723 msgid "S_ISUID\t0004000\tset UID bit\n"
5724 msgstr ""
5725
5726 #. type: tbl table
5727 #: build/C/man2/stat.2:263
5728 #, no-wrap
5729 msgid "S_ISGID\t0002000\tset-group-ID bit (see below)\n"
5730 msgstr ""
5731
5732 #. type: tbl table
5733 #: build/C/man2/stat.2:264
5734 #, no-wrap
5735 msgid "S_ISVTX\t0001000\tsticky bit (see below)\n"
5736 msgstr ""
5737
5738 #. type: tbl table
5739 #: build/C/man2/stat.2:265
5740 #, no-wrap
5741 msgid "S_IRWXU\t00700\tmask for file owner permissions\n"
5742 msgstr ""
5743
5744 #. type: tbl table
5745 #: build/C/man2/stat.2:266
5746 #, no-wrap
5747 msgid "S_IRUSR\t00400\towner has read permission\n"
5748 msgstr ""
5749
5750 #. type: tbl table
5751 #: build/C/man2/stat.2:267
5752 #, no-wrap
5753 msgid "S_IWUSR\t00200\towner has write permission\n"
5754 msgstr ""
5755
5756 #. type: tbl table
5757 #: build/C/man2/stat.2:268
5758 #, no-wrap
5759 msgid "S_IXUSR\t00100\towner has execute permission\n"
5760 msgstr ""
5761
5762 #. type: tbl table
5763 #: build/C/man2/stat.2:269
5764 #, no-wrap
5765 msgid "S_IRWXG\t00070\tmask for group permissions\n"
5766 msgstr ""
5767
5768 #. type: tbl table
5769 #: build/C/man2/stat.2:270
5770 #, no-wrap
5771 msgid "S_IRGRP\t00040\tgroup has read permission\n"
5772 msgstr ""
5773
5774 #. type: tbl table
5775 #: build/C/man2/stat.2:271
5776 #, no-wrap
5777 msgid "S_IWGRP\t00020\tgroup has write permission\n"
5778 msgstr ""
5779
5780 #. type: tbl table
5781 #: build/C/man2/stat.2:272
5782 #, no-wrap
5783 msgid "S_IXGRP\t00010\tgroup has execute permission\n"
5784 msgstr ""
5785
5786 #. type: tbl table
5787 #: build/C/man2/stat.2:273
5788 #, no-wrap
5789 msgid "S_IRWXO\t00007\tmask for permissions for others (not in group)\n"
5790 msgstr ""
5791
5792 #. type: tbl table
5793 #: build/C/man2/stat.2:274
5794 #, no-wrap
5795 msgid "S_IROTH\t00004\tothers have read permission\n"
5796 msgstr ""
5797
5798 #. type: tbl table
5799 #: build/C/man2/stat.2:275
5800 #, no-wrap
5801 msgid "S_IWOTH\t00002\tothers have write permission\n"
5802 msgstr ""
5803
5804 #. type: tbl table
5805 #: build/C/man2/stat.2:276
5806 #, no-wrap
5807 msgid "S_IXOTH\t00001\tothers have execute permission\n"
5808 msgstr ""
5809
5810 #. type: Plain text
5811 #: build/C/man2/stat.2:293
5812 msgid ""
5813 "The set-group-ID bit (B<S_ISGID>)  has several special uses.  For a "
5814 "directory it indicates that BSD semantics is to be used for that directory: "
5815 "files created there inherit their group ID from the directory, not from the "
5816 "effective group ID of the creating process, and directories created there "
5817 "will also get the B<S_ISGID> bit set.  For a file that does not have the "
5818 "group execution bit (B<S_IXGRP>)  set, the set-group-ID bit indicates "
5819 "mandatory file/record locking."
5820 msgstr ""
5821
5822 #. type: Plain text
5823 #: build/C/man2/stat.2:300
5824 msgid ""
5825 "The sticky bit (B<S_ISVTX>)  on a directory means that a file in that "
5826 "directory can be renamed or deleted only by the owner of the file, by the "
5827 "owner of the directory, and by a privileged process."
5828 msgstr ""
5829
5830 #. type: Plain text
5831 #: build/C/man2/stat.2:313
5832 msgid ""
5833 "Search permission is denied for one of the directories in the path prefix of "
5834 "I<path>.  (See also B<path_resolution>(7).)"
5835 msgstr ""
5836
5837 #. type: Plain text
5838 #: build/C/man2/stat.2:317
5839 msgid "I<fd> is bad."
5840 msgstr ""
5841
5842 #. type: Plain text
5843 #: build/C/man2/stat.2:320
5844 msgid "Bad address."
5845 msgstr ""
5846
5847 #. type: Plain text
5848 #: build/C/man2/stat.2:323
5849 msgid "Too many symbolic links encountered while traversing the path."
5850 msgstr ""
5851
5852 #. type: Plain text
5853 #: build/C/man2/stat.2:327
5854 msgid "I<path> is too long."
5855 msgstr ""
5856
5857 #. type: Plain text
5858 #: build/C/man2/stat.2:334
5859 msgid "A component of I<path> does not exist, or I<path> is an empty string."
5860 msgstr ""
5861
5862 #. type: Plain text
5863 #: build/C/man2/stat.2:337
5864 msgid "Out of memory (i.e., kernel memory)."
5865 msgstr ""
5866
5867 #. type: Plain text
5868 #: build/C/man2/stat.2:342
5869 msgid "A component of the path prefix of I<path> is not a directory."
5870 msgstr ""
5871
5872 #. type: TP
5873 #: build/C/man2/stat.2:342 build/C/man2/statfs.2:185 build/C/man3/statvfs.3:152
5874 #, no-wrap
5875 msgid "B<EOVERFLOW>"
5876 msgstr ""
5877
5878 #. type: Plain text
5879 #: build/C/man2/stat.2:355
5880 msgid ""
5881 "(B<stat>())  I<path> refers to a file whose size cannot be represented in "
5882 "the type I<off_t>.  This can occur when an application compiled on a 32-bit "
5883 "platform without I<-D_FILE_OFFSET_BITS=64> calls B<stat>()  on a file whose "
5884 "size exceeds I<(1E<lt>E<lt>31)-1> bits."
5885 msgstr ""
5886
5887 #.  SVr4 documents additional
5888 #.  .BR fstat ()
5889 #.  error conditions EINTR, ENOLINK, and EOVERFLOW.  SVr4
5890 #.  documents additional
5891 #.  .BR stat ()
5892 #.  and
5893 #.  .BR lstat ()
5894 #.  error conditions EINTR, EMULTIHOP, ENOLINK, and EOVERFLOW.
5895 #. type: Plain text
5896 #: build/C/man2/stat.2:365
5897 msgid "These system calls conform to SVr4, 4.3BSD, POSIX.1-2001."
5898 msgstr ""
5899
5900 #. type: Plain text
5901 #: build/C/man2/stat.2:379
5902 msgid ""
5903 "According to POSIX.1-2001, B<lstat>()  on a symbolic link need return valid "
5904 "information only in the I<st_size> field and the file-type component of the "
5905 "I<st_mode> field of the I<stat> structure.  POSIX.-2008 tightens the "
5906 "specification, requiring B<lstat>()  to return valid information in all "
5907 "fields except the permission bits in I<st_mode>."
5908 msgstr ""
5909
5910 #. type: Plain text
5911 #: build/C/man2/stat.2:399
5912 msgid ""
5913 "Use of the I<st_blocks> and I<st_blksize> fields may be less portable.  "
5914 "(They were introduced in BSD.  The interpretation differs between systems, "
5915 "and possibly on a single system when NFS mounts are involved.)  If you need "
5916 "to obtain the definition of the I<blkcnt_t> or I<blksize_t> types from "
5917 "I<E<lt>sys/stat.hE<gt>>, then define B<_XOPEN_SOURCE> with the value 500 or "
5918 "greater (before including I<any> header files)."
5919 msgstr ""
5920
5921 #. type: Plain text
5922 #: build/C/man2/stat.2:417
5923 msgid ""
5924 "POSIX.1-1990 did not describe the B<S_IFMT>, B<S_IFSOCK>, B<S_IFLNK>, "
5925 "B<S_IFREG>, B<S_IFBLK>, B<S_IFDIR>, B<S_IFCHR>, B<S_IFIFO>, B<S_ISVTX> "
5926 "constants, but instead demanded the use of the macros B<S_ISDIR>(), etc.  "
5927 "The B<S_IF*> constants are present in POSIX.1-2011 and later."
5928 msgstr ""
5929
5930 #. type: Plain text
5931 #: build/C/man2/stat.2:425
5932 msgid ""
5933 "The B<S_ISLNK>()  and B<S_ISSOCK>()  macros are not in POSIX.1-1996, but "
5934 "both are present in POSIX.1-2001; the former is from SVID 4, the latter from "
5935 "SUSv2."
5936 msgstr ""
5937
5938 #. type: Plain text
5939 #: build/C/man2/stat.2:435
5940 msgid ""
5941 "UNIX V7 (and later systems) had B<S_IREAD>, B<S_IWRITE>, B<S_IEXEC>, where "
5942 "POSIX prescribes the synonyms B<S_IRUSR>, B<S_IWUSR>, B<S_IXUSR>."
5943 msgstr ""
5944
5945 #. type: SS
5946 #: build/C/man2/stat.2:435
5947 #, no-wrap
5948 msgid "Other Systems"
5949 msgstr ""
5950
5951 #. type: Plain text
5952 #: build/C/man2/stat.2:437
5953 msgid "Values that have been (or are) in use on various systems:"
5954 msgstr ""
5955
5956 #. type: tbl table
5957 #: build/C/man2/stat.2:440
5958 #, no-wrap
5959 msgid "hex\tname\tls\toctal\tdescription\n"
5960 msgstr ""
5961
5962 #. type: tbl table
5963 #: build/C/man2/stat.2:441
5964 #, no-wrap
5965 msgid "f000\tS_IFMT\t\t170000\tmask for file type\n"
5966 msgstr ""
5967
5968 #. type: tbl table
5969 #: build/C/man2/stat.2:442
5970 #, no-wrap
5971 msgid "0000\t\t\t000000\tT{\n"
5972 msgstr ""
5973
5974 #. type: tbl table
5975 #: build/C/man2/stat.2:443
5976 #, no-wrap
5977 msgid "SCO out-of-service inode; BSD unknown type; SVID-v2 and XPG2\n"
5978 msgstr ""
5979
5980 #. type: tbl table
5981 #: build/C/man2/stat.2:444
5982 #, no-wrap
5983 msgid "have both 0 and 0100000 for ordinary file\n"
5984 msgstr ""
5985
5986 #. type: tbl table
5987 #: build/C/man2/stat.2:445 build/C/man2/stat.2:453 build/C/man2/stat.2:464 build/C/man2/stat.2:476 build/C/man2/stat.2:481 build/C/man2/stat.2:484 build/C/man2/stat.2:488
5988 #, no-wrap
5989 msgid "T}\n"
5990 msgstr ""
5991
5992 #. type: tbl table
5993 #: build/C/man2/stat.2:446
5994 #, no-wrap
5995 msgid "1000\tS_IFIFO\tp|\t010000\tFIFO (named pipe)\n"
5996 msgstr ""
5997
5998 #. type: tbl table
5999 #: build/C/man2/stat.2:447
6000 #, no-wrap
6001 msgid "2000\tS_IFCHR\tc\t020000\tcharacter special (V7)\n"
6002 msgstr ""
6003
6004 #. type: tbl table
6005 #: build/C/man2/stat.2:448
6006 #, no-wrap
6007 msgid "3000\tS_IFMPC\t\t030000\tmultiplexed character special (V7)\n"
6008 msgstr ""
6009
6010 #. type: tbl table
6011 #: build/C/man2/stat.2:449
6012 #, no-wrap
6013 msgid "4000\tS_IFDIR\td/\t040000\tdirectory (V7)\n"
6014 msgstr ""
6015
6016 #. type: tbl table
6017 #: build/C/man2/stat.2:450
6018 #, no-wrap
6019 msgid "5000\tS_IFNAM\t\t050000\tT{\n"
6020 msgstr ""
6021
6022 #. type: tbl table
6023 #: build/C/man2/stat.2:451
6024 #, no-wrap
6025 msgid "XENIX named special file with two subtypes, distinguished by\n"
6026 msgstr ""
6027
6028 #. type: tbl table
6029 #: build/C/man2/stat.2:452
6030 #, no-wrap
6031 msgid "I<st_rdev> values 1, 2\n"
6032 msgstr ""
6033
6034 #. type: tbl table
6035 #: build/C/man2/stat.2:454
6036 #, no-wrap
6037 msgid "0001\tS_INSEM\ts\t000001\tXENIX semaphore subtype of IFNAM\n"
6038 msgstr ""
6039
6040 #. type: tbl table
6041 #: build/C/man2/stat.2:455
6042 #, no-wrap
6043 msgid "0002\tS_INSHD\tm\t000002\tXENIX shared data subtype of IFNAM\n"
6044 msgstr ""
6045
6046 #. type: tbl table
6047 #: build/C/man2/stat.2:456
6048 #, no-wrap
6049 msgid "6000\tS_IFBLK\tb\t060000\tblock special (V7)\n"
6050 msgstr ""
6051
6052 #. type: tbl table
6053 #: build/C/man2/stat.2:457
6054 #, no-wrap
6055 msgid "7000\tS_IFMPB\t\t070000\tmultiplexed block special (V7)\n"
6056 msgstr ""
6057
6058 #. type: tbl table
6059 #: build/C/man2/stat.2:458
6060 #, no-wrap
6061 msgid "8000\tS_IFREG\t-\t100000\tregular (V7)\n"
6062 msgstr ""
6063
6064 #. type: tbl table
6065 #: build/C/man2/stat.2:459
6066 #, no-wrap
6067 msgid "9000\tS_IFCMP\t\t110000\tVxFS compressed\n"
6068 msgstr ""
6069
6070 #. type: tbl table
6071 #: build/C/man2/stat.2:460
6072 #, no-wrap
6073 msgid "9000\tS_IFNWK\tn\t110000\tnetwork special (HP-UX)\n"
6074 msgstr ""
6075
6076 #. type: tbl table
6077 #: build/C/man2/stat.2:461
6078 #, no-wrap
6079 msgid "a000\tS_IFLNK\tl@\t120000\tsymbolic link (BSD)\n"
6080 msgstr ""
6081
6082 #. type: tbl table
6083 #: build/C/man2/stat.2:462
6084 #, no-wrap
6085 msgid "b000\tS_IFSHAD\t\t130000\tT{\n"
6086 msgstr ""
6087
6088 #. type: tbl table
6089 #: build/C/man2/stat.2:463
6090 #, no-wrap
6091 msgid "Solaris shadow inode for ACL (not seen by userspace)\n"
6092 msgstr ""
6093
6094 #. type: tbl table
6095 #: build/C/man2/stat.2:465
6096 #, no-wrap
6097 msgid "c000\tS_IFSOCK\ts=\t140000\tsocket (BSD; also \"S_IFSOC\" on VxFS)\n"
6098 msgstr ""
6099
6100 #. type: tbl table
6101 #: build/C/man2/stat.2:466
6102 #, no-wrap
6103 msgid "d000\tS_IFDOOR\tDE<gt>\t150000\tSolaris door\n"
6104 msgstr ""
6105
6106 #. type: tbl table
6107 #: build/C/man2/stat.2:467
6108 #, no-wrap
6109 msgid "e000\tS_IFWHT\tw%\t160000\tBSD whiteout (not used for inode)\n"
6110 msgstr ""
6111
6112 #. type: tbl table
6113 #: build/C/man2/stat.2:468
6114 #, no-wrap
6115 msgid "0200\tS_ISVTX\t\t001000\tT{\n"
6116 msgstr ""
6117
6118 #. type: tbl table
6119 #: build/C/man2/stat.2:469
6120 #, no-wrap
6121 msgid "sticky bit: save swapped text even after use (V7)\n"
6122 msgstr ""
6123
6124 #. type: tbl table
6125 #: build/C/man2/stat.2:470 build/C/man2/stat.2:472 build/C/man2/stat.2:474 build/C/man2/stat.2:479
6126 #, no-wrap
6127 msgid ".br\n"
6128 msgstr ""
6129
6130 #. type: tbl table
6131 #: build/C/man2/stat.2:471
6132 #, no-wrap
6133 msgid "reserved (SVID-v2)\n"
6134 msgstr ""
6135
6136 #. type: tbl table
6137 #: build/C/man2/stat.2:473
6138 #, no-wrap
6139 msgid "On nondirectories: don't cache this file (SunOS)\n"
6140 msgstr ""
6141
6142 #. type: tbl table
6143 #: build/C/man2/stat.2:475
6144 #, no-wrap
6145 msgid "On directories: restricted deletion flag (SVID-v4.2)\n"
6146 msgstr ""
6147
6148 #. type: tbl table
6149 #: build/C/man2/stat.2:477
6150 #, no-wrap
6151 msgid "0400\tS_ISGID\t\t002000\tT{\n"
6152 msgstr ""
6153
6154 #. type: tbl table
6155 #: build/C/man2/stat.2:478
6156 #, no-wrap
6157 msgid "set-group-ID on execution (V7)\n"
6158 msgstr ""
6159
6160 #. type: tbl table
6161 #: build/C/man2/stat.2:480
6162 #, no-wrap
6163 msgid "for directories: use BSD semantics for propagation of GID\n"
6164 msgstr ""
6165
6166 #. type: tbl table
6167 #: build/C/man2/stat.2:482
6168 #, no-wrap
6169 msgid "0400\tS_ENFMT\t\t002000\tT{\n"
6170 msgstr ""
6171
6172 #. type: tbl table
6173 #: build/C/man2/stat.2:483
6174 #, no-wrap
6175 msgid "System V file locking enforcement (shared with S_ISGID)\n"
6176 msgstr ""
6177
6178 #. type: tbl table
6179 #: build/C/man2/stat.2:485
6180 #, no-wrap
6181 msgid "0800\tS_ISUID\t\t004000\tset-user-ID on execution (V7)\n"
6182 msgstr ""
6183
6184 #. type: tbl table
6185 #: build/C/man2/stat.2:486
6186 #, no-wrap
6187 msgid "0800\tS_CDF\t\t004000\tT{\n"
6188 msgstr ""
6189
6190 #. type: tbl table
6191 #: build/C/man2/stat.2:487
6192 #, no-wrap
6193 msgid "directory is a context dependent file (HP-UX)\n"
6194 msgstr ""
6195
6196 #. type: Plain text
6197 #: build/C/man2/stat.2:493
6198 msgid "A sticky command appeared in Version 32V AT&T UNIX."
6199 msgstr ""
6200
6201 #.  As at kernel 2.6.25, XFS and JFS support nanosecond timestamps,
6202 #.  but ext2, ext3, and Reiserfs do not.
6203 #. type: Plain text
6204 #: build/C/man2/stat.2:517
6205 msgid ""
6206 "Since kernel 2.5.48, the I<stat> structure supports nanosecond resolution "
6207 "for the three file timestamp fields.  Glibc exposes the nanosecond component "
6208 "of each field using names of the form I<st_atim.tv_nsec> if the "
6209 "B<_BSD_SOURCE> or B<_SVID_SOURCE> feature test macro is defined.  These "
6210 "fields are specified in POSIX.1-2008, and, starting with version 2.12, glibc "
6211 "also exposes these field names if B<_POSIX_C_SOURCE> is defined with the "
6212 "value 200809L or greater, or B<_XOPEN_SOURCE> is defined with the value 700 "
6213 "or greater.  If none of the aforementioned macros are defined, then the "
6214 "nanosecond values are exposed with names of the form I<st_atimensec>.  On "
6215 "file systems that do not support subsecond timestamps, the nanosecond fields "
6216 "are returned with the value 0."
6217 msgstr ""
6218
6219 #. type: Plain text
6220 #: build/C/man2/stat.2:524
6221 msgid ""
6222 "On Linux, B<lstat>()  will generally not trigger automounter action, whereas "
6223 "B<stat>()  will (but see B<fstatat>(2))."
6224 msgstr ""
6225
6226 #. type: Plain text
6227 #: build/C/man2/stat.2:532
6228 msgid ""
6229 "For most files under the I</proc> directory, B<stat>()  does not return the "
6230 "file size in the I<st_size> field; instead the field is returned with the "
6231 "value 0."
6232 msgstr ""
6233
6234 #. type: SS
6235 #: build/C/man2/stat.2:532
6236 #, no-wrap
6237 msgid "Underlying kernel interface"
6238 msgstr ""
6239
6240 #
6241 #.  A note from Andries Brouwer, July 2007
6242 #
6243 #.  > Is the story not rather more complicated for some calls like
6244 #.  > stat(2)?
6245 #
6246 #.  Yes and no, mostly no. See /usr/include/sys/stat.h .
6247 #
6248 #.  The idea is here not so much that syscalls change, but that
6249 #.  the definitions of struct stat and of the types dev_t and mode_t change.
6250 #.  This means that libc (even if it does not call the kernel
6251 #.  but only calls some internal function) must know what the
6252 #.  format of dev_t or of struct stat is.
6253 #.  The communication between the application and libc goes via
6254 #.  the include file <sys/stat.h> that defines a _STAT_VER and
6255 #.  _MKNOD_VER describing the layout of the data that user space
6256 #.  uses. Each (almost each) occurrence of stat() is replaced by
6257 #.  an occurrence of xstat() where the first parameter of xstat()
6258 #.  is this version number _STAT_VER.
6259 #
6260 #.  Now, also the definitions used by the kernel change.
6261 #.  But glibc copes with this in the standard way, and the
6262 #.  struct stat as returned by the kernel is repacked into
6263 #.  the struct stat as expected by the application.
6264 #.  Thus, _STAT_VER and this setup cater for the application-libc
6265 #.  interface, rather than the libc-kernel interface.
6266 #
6267 #.  (Note that the details depend on gcc being used as c compiler.)
6268 #. type: Plain text
6269 #: build/C/man2/stat.2:584
6270 msgid ""
6271 "Over time, increases in the size of the I<stat> structure have led to three "
6272 "successive versions of B<stat>(): I<sys_stat>()  (slot I<__NR_oldstat>), "
6273 "I<sys_newstat>()  (slot I<__NR_stat>), and I<sys_stat64()> (new in kernel "
6274 "2.4; slot I<__NR_stat64>).  The glibc B<stat>()  wrapper function hides "
6275 "these details from applications, invoking the most recent version of the "
6276 "system call provided by the kernel, and repacking the returned information "
6277 "if required for old binaries.  Similar remarks apply for B<fstat>()  and "
6278 "B<lstat>()."
6279 msgstr ""
6280
6281 #. type: Plain text
6282 #: build/C/man2/stat.2:590
6283 msgid ""
6284 "The following program calls B<stat>()  and displays selected fields in the "
6285 "returned I<stat> structure."
6286 msgstr ""
6287
6288 #. type: Plain text
6289 #: build/C/man2/stat.2:597
6290 #, no-wrap
6291 msgid ""
6292 "#include E<lt>sys/types.hE<gt>\n"
6293 "#include E<lt>sys/stat.hE<gt>\n"
6294 "#include E<lt>time.hE<gt>\n"
6295 "#include E<lt>stdio.hE<gt>\n"
6296 "#include E<lt>stdlib.hE<gt>\n"
6297 msgstr ""
6298
6299 #. type: Plain text
6300 #: build/C/man2/stat.2:602
6301 #, no-wrap
6302 msgid ""
6303 "int\n"
6304 "main(int argc, char *argv[])\n"
6305 "{\n"
6306 "    struct stat sb;\n"
6307 msgstr ""
6308
6309 #. type: Plain text
6310 #: build/C/man2/stat.2:607
6311 #, no-wrap
6312 msgid ""
6313 "    if (argc != 2) {\n"
6314 "        fprintf(stderr, \"Usage: %s E<lt>pathnameE<gt>\\en\", argv[0]);\n"
6315 "        exit(EXIT_FAILURE);\n"
6316 "    }\n"
6317 msgstr ""
6318
6319 #. type: Plain text
6320 #: build/C/man2/stat.2:612
6321 #, no-wrap
6322 msgid ""
6323 "    if (stat(argv[1], &sb) == -1) {\n"
6324 "        perror(\"stat\");\n"
6325 "        exit(EXIT_FAILURE);\n"
6326 "    }\n"
6327 msgstr ""
6328
6329 #. type: Plain text
6330 #: build/C/man2/stat.2:614
6331 #, no-wrap
6332 msgid "    printf(\"File type:                \");\n"
6333 msgstr ""
6334
6335 #. type: Plain text
6336 #: build/C/man2/stat.2:625
6337 #, no-wrap
6338 msgid ""
6339 "    switch (sb.st_mode & S_IFMT) {\n"
6340 "    case S_IFBLK:  printf(\"block device\\en\");            break;\n"
6341 "    case S_IFCHR:  printf(\"character device\\en\");        break;\n"
6342 "    case S_IFDIR:  printf(\"directory\\en\");               break;\n"
6343 "    case S_IFIFO:  printf(\"FIFO/pipe\\en\");               break;\n"
6344 "    case S_IFLNK:  printf(\"symlink\\en\");                 break;\n"
6345 "    case S_IFREG:  printf(\"regular file\\en\");            break;\n"
6346 "    case S_IFSOCK: printf(\"socket\\en\");                  break;\n"
6347 "    default:       printf(\"unknown?\\en\");                break;\n"
6348 "    }\n"
6349 msgstr ""
6350
6351 #. type: Plain text
6352 #: build/C/man2/stat.2:627
6353 #, no-wrap
6354 msgid "    printf(\"I-node number:            %ld\\en\", (long) sb.st_ino);\n"
6355 msgstr ""
6356
6357 #. type: Plain text
6358 #: build/C/man2/stat.2:630
6359 #, no-wrap
6360 msgid ""
6361 "    printf(\"Mode:                     %lo (octal)\\en\",\n"
6362 "            (unsigned long) sb.st_mode);\n"
6363 msgstr ""
6364
6365 #. type: Plain text
6366 #: build/C/man2/stat.2:634
6367 #, no-wrap
6368 msgid ""
6369 "    printf(\"Link count:               %ld\\en\", (long) sb.st_nlink);\n"
6370 "    printf(\"Ownership:                UID=%ld   GID=%ld\\en\",\n"
6371 "            (long) sb.st_uid, (long) sb.st_gid);\n"
6372 msgstr ""
6373
6374 #. type: Plain text
6375 #: build/C/man2/stat.2:641
6376 #, no-wrap
6377 msgid ""
6378 "    printf(\"Preferred I/O block size: %ld bytes\\en\",\n"
6379 "            (long) sb.st_blksize);\n"
6380 "    printf(\"File size:                %lld bytes\\en\",\n"
6381 "            (long long) sb.st_size);\n"
6382 "    printf(\"Blocks allocated:         %lld\\en\",\n"
6383 "            (long long) sb.st_blocks);\n"
6384 msgstr ""
6385
6386 #. type: Plain text
6387 #: build/C/man2/stat.2:645
6388 #, no-wrap
6389 msgid ""
6390 "    printf(\"Last status change:       %s\", ctime(&sb.st_ctime));\n"
6391 "    printf(\"Last file access:         %s\", ctime(&sb.st_atime));\n"
6392 "    printf(\"Last file modification:   %s\", ctime(&sb.st_mtime));\n"
6393 msgstr ""
6394
6395 #. type: Plain text
6396 #: build/C/man2/stat.2:658
6397 msgid ""
6398 "B<access>(2), B<chmod>(2), B<chown>(2), B<fstatat>(2), B<readlink>(2), "
6399 "B<utime>(2), B<capabilities>(7), B<symlink>(7)"
6400 msgstr ""
6401
6402 #. type: TH
6403 #: build/C/man2/statfs.2:26
6404 #, no-wrap
6405 msgid "STATFS"
6406 msgstr ""
6407
6408 #. type: TH
6409 #: build/C/man2/statfs.2:26
6410 #, no-wrap
6411 msgid "2010-11-21"
6412 msgstr ""
6413
6414 #. type: Plain text
6415 #: build/C/man2/statfs.2:29
6416 msgid "statfs, fstatfs - get file system statistics"
6417 msgstr ""
6418
6419 #. type: Plain text
6420 #: build/C/man2/statfs.2:31
6421 msgid "B<#include E<lt>sys/vfs.hE<gt> >/* or E<lt>sys/statfs.hE<gt> */"
6422 msgstr ""
6423
6424 #. type: Plain text
6425 #: build/C/man2/statfs.2:33
6426 msgid "B<int statfs(const char *>I<path>B<, struct statfs *>I<buf>B<);>"
6427 msgstr ""
6428
6429 #. type: Plain text
6430 #: build/C/man2/statfs.2:35
6431 msgid "B<int fstatfs(int >I<fd>B<, struct statfs *>I<buf>B<);>"
6432 msgstr ""
6433
6434 #. type: Plain text
6435 #: build/C/man2/statfs.2:45
6436 msgid ""
6437 "The function B<statfs>()  returns information about a mounted file system.  "
6438 "I<path> is the pathname of any file within the mounted file system.  I<buf> "
6439 "is a pointer to a I<statfs> structure defined approximately as follows:"
6440 msgstr ""
6441
6442 #. type: Plain text
6443 #: build/C/man2/statfs.2:53
6444 #, no-wrap
6445 msgid ""
6446 "#if __WORDSIZE == 32\t\t/* System word size */\n"
6447 "# define __SWORD_TYPE           int\n"
6448 "#else /* __WORDSIZE == 64 */\n"
6449 "# define __SWORD_TYPE\t\tlong int\n"
6450 "#endif\n"
6451 msgstr ""
6452
6453 #. type: Plain text
6454 #: build/C/man2/statfs.2:68
6455 #, no-wrap
6456 msgid ""
6457 "struct statfs {\n"
6458 "    __SWORD_TYPE f_type;    /* type of file system (see below) */\n"
6459 "    __SWORD_TYPE f_bsize;   /* optimal transfer block size */\n"
6460 "    fsblkcnt_t   f_blocks;  /* total data blocks in file system */\n"
6461 "    fsblkcnt_t   f_bfree;   /* free blocks in fs */\n"
6462 "    fsblkcnt_t   f_bavail;  /* free blocks available to\n"
6463 "                               unprivileged user */\n"
6464 "    fsfilcnt_t   f_files;   /* total file nodes in file system */\n"
6465 "    fsfilcnt_t   f_ffree;   /* free file nodes in fs */\n"
6466 "    fsid_t       f_fsid;    /* file system id */\n"
6467 "    __SWORD_TYPE f_namelen; /* maximum length of filenames */\n"
6468 "    __SWORD_TYPE f_frsize;  /* fragment size (since Linux 2.6) */\n"
6469 "    __SWORD_TYPE f_spare[5];\n"
6470 "};\n"
6471 msgstr ""
6472
6473 #. type: Plain text
6474 #: build/C/man2/statfs.2:70
6475 #, no-wrap
6476 msgid "File system types:\n"
6477 msgstr ""
6478
6479 #. type: Plain text
6480 #: build/C/man2/statfs.2:116
6481 #, no-wrap
6482 msgid ""
6483 "   ADFS_SUPER_MAGIC      0xadf5\n"
6484 "   AFFS_SUPER_MAGIC      0xADFF\n"
6485 "   BEFS_SUPER_MAGIC      0x42465331\n"
6486 "   BFS_MAGIC             0x1BADFACE\n"
6487 "   CIFS_MAGIC_NUMBER     0xFF534D42\n"
6488 "   CODA_SUPER_MAGIC      0x73757245\n"
6489 "   COH_SUPER_MAGIC       0x012FF7B7\n"
6490 "   CRAMFS_MAGIC          0x28cd3d45\n"
6491 "   DEVFS_SUPER_MAGIC     0x1373\n"
6492 "   EFS_SUPER_MAGIC       0x00414A53\n"
6493 "   EXT_SUPER_MAGIC       0x137D\n"
6494 "   EXT2_OLD_SUPER_MAGIC  0xEF51\n"
6495 "   EXT2_SUPER_MAGIC      0xEF53\n"
6496 "   EXT3_SUPER_MAGIC      0xEF53\n"
6497 "   EXT4_SUPER_MAGIC      0xEF53\n"
6498 "   HFS_SUPER_MAGIC       0x4244\n"
6499 "   HPFS_SUPER_MAGIC      0xF995E849\n"
6500 "   HUGETLBFS_MAGIC       0x958458f6\n"
6501 "   ISOFS_SUPER_MAGIC     0x9660\n"
6502 "   JFFS2_SUPER_MAGIC     0x72b6\n"
6503 "   JFS_SUPER_MAGIC       0x3153464a\n"
6504 "   MINIX_SUPER_MAGIC     0x137F /* orig. minix */\n"
6505 "   MINIX_SUPER_MAGIC2    0x138F /* 30 char minix */\n"
6506 "   MINIX2_SUPER_MAGIC    0x2468 /* minix V2 */\n"
6507 "   MINIX2_SUPER_MAGIC2   0x2478 /* minix V2, 30 char names */\n"
6508 "   MSDOS_SUPER_MAGIC     0x4d44\n"
6509 "   NCP_SUPER_MAGIC       0x564c\n"
6510 "   NFS_SUPER_MAGIC       0x6969\n"
6511 "   NTFS_SB_MAGIC         0x5346544e\n"
6512 "   OPENPROM_SUPER_MAGIC  0x9fa1\n"
6513 "   PROC_SUPER_MAGIC      0x9fa0\n"
6514 "   QNX4_SUPER_MAGIC      0x002f\n"
6515 "   REISERFS_SUPER_MAGIC  0x52654973\n"
6516 "   ROMFS_MAGIC           0x7275\n"
6517 "   SMB_SUPER_MAGIC       0x517B\n"
6518 "   SYSV2_SUPER_MAGIC     0x012FF7B6\n"
6519 "   SYSV4_SUPER_MAGIC     0x012FF7B5\n"
6520 "   TMPFS_MAGIC           0x01021994\n"
6521 "   UDF_SUPER_MAGIC       0x15013346\n"
6522 "   UFS_MAGIC             0x00011954\n"
6523 "   USBDEVICE_SUPER_MAGIC 0x9fa2\n"
6524 "   VXFS_SUPER_MAGIC      0xa501FCF5\n"
6525 "   XENIX_SUPER_MAGIC     0x012FF7B4\n"
6526 "   XFS_SUPER_MAGIC       0x58465342\n"
6527 "   _XIAFS_SUPER_MAGIC    0x012FD16D\n"
6528 msgstr ""
6529
6530 #. type: Plain text
6531 #: build/C/man2/statfs.2:122
6532 msgid "Nobody knows what I<f_fsid> is supposed to contain (but see below)."
6533 msgstr ""
6534
6535 #. type: Plain text
6536 #: build/C/man2/statfs.2:127
6537 msgid ""
6538 "Fields that are undefined for a particular file system are set to 0.  "
6539 "B<fstatfs>()  returns the same information about an open file referenced by "
6540 "descriptor I<fd>."
6541 msgstr ""
6542
6543 #. type: Plain text
6544 #: build/C/man2/statfs.2:140
6545 msgid ""
6546 "(B<statfs>())  Search permission is denied for a component of the path "
6547 "prefix of I<path>.  (See also B<path_resolution>(7).)"
6548 msgstr ""
6549
6550 #. type: Plain text
6551 #: build/C/man2/statfs.2:145
6552 msgid "(B<fstatfs>())  I<fd> is not a valid open file descriptor."
6553 msgstr ""
6554
6555 #. type: Plain text
6556 #: build/C/man2/statfs.2:151
6557 msgid "I<buf> or I<path> points to an invalid address."
6558 msgstr ""
6559
6560 #. type: Plain text
6561 #: build/C/man2/statfs.2:154 build/C/man3/statvfs.3:121
6562 msgid "This call was interrupted by a signal."
6563 msgstr ""
6564
6565 #. type: TP
6566 #: build/C/man2/statfs.2:154 build/C/man3/statvfs.3:121
6567 #, no-wrap
6568 msgid "B<EIO>"
6569 msgstr ""
6570
6571 #. type: Plain text
6572 #: build/C/man2/statfs.2:157 build/C/man3/statvfs.3:124
6573 msgid "An I/O error occurred while reading from the file system."
6574 msgstr ""
6575
6576 #. type: Plain text
6577 #: build/C/man2/statfs.2:162
6578 msgid ""
6579 "(B<statfs>())  Too many symbolic links were encountered in translating "
6580 "I<path>."
6581 msgstr ""
6582
6583 #. type: Plain text
6584 #: build/C/man2/statfs.2:167
6585 msgid "(B<statfs>())  I<path> is too long."
6586 msgstr ""
6587
6588 #. type: Plain text
6589 #: build/C/man2/statfs.2:173
6590 msgid "(B<statfs>())  The file referred to by I<path> does not exist."
6591 msgstr ""
6592
6593 #. type: Plain text
6594 #: build/C/man2/statfs.2:176 build/C/man3/statvfs.3:143
6595 msgid "Insufficient kernel memory was available."
6596 msgstr ""
6597
6598 #. type: Plain text
6599 #: build/C/man2/statfs.2:179 build/C/man3/statvfs.3:146
6600 msgid "The file system does not support this call."
6601 msgstr ""
6602
6603 #. type: Plain text
6604 #: build/C/man2/statfs.2:185
6605 msgid "(B<statfs>())  A component of the path prefix of I<path> is not a directory."
6606 msgstr ""
6607
6608 #. type: Plain text
6609 #: build/C/man2/statfs.2:188 build/C/man3/statvfs.3:155
6610 msgid "Some values were too large to be represented in the returned struct."
6611 msgstr ""
6612
6613 #. type: Plain text
6614 #: build/C/man2/statfs.2:194
6615 msgid ""
6616 "Linux-specific.  The Linux B<statfs>()  was inspired by the 4.4BSD one (but "
6617 "they do not use the same structure)."
6618 msgstr ""
6619
6620 #. type: Plain text
6621 #: build/C/man2/statfs.2:216
6622 msgid ""
6623 "The original Linux B<statfs>()  and B<fstatfs>()  system calls were not "
6624 "designed with extremely large file sizes in mind.  Subsequently, Linux 2.6 "
6625 "added new B<statfs64>()  and B<fstatfs64>()  system calls that employ a new "
6626 "structure, I<statfs64>.  The new structure contains the same fields as the "
6627 "original I<statfs> structure, but the sizes of various fields are increased, "
6628 "to accommodate large file sizes.  The glibc B<statfs>()  and B<fstatfs>()  "
6629 "wrapper functions transparently deal with the kernel differences."
6630 msgstr ""
6631
6632 #. type: Plain text
6633 #: build/C/man2/statfs.2:221
6634 msgid ""
6635 "Some systems only have I<E<lt>sys/vfs.hE<gt>>, other systems also have "
6636 "I<E<lt>sys/statfs.hE<gt>>, where the former includes the latter.  So it "
6637 "seems including the former is the best choice."
6638 msgstr ""
6639
6640 #. type: Plain text
6641 #: build/C/man2/statfs.2:231
6642 msgid ""
6643 "LSB has deprecated the library calls B<statfs>()  and B<fstatfs>()  and "
6644 "tells us to use B<statvfs>(2)  and B<fstatvfs>(2)  instead."
6645 msgstr ""
6646
6647 #. type: SS
6648 #: build/C/man2/statfs.2:231
6649 #, no-wrap
6650 msgid "The f_fsid field"
6651 msgstr ""
6652
6653 #. type: Plain text
6654 #: build/C/man2/statfs.2:256
6655 msgid ""
6656 "Solaris, Irix and POSIX have a system call B<statvfs>(2)  that returns a "
6657 "I<struct statvfs> (defined in I<E<lt>sys/statvfs.hE<gt>>)  containing an "
6658 "I<unsigned long> I<f_fsid>.  Linux, SunOS, HP-UX, 4.4BSD have a system call "
6659 "B<statfs>()  that returns a I<struct statfs> (defined in "
6660 "I<E<lt>sys/vfs.hE<gt>>)  containing a I<fsid_t> I<f_fsid>, where I<fsid_t> "
6661 "is defined as I<struct { int val[2]; }>.  The same holds for FreeBSD, except "
6662 "that it uses the include file I<E<lt>sys/mount.hE<gt>>."
6663 msgstr ""
6664
6665 #. type: Plain text
6666 #: build/C/man2/statfs.2:269
6667 msgid ""
6668 "The general idea is that I<f_fsid> contains some random stuff such that the "
6669 "pair (I<f_fsid>,I<ino>)  uniquely determines a file.  Some operating systems "
6670 "use (a variation on) the device number, or the device number combined with "
6671 "the file-system type.  Several OSes restrict giving out the I<f_fsid> field "
6672 "to the superuser only (and zero it for unprivileged users), because this "
6673 "field is used in the filehandle of the file system when NFS-exported, and "
6674 "giving it out is a security concern."
6675 msgstr ""
6676
6677 #. type: Plain text
6678 #: build/C/man2/statfs.2:275
6679 msgid ""
6680 "Under some operating systems the I<fsid> can be used as second argument to "
6681 "the B<sysfs>(2)  system call."
6682 msgstr ""
6683
6684 #. type: Plain text
6685 #: build/C/man2/statfs.2:279
6686 msgid "B<stat>(2), B<statvfs>(2), B<path_resolution>(7)"
6687 msgstr ""
6688
6689 #. type: TH
6690 #: build/C/man3/statvfs.3:28
6691 #, no-wrap
6692 msgid "STATVFS"
6693 msgstr ""
6694
6695 #. type: TH
6696 #: build/C/man3/statvfs.3:28
6697 #, no-wrap
6698 msgid "2003-08-22"
6699 msgstr ""
6700
6701 #. type: Plain text
6702 #: build/C/man3/statvfs.3:31
6703 msgid "statvfs, fstatvfs - get file system statistics"
6704 msgstr ""
6705
6706 #. type: Plain text
6707 #: build/C/man3/statvfs.3:33
6708 msgid "B<#include E<lt>sys/statvfs.hE<gt>>"
6709 msgstr ""
6710
6711 #. type: Plain text
6712 #: build/C/man3/statvfs.3:35
6713 msgid "B<int statvfs(const char *>I<path>B<, struct statvfs *>I<buf>B<);>"
6714 msgstr ""
6715
6716 #. type: Plain text
6717 #: build/C/man3/statvfs.3:37
6718 msgid "B<int fstatvfs(int >I<fd>B<, struct statvfs *>I<buf>B<);>"
6719 msgstr ""
6720
6721 #. type: Plain text
6722 #: build/C/man3/statvfs.3:47
6723 msgid ""
6724 "The function B<statvfs>()  returns information about a mounted file system.  "
6725 "I<path> is the pathname of any file within the mounted file system.  I<buf> "
6726 "is a pointer to a I<statvfs> structure defined approximately as follows:"
6727 msgstr ""
6728
6729 #. type: Plain text
6730 #: build/C/man3/statvfs.3:63
6731 #, no-wrap
6732 msgid ""
6733 "struct statvfs {\n"
6734 "    unsigned long  f_bsize;    /* file system block size */\n"
6735 "    unsigned long  f_frsize;   /* fragment size */\n"
6736 "    fsblkcnt_t     f_blocks;   /* size of fs in f_frsize units */\n"
6737 "    fsblkcnt_t     f_bfree;    /* # free blocks */\n"
6738 "    fsblkcnt_t     f_bavail;   /* # free blocks for unprivileged users */\n"
6739 "    fsfilcnt_t     f_files;    /* # inodes */\n"
6740 "    fsfilcnt_t     f_ffree;    /* # free inodes */\n"
6741 "    fsfilcnt_t     f_favail;   /* # free inodes for unprivileged users */\n"
6742 "    unsigned long  f_fsid;     /* file system ID */\n"
6743 "    unsigned long  f_flag;     /* mount flags */\n"
6744 "    unsigned long  f_namemax;  /* maximum filename length */\n"
6745 "};\n"
6746 msgstr ""
6747
6748 #. type: Plain text
6749 #: build/C/man3/statvfs.3:74
6750 msgid ""
6751 "Here the types I<fsblkcnt_t> and I<fsfilcnt_t> are defined in "
6752 "I<E<lt>sys/types.hE<gt>>.  Both used to be I<unsigned long>."
6753 msgstr ""
6754
6755 #. type: Plain text
6756 #: build/C/man3/statvfs.3:80
6757 msgid ""
6758 "The field I<f_flag> is a bit mask (of mount flags, see B<mount>(8)).  Bits "
6759 "defined by POSIX are"
6760 msgstr ""
6761
6762 #. type: TP
6763 #: build/C/man3/statvfs.3:80
6764 #, no-wrap
6765 msgid "B<ST_RDONLY>"
6766 msgstr ""
6767
6768 #. type: Plain text
6769 #: build/C/man3/statvfs.3:83
6770 msgid "Read-only file system."
6771 msgstr ""
6772
6773 #. type: TP
6774 #: build/C/man3/statvfs.3:83
6775 #, no-wrap
6776 msgid "B<ST_NOSUID>"
6777 msgstr ""
6778
6779 #. type: Plain text
6780 #: build/C/man3/statvfs.3:87
6781 msgid "Set-user-ID/set-group-ID bits are ignored by B<exec>(3)."
6782 msgstr ""
6783
6784 #. type: Plain text
6785 #: build/C/man3/statvfs.3:90
6786 msgid ""
6787 "It is unspecified whether all members of the returned struct have meaningful "
6788 "values on all file systems."
6789 msgstr ""
6790
6791 #. type: Plain text
6792 #: build/C/man3/statvfs.3:94
6793 msgid ""
6794 "B<fstatvfs>()  returns the same information about an open file referenced by "
6795 "descriptor I<fd>."
6796 msgstr ""
6797
6798 #. type: Plain text
6799 #: build/C/man3/statvfs.3:107
6800 msgid ""
6801 "(B<statvfs>())  Search permission is denied for a component of the path "
6802 "prefix of I<path>.  (See also B<path_resolution>(7).)"
6803 msgstr ""
6804
6805 #. type: Plain text
6806 #: build/C/man3/statvfs.3:112
6807 msgid "(B<fstatvfs>())  I<fd> is not a valid open file descriptor."
6808 msgstr ""
6809
6810 #. type: Plain text
6811 #: build/C/man3/statvfs.3:118
6812 msgid "I<Buf> or I<path> points to an invalid address."
6813 msgstr ""
6814
6815 #. type: Plain text
6816 #: build/C/man3/statvfs.3:129
6817 msgid ""
6818 "(B<statvfs>())  Too many symbolic links were encountered in translating "
6819 "I<path>."
6820 msgstr ""
6821
6822 #. type: Plain text
6823 #: build/C/man3/statvfs.3:134
6824 msgid "(B<statvfs>())  I<path> is too long."
6825 msgstr ""
6826
6827 #. type: Plain text
6828 #: build/C/man3/statvfs.3:140
6829 msgid "(B<statvfs>())  The file referred to by I<path> does not exist."
6830 msgstr ""
6831
6832 #. type: Plain text
6833 #: build/C/man3/statvfs.3:152
6834 msgid ""
6835 "(B<statvfs>())  A component of the path prefix of I<path> is not a "
6836 "directory."
6837 msgstr ""
6838
6839 #. type: Plain text
6840 #: build/C/man3/statvfs.3:157
6841 msgid "POSIX.1-2001."
6842 msgstr ""
6843
6844 #. type: Plain text
6845 #: build/C/man3/statvfs.3:163
6846 msgid ""
6847 "The Linux kernel has system calls B<statfs>(2)  and B<fstatfs>(2)  to "
6848 "support this library call."
6849 msgstr ""
6850
6851 #. type: Plain text
6852 #: build/C/man3/statvfs.3:165
6853 msgid "The current glibc implementations of"
6854 msgstr ""
6855
6856 #. type: Plain text
6857 #: build/C/man3/statvfs.3:170
6858 #, no-wrap
6859 msgid ""
6860 "   pathconf(path, _PC_REC_XFER_ALIGN);\n"
6861 "   pathconf(path, _PC_ALLOC_SIZE_MIN);\n"
6862 "   pathconf(path, _PC_REC_MIN_XFER_SIZE);\n"
6863 msgstr ""
6864
6865 #. type: Plain text
6866 #: build/C/man3/statvfs.3:179
6867 msgid ""
6868 "respectively use the I<f_frsize>, I<f_frsize>, and I<f_bsize> fields of the "
6869 "return value of I<statvfs(path,buf)>."
6870 msgstr ""
6871
6872 #. type: Plain text
6873 #: build/C/man3/statvfs.3:181
6874 msgid "B<statfs>(2)"
6875 msgstr ""
6876
6877 #. type: TH
6878 #: build/C/man2/sysfs.2:25
6879 #, no-wrap
6880 msgid "SYSFS"
6881 msgstr ""
6882
6883 #. type: TH
6884 #: build/C/man2/sysfs.2:25
6885 #, no-wrap
6886 msgid "2010-06-27"
6887 msgstr ""
6888
6889 #. type: Plain text
6890 #: build/C/man2/sysfs.2:28
6891 msgid "sysfs - get file system type information"
6892 msgstr ""
6893
6894 #. type: Plain text
6895 #: build/C/man2/sysfs.2:30
6896 msgid "B<int sysfs(int >I<option>B<, const char *>I<fsname>B<);>"
6897 msgstr ""
6898
6899 #. type: Plain text
6900 #: build/C/man2/sysfs.2:32
6901 msgid ""
6902 "B<int sysfs(int >I<option>B<, unsigned int >I<fs_index>B<, char "
6903 "*>I<buf>B<);>"
6904 msgstr ""
6905
6906 #. type: Plain text
6907 #: build/C/man2/sysfs.2:34
6908 msgid "B<int sysfs(int >I<option>B<);>"
6909 msgstr ""
6910
6911 #. type: Plain text
6912 #: build/C/man2/sysfs.2:43
6913 msgid ""
6914 "B<sysfs>()  returns information about the file system types currently "
6915 "present in the kernel.  The specific form of the B<sysfs>()  call and the "
6916 "information returned depends on the I<option> in effect:"
6917 msgstr ""
6918
6919 #. type: TP
6920 #: build/C/man2/sysfs.2:43
6921 #, no-wrap
6922 msgid "B<1>"
6923 msgstr ""
6924
6925 #. type: Plain text
6926 #: build/C/man2/sysfs.2:48
6927 msgid ""
6928 "Translate the file-system identifier string I<fsname> into a file-system "
6929 "type index."
6930 msgstr ""
6931
6932 #. type: TP
6933 #: build/C/man2/sysfs.2:48
6934 #, no-wrap
6935 msgid "B<2>"
6936 msgstr ""
6937
6938 #. type: Plain text
6939 #: build/C/man2/sysfs.2:59
6940 msgid ""
6941 "Translate the file-system type index I<fs_index> into a null-terminated "
6942 "file-system identifier string.  This string will be written to the buffer "
6943 "pointed to by I<buf>.  Make sure that I<buf> has enough space to accept the "
6944 "string."
6945 msgstr ""
6946
6947 #. type: TP
6948 #: build/C/man2/sysfs.2:59
6949 #, no-wrap
6950 msgid "B<3>"
6951 msgstr ""
6952
6953 #. type: Plain text
6954 #: build/C/man2/sysfs.2:63
6955 msgid ""
6956 "Return the total number of file system types currently present in the "
6957 "kernel."
6958 msgstr ""
6959
6960 #. type: Plain text
6961 #: build/C/man2/sysfs.2:65
6962 msgid "The numbering of the file-system type indexes begins with zero."
6963 msgstr ""
6964
6965 #. type: Plain text
6966 #: build/C/man2/sysfs.2:77
6967 msgid ""
6968 "On success, B<sysfs>()  returns the file-system index for option B<1>, zero "
6969 "for option B<2>, and the number of currently configured file systems for "
6970 "option B<3>.  On error, -1 is returned, and I<errno> is set appropriately."
6971 msgstr ""
6972
6973 #. type: Plain text
6974 #: build/C/man2/sysfs.2:82
6975 msgid "Either I<fsname> or I<buf> is outside your accessible address space."
6976 msgstr ""
6977
6978 #. type: Plain text
6979 #: build/C/man2/sysfs.2:90
6980 msgid ""
6981 "I<fsname> is not a valid file-system type identifier; I<fs_index> is "
6982 "out-of-bounds; I<option> is invalid."
6983 msgstr ""
6984
6985 #.  SVr4 documents additional error conditions ENOLINK, ECOMM, and EINTR
6986 #.  but has no ENOSYS condition.
6987 #. type: Plain text
6988 #: build/C/man2/sysfs.2:92 build/C/man2/ustat.2:94
6989 msgid "SVr4."
6990 msgstr ""
6991
6992 #. type: Plain text
6993 #: build/C/man2/sysfs.2:99
6994 msgid ""
6995 "This System-V derived system call is obsolete; don't use it.  On systems "
6996 "with I</proc>, the same information can be obtained via "
6997 "I</proc/filesystems>; use that interface instead."
6998 msgstr ""
6999
7000 #. type: SH
7001 #: build/C/man2/sysfs.2:99
7002 #, no-wrap
7003 msgid "BUGS"
7004 msgstr ""
7005
7006 #. type: Plain text
7007 #: build/C/man2/sysfs.2:102
7008 msgid ""
7009 "There is no libc or glibc support.  There is no way to guess how large "
7010 "I<buf> should be."
7011 msgstr ""
7012
7013 #. type: TH
7014 #: build/C/man2/umount.2:30
7015 #, no-wrap
7016 msgid "UMOUNT"
7017 msgstr ""
7018
7019 #. type: TH
7020 #: build/C/man2/umount.2:30
7021 #, no-wrap
7022 msgid "2010-06-19"
7023 msgstr ""
7024
7025 #. type: Plain text
7026 #: build/C/man2/umount.2:33
7027 msgid "umount, umount2 - unmount file system"
7028 msgstr ""
7029
7030 #. type: Plain text
7031 #: build/C/man2/umount.2:38
7032 #, no-wrap
7033 msgid "B<int umount(const char *>I<target>B<);>\n"
7034 msgstr ""
7035
7036 #. type: Plain text
7037 #: build/C/man2/umount.2:40
7038 #, no-wrap
7039 msgid "B<int umount2(const char *>I<target>B<, int >I<flags>B<);>\n"
7040 msgstr ""
7041
7042 #.  Note: the kernel naming differs from the glibc naming
7043 #.  umount2 is the glibc name for what the kernel now calls umount
7044 #.  and umount is the glibc name for oldumount
7045 #. type: Plain text
7046 #: build/C/man2/umount.2:50
7047 msgid ""
7048 "B<umount>()  and B<umount2>()  remove the attachment of the (topmost) file "
7049 "system mounted on I<target>."
7050 msgstr ""
7051
7052 #. type: Plain text
7053 #: build/C/man2/umount.2:54
7054 msgid ""
7055 "Appropriate privilege (Linux: the B<CAP_SYS_ADMIN> capability) is required "
7056 "to unmount file systems."
7057 msgstr ""
7058
7059 #. type: Plain text
7060 #: build/C/man2/umount.2:62
7061 msgid ""
7062 "Linux 2.1.116 added the B<umount2>()  system call, which, like B<umount>(), "
7063 "unmounts a target, but allows additional I<flags> controlling the behavior "
7064 "of the operation:"
7065 msgstr ""
7066
7067 #. type: TP
7068 #: build/C/man2/umount.2:62
7069 #, no-wrap
7070 msgid "B<MNT_FORCE> (since Linux 2.1.116)"
7071 msgstr ""
7072
7073 #. type: Plain text
7074 #: build/C/man2/umount.2:67
7075 msgid ""
7076 "Force unmount even if busy.  This can cause data loss.  (Only for NFS "
7077 "mounts.)"
7078 msgstr ""
7079
7080 #. type: TP
7081 #: build/C/man2/umount.2:67
7082 #, no-wrap
7083 msgid "B<MNT_DETACH> (since Linux 2.4.11)"
7084 msgstr ""
7085
7086 #. type: Plain text
7087 #: build/C/man2/umount.2:72
7088 msgid ""
7089 "Perform a lazy unmount: make the mount point unavailable for new accesses, "
7090 "and actually perform the unmount when the mount point ceases to be busy."
7091 msgstr ""
7092
7093 #. type: TP
7094 #: build/C/man2/umount.2:72
7095 #, no-wrap
7096 msgid "B<MNT_EXPIRE> (since Linux 2.6.8)"
7097 msgstr ""
7098
7099 #. type: Plain text
7100 #: build/C/man2/umount.2:91
7101 msgid ""
7102 "Mark the mount point as expired.  If a mount point is not currently in use, "
7103 "then an initial call to B<umount2>()  with this flag fails with the error "
7104 "B<EAGAIN>, but marks the mount point as expired.  The mount point remains "
7105 "expired as long as it isn't accessed by any process.  A second B<umount2>()  "
7106 "call specifying B<MNT_EXPIRE> unmounts an expired mount point.  This flag "
7107 "cannot be specified with either B<MNT_FORCE> or B<MNT_DETACH>."
7108 msgstr ""
7109
7110 #. type: TP
7111 #: build/C/man2/umount.2:91
7112 #, no-wrap
7113 msgid "B<UMOUNT_NOFOLLOW> (since Linux 2.6.34)"
7114 msgstr ""
7115
7116 #.  Later added to 2.6.33-stable
7117 #. type: Plain text
7118 #: build/C/man2/umount.2:99
7119 msgid ""
7120 "Don't dereference I<target> if it is a symbolic link.  This flag allows "
7121 "security problems to be avoided in set-user-ID-I<root> programs that allow "
7122 "unprivileged users to unmount file systems."
7123 msgstr ""
7124
7125 #. type: Plain text
7126 #: build/C/man2/umount.2:110
7127 msgid ""
7128 "The error values given below result from file-system type independent "
7129 "errors.  Each file system type may have its own special errors and its own "
7130 "special behavior.  See the kernel source code for details."
7131 msgstr ""
7132
7133 #. type: TP
7134 #: build/C/man2/umount.2:110
7135 #, no-wrap
7136 msgid "B<EAGAIN>"
7137 msgstr ""
7138
7139 #. type: Plain text
7140 #: build/C/man2/umount.2:117
7141 msgid ""
7142 "A call to B<umount2>()  specifying B<MNT_EXPIRE> successfully marked an "
7143 "unbusy file system as expired."
7144 msgstr ""
7145
7146 #. type: Plain text
7147 #: build/C/man2/umount.2:121
7148 msgid "I<target> could not be unmounted because it is busy."
7149 msgstr ""
7150
7151 #. type: Plain text
7152 #: build/C/man2/umount.2:125
7153 msgid "I<target> points outside the user address space."
7154 msgstr ""
7155
7156 #. type: Plain text
7157 #: build/C/man2/umount.2:137
7158 msgid ""
7159 "I<target> is not a mount point.  Or, B<umount2>()  was called with "
7160 "B<MNT_EXPIRE> and either B<MNT_DETACH> or B<MNT_FORCE>."
7161 msgstr ""
7162
7163 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=10092
7164 #. type: Plain text
7165 #: build/C/man2/umount.2:156
7166 msgid ""
7167 "B<MNT_DETACH> and B<MNT_EXPIRE> are only available in glibc since version "
7168 "2.11."
7169 msgstr ""
7170
7171 #. type: Plain text
7172 #: build/C/man2/umount.2:159
7173 msgid ""
7174 "These functions are Linux-specific and should not be used in programs "
7175 "intended to be portable."
7176 msgstr ""
7177
7178 #. type: Plain text
7179 #: build/C/man2/umount.2:170
7180 msgid ""
7181 "The original B<umount>()  function was called as I<umount(device)> and would "
7182 "return B<ENOTBLK> when called with something other than a block device.  In "
7183 "Linux 0.98p4 a call I<umount(dir)> was added, in order to support anonymous "
7184 "devices.  In Linux 2.3.99-pre7 the call I<umount(device)> was removed, "
7185 "leaving only I<umount(dir)> (since now devices can be mounted in more than "
7186 "one place, so specifying the device does not suffice)."
7187 msgstr ""
7188
7189 #. type: Plain text
7190 #: build/C/man2/umount.2:175
7191 msgid "B<mount>(2), B<path_resolution>(7), B<mount>(8), B<umount>(8)"
7192 msgstr ""
7193
7194 #. type: TH
7195 #: build/C/man2/ustat.2:28
7196 #, no-wrap
7197 msgid "USTAT"
7198 msgstr ""
7199
7200 #. type: TH
7201 #: build/C/man2/ustat.2:28
7202 #, no-wrap
7203 msgid "2003-08-04"
7204 msgstr ""
7205
7206 #. type: Plain text
7207 #: build/C/man2/ustat.2:31
7208 msgid "ustat - get file system statistics"
7209 msgstr ""
7210
7211 #. type: Plain text
7212 #: build/C/man2/ustat.2:34
7213 #, no-wrap
7214 msgid "B<#include E<lt>sys/types.hE<gt>>\n"
7215 msgstr ""
7216
7217 #. type: Plain text
7218 #: build/C/man2/ustat.2:36
7219 #, no-wrap
7220 msgid "B<#include E<lt>unistd.hE<gt>>    /* libc[45] */\n"
7221 msgstr ""
7222
7223 #. type: Plain text
7224 #: build/C/man2/ustat.2:38
7225 #, no-wrap
7226 msgid "B<#include E<lt>ustat.hE<gt>>     /* glibc2 */\n"
7227 msgstr ""
7228
7229 #. type: Plain text
7230 #: build/C/man2/ustat.2:40
7231 #, no-wrap
7232 msgid "B<int ustat(dev_t >I<dev>B<, struct ustat *>I<ubuf>B<);>\n"
7233 msgstr ""
7234
7235 #. type: Plain text
7236 #: build/C/man2/ustat.2:50
7237 msgid ""
7238 "B<ustat>()  returns information about a mounted file system.  I<dev> is a "
7239 "device number identifying a device containing a mounted file system.  "
7240 "I<ubuf> is a pointer to a I<ustat> structure that contains the following "
7241 "members:"
7242 msgstr ""
7243
7244 #. type: Plain text
7245 #: build/C/man2/ustat.2:57
7246 #, no-wrap
7247 msgid ""
7248 "daddr_t f_tfree;      /* Total free blocks */\n"
7249 "ino_t   f_tinode;     /* Number of free inodes */\n"
7250 "char    f_fname[6];   /* Filsys name */\n"
7251 "char    f_fpack[6];   /* Filsys pack name */\n"
7252 msgstr ""
7253
7254 #. type: Plain text
7255 #: build/C/man2/ustat.2:66
7256 msgid ""
7257 "The last two fields, I<f_fname> and I<f_fpack>, are not implemented and will "
7258 "always be filled with null bytes (\\(aq\\e0\\(aq)."
7259 msgstr ""
7260
7261 #. type: Plain text
7262 #: build/C/man2/ustat.2:75
7263 msgid ""
7264 "On success, zero is returned and the I<ustat> structure pointed to by "
7265 "I<ubuf> will be filled in.  On error, -1 is returned, and I<errno> is set "
7266 "appropriately."
7267 msgstr ""
7268
7269 #. type: Plain text
7270 #: build/C/man2/ustat.2:80
7271 msgid "I<ubuf> points outside of your accessible address space."
7272 msgstr ""
7273
7274 #. type: Plain text
7275 #: build/C/man2/ustat.2:84
7276 msgid "I<dev> does not refer to a device containing a mounted file system."
7277 msgstr ""
7278
7279 #. type: Plain text
7280 #: build/C/man2/ustat.2:90
7281 msgid ""
7282 "The mounted file system referenced by I<dev> does not support this "
7283 "operation, or any version of Linux before 1.3.16."
7284 msgstr ""
7285
7286 #. type: Plain text
7287 #: build/C/man2/ustat.2:100
7288 msgid ""
7289 "B<ustat>()  is deprecated and has only been provided for compatibility.  All "
7290 "new programs should use B<statfs>(2)  instead."
7291 msgstr ""
7292
7293 #. type: SS
7294 #: build/C/man2/ustat.2:100
7295 #, no-wrap
7296 msgid "HP-UX Notes"
7297 msgstr ""
7298
7299 #.  Some software tries to use this in order to test whether the
7300 #.  underlying file system is NFS.
7301 #. type: Plain text
7302 #: build/C/man2/ustat.2:114
7303 msgid ""
7304 "The HP-UX version of the I<ustat> structure has an additional field, "
7305 "I<f_blksize>, that is unknown elsewhere.  HP-UX warns: For some file "
7306 "systems, the number of free inodes does not change.  Such file systems will "
7307 "return -1 in the field I<f_tinode>.  For some file systems, inodes are "
7308 "dynamically allocated.  Such file systems will return the current number of "
7309 "free inodes."
7310 msgstr ""
7311
7312 #. type: Plain text
7313 #: build/C/man2/ustat.2:117
7314 msgid "B<stat>(2), B<statfs>(2)"
7315 msgstr ""