Manpages

名 前

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_tfsfilcnt_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 い く つ か の 値 が 大 き 過 ぎ て 、 返 り 値 の 構 造 体 で 表 現 で き な い 。

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 statvfs() と fstatvfs()は ス レ ッ ド セ ー フ で あ る 。

準 拠

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.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。