]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - lib/libc/sys/getfsstat.2
unbound: Import upstream 0ee44ef3 when ENOBUFS is returned
[FreeBSD/FreeBSD.git] / lib / libc / sys / getfsstat.2
1 .\" Copyright (c) 1989, 1991, 1993
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)getfsstat.2 8.3 (Berkeley) 5/25/95
29 .\"
30 .Dd March 30, 2020
31 .Dt GETFSSTAT 2
32 .Os
33 .Sh NAME
34 .Nm getfsstat
35 .Nd get list of all mounted file systems
36 .Sh LIBRARY
37 .Lb libc
38 .Sh SYNOPSIS
39 .In sys/param.h
40 .In sys/ucred.h
41 .In sys/mount.h
42 .Ft int
43 .Fn getfsstat "struct statfs *buf" "long bufsize" "int mode"
44 .Sh DESCRIPTION
45 The
46 .Fn getfsstat
47 system call
48 returns information about all mounted file systems.
49 The
50 .Fa buf
51 argument
52 is a pointer to
53 .Vt statfs
54 structures, as described in
55 .Xr statfs 2 .
56 .Pp
57 Fields that are undefined for a particular file system are set to -1.
58 The buffer is filled with an array of
59 .Fa statfs
60 structures, one for each mounted file system
61 up to the byte count specified by
62 .Fa bufsize .
63 Note, the
64 .Fa bufsize
65 argument is the number of bytes that
66 .Fa buf
67 can hold, not the count of statfs structures it will hold.
68 .Pp
69 If
70 .Fa buf
71 is given as NULL,
72 .Fn getfsstat
73 returns just the number of mounted file systems.
74 .Pp
75 Normally
76 .Fa mode
77 should be specified as
78 .Dv MNT_WAIT .
79 If
80 .Fa mode
81 is set to
82 .Dv MNT_NOWAIT ,
83 .Fn getfsstat
84 will return the information it has available without requesting
85 an update from each file system.
86 Thus, some of the information will be out of date, but
87 .Fn getfsstat
88 will not block waiting for information from a file system that is
89 unable to respond.
90 It will also skip any file system that is in the process of being
91 unmounted, even if the unmount would eventually fail.
92 .Sh RETURN VALUES
93 Upon successful completion, the number of
94 .Fa statfs
95 structures is returned.
96 Otherwise, -1 is returned and the global variable
97 .Va errno
98 is set to indicate the error.
99 .Sh ERRORS
100 The
101 .Fn getfsstat
102 system call
103 fails if one or more of the following are true:
104 .Bl -tag -width Er
105 .It Bq Er EFAULT
106 The
107 .Fa buf
108 argument
109 points to an invalid address.
110 .It Bq Er EINVAL
111 .Fa mode
112 is set to a value other than
113 .Dv MNT_WAIT
114 or
115 .Dv MNT_NOWAIT .
116 .It Bq Er EIO
117 An
118 .Tn I/O
119 error occurred while reading from or writing to the file system.
120 .It Bq Er EINTEGRITY
121 Corrupted data was detected while reading from the file system.
122 .El
123 .Sh SEE ALSO
124 .Xr statfs 2 ,
125 .Xr fstab 5 ,
126 .Xr mount 8
127 .Sh HISTORY
128 The
129 .Fn getfsstat
130 system call first appeared in
131 .Bx 4.4 .