NAME
getmntinfo
getmntinfo_r_np
getmntinfo64
— get information about mounted
file systems
SYNOPSIS
#include
<sys/param.h>
#include <sys/ucred.h>
#include <sys/mount.h>
int
getmntinfo
(struct
statfs **mntbufp, int
flags);
int
getmntinfo_r_np
(struct
statfs **mntbufp, int
flags);
TRANSITIIONAL SYNOPSIS (NOW DEPRECATED)
int
getmntinfo64
(struct
statfs64 **mntbufp, int flags);
DESCRIPTION
The
getmntinfo
()
function returns an array of statfs structures
describing each currently mounted file system (see
statfs(2)). As statfs(2) indicates, the structure is defined differently
depending on whether the macro _DARWIN_FEATURE_64_BIT_INODE is defined (see
stat(2) for
more information on this macro).
The
getmntinfo
()
and getmntinfo_r_np
() functions pass their
flags argument transparently to
getfsstat(2).
The
getmntinfo
()
function maintains ownership of the results buffer it allocates, and may
overwrite or free this buffer in subsequent calls to
getmntinfo
(). For this reason,
getmntinfo
() is not thread-safe.
The
getmntinfo_r_np
()
function is a thread-safe equivalent of getmntinfo
()
that allocates a new results buffer on every call and transfers ownership of
this buffer to the caller. The caller is responsible for freeing this memory
with free(3).
RETURN VALUES
On successful completion, getmntinfo
() and
getmntinfo_r_np
() return a count of the number of
elements in the array. The pointer to the array is stored into
mntbufp.
If an error occurs, zero is returned and the external variable
errno is set to indicate the error. The
getmntinfo
() function may modify the
mbtbufp pointer even in the case of an error. In this
situation, callers should consider any previous information returned by
getmntinfo
() to be lost. The
getmntinfo_r_np
() function will not modify the
mntbufp pointer in the case of an error.
ERRORS
The getmntinfo
() and
getmntinfo_r_np
() functions may fail and set errno
for any of the errors specified for the library routines
getfsstat(2) or malloc(3).
TRANSITIONAL DESCRIPTION (NOW DEPRECATED)
The
getmntinfo64
()
routine is equivalent to its corresponding non-64-suffixed routine, when
64-bit inodes are in effect. It was added before there was support for the
symbol variants, and so is now deprecated. Instead of using it, set the
_DARWIN_USE_64_BIT_INODE
macro before including
header files to force 64-bit inode support.
The statfs64 structure used by this deprecated routine is the same as the statfs structure when 64-bit inodes are in effect.
SEE ALSO
HISTORY
The getmntinfo
() function first appeared
in 4.4BSD. The
getmntinfo_r_np
() function first appeared in macOS
10.13.
BUGS
The getmntinfo
() function writes the array
of structures to an internal static object and returns a pointer to that
object. Subsequent calls to getmntinfo
() will modify
the same object.
The memory allocated by getmntinfo
()
cannot be free(3)'d by the application.