Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all 

名前
statvfs, fstatvfs - ファイルシステムの統計を取得する
書式
#include <sys/statvfs.h>
int statvfs(const char *path, struct statvfs *buf);
int fstatvfs(int fd, struct statvfs *buf);
説明
関数 statvfs() はマウントされたファイルシステムについての情報を返す。 path はマウントされたファイルシス
テム中の任意のファイルのパス名である。 buf は、だいたい以下のように定義されている statvfs 構造体へのポイ
ンタである:
struct statvfs {
unsigned long f_bsize; /* ファイルシステムのブロックサイズ */
unsigned long f_frsize; /* フラグメントサイズ */
fsblkcnt_t f_blocks; /* ファイルシステムのサイズ (f_frsize 単位) */
fsblkcnt_t f_bfree; /* 解放されているブロック数 */
fsblkcnt_t f_bafvail; /* 非特権ユーザ用に解放されているブロック数 */
fsfilcnt_t f_files; /* inode 数 */
fsfilcnt_t f_ffree; /* 解放されている inode の数 */
fsfilcnt_t f_favail; /* 非特権ユーザ用に解放されている inode の数 */
unsigned long f_fsid; /* ファイルシステム ID */
unsigned long f_flag; /* マウントフラグ */
unsigned long f_namemax; /* ファイル名の長さの最大値 */
};
ここで、型 fsblkcnt_t と fsfilcnt_t は <sys/types.h> で定義されている。 かつて、これらは共に unsigned
long であった。
フィールド f_flag は (マウントフラグの) ビットマスクである (マウントフラグについては、 mount(8) を参照す
ること)。 POSIX で定義されているビットは以下の通り:
ST_RDONLY
読み込み専用のファイルシステム。
ST_NOSUID
exec(3) に無視される set-user-id/set-group-ID ビット。
返された構造体の全てのメンバが全てのファイルシステムで 意味のある値であるか否かは、指定されていない。
fstatvfs() は、ディスクリプタ fd で参照されるオープンされたファイルについて、同じ情報を返す。
返り値
成功した場合、0 が返される。 失敗した場合、 -1 が返され、 errno に適切な値がセットされる。
エラー
EACCES (statvfs() の場合) path のディレクトリ部分に検索許可が与えられていない (path_resolution(7) も参
照すること)。
EBADF (fstatvfs() の場合) fd が有効なオープンファイルディスクリプタではない。
EFAULT buf または path が無効なアドレスを指している。
EINTR この呼び出しがシグナルで中断された。
EIO ファイルシステムからの読み込みの間に I/O エラーが発生した。
ELOOP (statvfs() の場合) path にシンボリックリンクが多すぎる。
ENAMETOOLONG
(statvfs() の場合) path が長すぎる。
ENOENT (statvfs() の場合) path で参照されるファイルが存在しない。
ENOMEM 十分なカーネルメモリがない。
ENOSYS ファイルシステムがこの呼び出しをサポートしていない。
ENOTDIR
(statvfs() の場合) path のディレクトリ部分がディレクトリでない。
EOVERFLOW
いくつかの値が大き過ぎて、返り値の構造体で表現できない。
準拠
POSIX.1-2001.
注意
Linux カーネルには、このライブラリコールをサポートするために、 statfs(2), fstatfs(2) システムコールがあ
る。
現在の glibc の実装において、
pathconf(path, _PC_REC_XFER_ALIGN);
pathconf(path, _PC_ALLOC_SIZE_MIN);
pathconf(path, _PC_REC_MIN_XFER_SIZE);
は、それぞれ statvfs(path,buf) の返り値の f_frsize, f_frsize, f_bsize フィールドを使う。
関連項目
statfs(2)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告
に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
Linux 2003-08-22 STATVFS(3)