---
name: "getmntinfo"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["freebsd", "macos"]
url: "https://new.carta.tech/getmntinfo"
---

# getmntinfo(3)

get information about mounted file systems

## 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)](/statfs/2.md)). As [statfs(2)](/statfs/2.md) indicates, the structure is defined differently depending on whether the macro \_DARWIN\_FEATURE\_64\_BIT\_INODE is defined (see [stat(2)](/stat/2.md) for more information on this macro).

The **getmntinfo**() and **getmntinfo\_r\_np**() functions pass their *flags* argument transparently to [getfsstat(2)](/getfsstat/2.md).

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)](/free/3.md).

## 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)](/getfsstat/2.md) or [malloc(3)](/malloc/3.md).

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

[getfsstat(2)](/getfsstat/2.md), [mount(2)](/mount/2.md), [stat(2)](/stat/2.md), [statfs(2)](/statfs/2.md), [mount(8)](/mount/8.md)

## 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)](/free/3.md)'d by the application.
