---
name: "getfsstat"
section: "2"
platform: "macos"
package: "xnu"
version: "12377.121.6"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/getfsstat"
---

# getfsstat(2)

get list of all mounted file systems

## NAME

**getfsstat** – get list of all mounted file systems

## SYNOPSIS

**#include \<sys/param.h\>**

**#include \<sys/ucred.h\>**

**#include \<sys/mount.h\>**

*int*\

**getfsstat**(*struct statfs \*buf*, *int bufsize*, *int flags*);

## TRANSITIIONAL SYNOPSIS (NOW DEPRECATED)

*int*\
 **getfsstat64**(*struct statfs64 \*buf*, *int bufsize*, *int flags*);

## DESCRIPTION

The **getfsstat**() function returns information about all mounted file systems. The *buf* argument is a pointer to an array of *statfs* structures (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).

Fields that are undefined for a particular file system are set to -1. The buffer is filled with an array of *statfs* structures, one for each mounted file system up to the size specified by *bufsize*.

If *buf* is given as NULL, **getfsstat**() returns just the number of mounted file systems.

If *flags* is set to MNT\_NOWAIT, **getfsstat**() will directly return the information retained in the kernel to avoid delays caused by waiting for updated information from a file system that is perhaps temporarily unable to respond. Some of the information returned may be out of date, however; if *flags* is set to MNT\_WAIT or MNT\_DWAIT instead, **getfsstat**() will request updated information from each mounted filesystem before returning.

## RETURN VALUES

Upon successful completion, the number of  *statfs* structures is returned. Otherwise, -1 is returned and the global variable *errno* is set to indicate the error.

## ERRORS

**getfsstat**() fails if one or more of the following are true:

- \[EFAULT\]

  The *buf* argument points to an invalid address.

- \[EIO\]

  An I/O error occurred while reading from or writing to the file system.

## TRANSITIONAL DESCRIPTION (NOW DEPRECATED)

The **getfsstat64**() routine is equivalent to the default **getfstat**() (when \_DARWIN\_FEATURE\_64\_BIT\_INODE is defined), so there is no longer any reason to use it (it will be removed in the future).

## SEE ALSO

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

## HISTORY

The **getfsstat**() function first appeared in 4.4BSD.
