xref: /freebsd-14.2/lib/libc/sys/getfsstat.2 (revision b2c76c41)
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
45The
46.Fn getfsstat
47system call
48returns information about all mounted file systems.
49The
50.Fa buf
51argument
52is a pointer to
53.Vt statfs
54structures, as described in
55.Xr statfs 2 .
56.Pp
57Fields that are undefined for a particular file system are set to -1.
58The buffer is filled with an array of
59.Fa statfs
60structures, one for each mounted file system
61up to the byte count specified by
62.Fa bufsize .
63Note, the
64.Fa bufsize
65argument is the number of bytes that
66.Fa buf
67can hold, not the count of statfs structures it will hold.
68.Pp
69If
70.Fa buf
71is given as NULL,
72.Fn getfsstat
73returns just the number of mounted file systems.
74.Pp
75Normally
76.Fa mode
77should be specified as
78.Dv MNT_WAIT .
79If
80.Fa mode
81is set to
82.Dv MNT_NOWAIT ,
83.Fn getfsstat
84will return the information it has available without requesting
85an update from each file system.
86Thus, some of the information will be out of date, but
87.Fn getfsstat
88will not block waiting for information from a file system that is
89unable to respond.
90It will also skip any file system that is in the process of being
91unmounted, even if the unmount would eventually fail.
92.Sh RETURN VALUES
93Upon successful completion, the number of
94.Fa statfs
95structures is returned.
96Otherwise, -1 is returned and the global variable
97.Va errno
98is set to indicate the error.
99.Sh ERRORS
100The
101.Fn getfsstat
102system call
103fails if one or more of the following are true:
104.Bl -tag -width Er
105.It Bq Er EFAULT
106The
107.Fa buf
108argument
109points to an invalid address.
110.It Bq Er EINVAL
111.Fa mode
112is set to a value other than
113.Dv MNT_WAIT
114or
115.Dv MNT_NOWAIT .
116.It Bq Er EIO
117An
118.Tn I/O
119error occurred while reading from or writing to the file system.
120.It Bq Er EINTEGRITY
121Corrupted 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
128The
129.Fn getfsstat
130system call first appeared in
131.Bx 4.4 .
132