]> git.saurik.com Git - apple/libc.git/blob - gen/getmntinfo.3
Libc-498.1.7.tar.gz
[apple/libc.git] / gen / getmntinfo.3
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. All advertising materials mentioning features or use of this software
13 .\" must display the following acknowledgement:
14 .\" This product includes software developed by the University of
15 .\" California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\" may be used to endorse or promote products derived from this software
18 .\" without specific prior written permission.
19 .\"
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 .\" SUCH DAMAGE.
31 .\"
32 .\" @(#)getmntinfo.3 8.1 (Berkeley) 6/9/93
33 .\" $FreeBSD: src/lib/libc/gen/getmntinfo.3,v 1.12 2002/12/19 09:40:21 ru Exp $
34 .\"
35 .Dd June 9, 1993
36 .Dt GETMNTINFO 3
37 .Os
38 .Sh NAME
39 .Nm getmntinfo
40 .Nd get information about mounted file systems
41 .Sh LIBRARY
42 .Lb libc
43 .Sh SYNOPSIS
44 .In sys/param.h
45 .In sys/ucred.h
46 .In sys/mount.h
47 .Ft int
48 .Fn getmntinfo "struct statfs **mntbufp" "int flags"
49 #ifdef UNIFDEF_LEGACY_64_APIS
50 .Ft int
51 .Fn getmntinfo64 "struct statfs64 **mntbufp" "int flags"
52 #endif /* UNIFDEF_LEGACY_64_APIS */
53 .Sh DESCRIPTION
54 The
55 .Fn getmntinfo
56 function
57 returns an array of
58 .Ft statfs
59 structures describing each currently mounted file system (see
60 .Xr statfs 2 ) .
61 #ifdef UNIFDEF_LEGACY_64_APIS
62 Likewise, the
63 .Fn getmntinfo64
64 function
65 returns an array of
66 .Ft statfs64
67 structures describing each currently mounted file system.
68 #endif /* UNIFDEF_LEGACY_64_APIS */
69 .Pp
70 The
71 .Fn getmntinfo
72 function
73 passes its
74 .Fa flags
75 argument transparently to
76 #ifdef UNIFDEF_LEGACY_64_APIS
77 .Xr getfsstat 2 ,
78 while the
79 .Fn getmntinfo64
80 function
81 passes its
82 .Fa flags
83 argument transparently to
84 .Fn getfsstat64 .
85 #else /* !UNIFDEF_LEGACY_64_APIS */
86 .Xr getfsstat 2 .
87 #endif /* UNIFDEF_LEGACY_64_APIS */
88 .Sh RETURN VALUES
89 On successful completion,
90 .Fn getmntinfo
91 #ifdef UNIFDEF_LEGACY_64_APIS
92 and
93 .Fn getmntinfo64
94 return a count of the number of elements in the array.
95 #else /* !UNIFDEF_LEGACY_64_APIS */
96 returns a count of the number of elements in the array.
97 #endif /* UNIFDEF_LEGACY_64_APIS */
98 The pointer to the array is stored into
99 .Fa mntbufp .
100 .Pp
101 If an error occurs, zero is returned and the external variable
102 .Va errno
103 is set to indicate the error.
104 Although the pointer
105 .Fa mntbufp
106 will be unmodified, any information previously returned by
107 .Fn getmntinfo
108 #ifdef UNIFDEF_LEGACY_64_APIS
109 or
110 .Fn getmntinfo64
111 #endif /* UNIFDEF_LEGACY_64_APIS */
112 will be lost.
113 .Sh ERRORS
114 The
115 .Fn getmntinfo
116 #ifdef UNIFDEF_LEGACY_64_APIS
117 and
118 .Fn getmntinfo64
119 functions
120 #else /* !UNIFDEF_LEGACY_64_APIS */
121 function
122 #endif /* UNIFDEF_LEGACY_64_APIS */
123 may fail and set errno for any of the errors specified for the library
124 routines
125 .Xr getfsstat 2
126 or
127 .Xr malloc 3 .
128 .Sh SEE ALSO
129 .Xr getfsstat 2 ,
130 .Xr mount 2 ,
131 .Xr statfs 2 ,
132 .Xr mount 8
133 .Sh HISTORY
134 The
135 .Fn getmntinfo
136 function first appeared in
137 .Bx 4.4 .
138 .Sh BUGS
139 The
140 .Fn getmntinfo
141 #ifdef UNIFDEF_LEGACY_64_APIS
142 and
143 .Fn getmntinfo64
144 functions write the array of structures to an internal static object
145 #else /* !UNIFDEF_LEGACY_64_APIS */
146 function write the array of structures to an internal static object
147 #endif /* UNIFDEF_LEGACY_64_APIS */
148 and returns
149 a pointer to that object.
150 Subsequent calls to
151 .Fn getmntinfo
152 #ifdef UNIFDEF_LEGACY_64_APIS
153 and
154 .Fn getmntinfo64
155 #endif /* UNIFDEF_LEGACY_64_APIS */
156 will modify the same object.
157 .Pp
158 The memory allocated by
159 .Fn getmntinfo
160 #ifdef UNIFDEF_LEGACY_64_APIS
161 and
162 .Fn getmntinfo64
163 #endif /* UNIFDEF_LEGACY_64_APIS */
164 cannot be
165 .Xr free 3 Ns 'd
166 by the application.