.\" Copyright (C) 1995, Thomas K. Dyas <tdyas@eden.rutgers.edu>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" Created  1995-08-09 Thomas K. Dyas <tdyas@eden.rutgers.edu>
.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified 2001-03-22 by aeb
.\" Modified 2003-08-04 by aeb
.\"
.TH ustat 2 2023-03-30 "Linux man-pages 6.04"
.SH NAME
ustat \- get filesystem statistics
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.B #include <sys/types.h>
.BR "#include <unistd.h>" "    /* libc[45] */"
.BR "#include <ustat.h>" "     /* glibc2 */"
.PP
.BI "[[deprecated]] int ustat(dev_t " dev ", struct ustat *" ubuf );
.fi
.SH DESCRIPTION
.BR ustat ()
returns information about a mounted filesystem.
.I dev
is a device number identifying a device containing
a mounted filesystem.
.I ubuf
is a pointer to a
.I ustat
structure that contains the following
members:
.PP
.in +4n
.EX
daddr_t f_tfree;      /* Total free blocks */
ino_t   f_tinode;     /* Number of free inodes */
char    f_fname[6];   /* Filsys name */
char    f_fpack[6];   /* Filsys pack name */
.EE
.in
.PP
The last two fields,
.I f_fname
and
.IR f_fpack ,
are not implemented and will
always be filled with null bytes (\[aq]\e0\[aq]).
.SH RETURN VALUE
On success, zero is returned and the
.I ustat
structure pointed to by
.I ubuf
will be filled in.
On error, \-1 is returned, and
.I errno
is set to indicate the error.
.SH ERRORS
.TP
.B EFAULT
.I ubuf
points outside of your accessible address space.
.TP
.B EINVAL
.I dev
does not refer to a device containing a mounted filesystem.
.TP
.B ENOSYS
The mounted filesystem referenced by
.I dev
does not support this operation,
or any version of Linux before Linux 1.3.16.
.SH STANDARDS
None.
.SH HISTORY
SVr4.
Removed in glibc 2.28.
.\" SVr4 documents additional error conditions ENOLINK, ECOMM, and EINTR
.\" but has no ENOSYS condition.
.PP
.BR ustat ()
is deprecated and has been provided only for compatibility.
All new programs should use
.BR statfs (2)
instead.
.SS HP-UX notes
The HP-UX version of the
.I ustat
structure has an additional field,
.IR f_blksize ,
that is unknown elsewhere.
HP-UX warns:
For some filesystems, the number of free inodes does not change.
Such filesystems will return \-1 in the field
.IR f_tinode .
.\" Some software tries to use this in order to test whether the
.\" underlying filesystem is NFS.
For some filesystems, inodes are dynamically allocated.
Such filesystems will return the current number of free inodes.
.SH SEE ALSO
.BR stat (2),
.BR statfs (2)
