GETMNTINFO(3) Library Functions Manual GETMNTINFO(3)

getmntinfo getmntinfo_r_np getmntinfo64get information about mounted file systems

#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);

int
(struct statfs64 **mntbufp, int flags);

The () 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 () and getmntinfo_r_np() functions pass their flags argument transparently to getfsstat(2).

The () 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 () 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).

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.

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).

The () 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.

getfsstat(2), mount(2), stat(2), statfs(2), mount(8)

The getmntinfo() function first appeared in 4.4BSD. The getmntinfo_r_np() function first appeared in macOS 10.13.

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.

April 12, 2017 Mac OS X 12