OSDN Git Service

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