statvfs(5) - NetBSD Manual Pages

Command: Section: Arch: Collection:  
STATVFS(5)                NetBSD File Formats Manual                STATVFS(5)

statvfs -- file system statistics
#include <sys/types.h> #include <sys/statvfs.h>
The <sys/statvfs.h> header defines the structures and functions that return information about a mounted file system. The statvfs structure is defined as follows: typedef struct { int32_t val[2]; } fsid_t; /* file system id type */ #define VFS_NAMELEN 32 /* length of fs type name, including nul */ #define VFS_MNAMELEN 1024 /* length of buffer for returned name */ struct statvfs { unsigned long f_flag; /* copy of mount exported flags */ unsigned long f_bsize; /* system block size */ unsigned long f_frsize; /* system fragment size */ unsigned long f_iosize; /* optimal file system block size */ /* The following are in units of f_frsize */ fsblkcnt_t f_blocks; /* number of blocks in file system */ fsblkcnt_t f_bfree; /* free blocks avail in file system */ fsblkcnt_t f_bavail; /* free blocks avail to non-root */ fsblkcnt_t f_bresvd; /* blocks reserved for root */ fsfilcnt_t f_files; /* total file nodes in file system */ fsfilcnt_t f_ffree; /* free file nodes in file system */ fsfilcnt_t f_favail; /* free file nodes avail to non-root */ fsfilcnt_t f_fresvd; /* file nodes reserved for root */ uint64_t f_syncreads; /* count of sync reads since mount */ uint64_t f_syncwrites; /* count of sync writes since mount */ uint64_t f_asyncreads; /* count of async reads since mount */ uint64_t f_asyncwrites; /* count of async writes since mount */ unsigned long f_fsid; /* POSIX compliant file system id */ fsid_t f_fsidx; /* NetBSD compatible file system id */ unsigned long f_namemax;/* maximum filename length */ uid_t f_owner; /* user that mounted the file system */ uint32_t f_spare[4]; /* spare space */ char f_fstypename[VFS_NAMELEN]; /* fs type name */ char f_mntonname[VFS_MNAMELEN]; /* directory on which mounted */ char f_mntfromname[VFS_MNAMELEN]; /* mounted file system */ }; The f_flag argument can have the following bits set: ST_RDONLY The filesystem is mounted read-only; Even the super-user may not write on it. ST_NOEXEC Files may not be executed from the filesystem. ST_NOSUID Setuid and setgid bits on files are not honored when they are executed. ST_NODEV Special files in the filesystem may not be opened. ST_UNION Union with underlying filesystem instead of obscuring it. ST_SYNCHRONOUS All I/O to the filesystem is done synchronously. ST_ASYNC No filesystem I/O is done synchronously. ST_NOCOREDUMP Don't write core dumps to this file system. ST_NOATIME Never update access times. ST_SYMPERM Recognize symbolic link permission. ST_NODEVMTIME Never update modification times for device files. ST_LOG Use logging (journalling). ST_LOCAL The filesystem resides locally. ST_QUOTA The filesystem has quotas enabled on it. ST_ROOTFS Identifies the root filesystem. ST_EXRDONLY The filesystem is exported read-only. ST_EXPORTED The filesystem is exported for both reading and writing. ST_DEFEXPORTED The filesystem is exported for both reading and writing to any Internet host. ST_EXPORTANON The filesystem maps all remote accesses to the anonymous user. ST_EXKERB The filesystem is exported with Kerberos uid mapping. ST_EXNORESPORT Don't enforce reserved ports (NFS). ST_EXPUBLIC Public export (WebNFS). Fields that are undefined for a particular file system are set to -1.
f_flag The f_flag field is the same as the f_flags field in the 4.3BSD statfs system call. f_fsid Is defined to be unsigned long by the X/Open standard. Unfor- tunately this is not enough space to store our fsid_t, so we define an additional f_fsidx field. f_bavail Could historically be negative (in the statfs system call) when the used space has exceeded the non-superuser free space. In order to comply with the X/Open standard, we have to define fsblkcnt_t as an unsigned type, so in all cases where f_bavail would have been negative, we set it to 0. In addition we pro- vide f_bresvd which contains the amount of reserved blocks for the superuser, so the old value of f_bavail can be easily com- puted as: old_bavail = f_bfree - f_bresvd;
The <sys/statvfs.h> header first appeared in NetBSD 3.0. NetBSD 9.3 June 2, 2016 NetBSD 9.3
Powered by man-cgi (2024-03-20). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.