OSDN Git Service

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