EN JA
STATVFS(3)
STATVFS(3) FreeBSD Library Functions Manual STATVFS(3)

名称

statvfs, fstatvfsファイルシステム情報を検索する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/statvfs.h>

int
statvfs( const char * restrict path, struct statvfs * restrict buf);

int
fstatvfs( int fd, struct statvfs *buf);

解説

statvfs() と fstatvfs() 関数は、 buf によって指された構造体にゴミ (訳注: ゴミのような統計値) を書き込みます。このゴミは、時々ファイルシステム統計値と類似点がありますが、移植性のあるアプリケーションは、これにたよってはいけません。アプリケーションは、それらの興味があるファイルシステム上のファイルを参照するパス名かファイル記述子を渡さなければなりません。

statvfs 構造体は、次のメンバを含みます:

f_namemax
このファイルシステムでファイル名のバイト単位の最大の長さ。アプリケーションは、代わりに pathconf(2) を使用するべきです。
f_fsid
この実装では、重要ではありません。
f_frsize
このファイルシステムで最小の割り付けユニットのバイト単位のサイズ。 (これは、 struct statfsf_bsize メンバに対応します。)
f_bsize
このファイルシステムでファイルのための I/O 要求の好ましい長さ。 ( struct statfsf_iosize メンバに対応しています。)
f_flag
このファイルシステムのためのマウントオプションについて説明するフラグ。下記参照。

さらに、ファイルシリアル番号 ( すなわち 、i ノード) のカウントを表すタイプ fsfilcnt_t の 3 つのメンバがあります。これらは、 f_files, f_favail, f_ffree と名前が付けられ、それぞれ、存在する合計のファイルシリアル番号の数、非特権のプロセスで利用可能なファイルシリアル番号の数、特権があるプロセスで利用可能なファイルシリアル番号の数を表しています。同様に、メンバ f_blocks, f_bavail, f_bfree (タイプ fsblkcnt_t のすべて) は、それぞれの割り付けブロックのカウントを表します。

f_flag メンバのために定義された 2 つのフラグがあります:

ST_RDONLY
ファイルシステムは、読み込み専用でマウントされています。
ST_NOSUID
S_ISUIDS_ISGID ファイルモードビットのセマンティックは、サポートされていないか、またはこのファイルシステムで無効です。

実装に関する注

statvfs() と fstatvfs() 関数は、それぞれ statfs() と fstatfs() 関数のラッパとして実装されています。それらの関数によって提供されたすべての情報は、このインタフェースを通してすべて利用可能とは限りません。

戻り値

The statvfs() and fstatvfs() functions return the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

statvfs() と fstatvfs() 関数は、それぞれ statfs(2) または fstatfs(2) および pathconf(2) または fpathconf(2) に説明された理由のいずれかで失敗するかもしれません。さらに、また、 statvfs() と fstatvfs() 関数は、次の理由で失敗するかもしれません:
[ EOVERFLOW]
ファイルシステム統計の 1 つ以上には、 struct statvfs で使用されるデータタイプによって表すことができない値があります。

関連項目

pathconf(2), statfs(2)

規格

statvfs() と fstatvfs() 関数は、 IEEE Std 1003.1-2001 (“POSIX.1”) に適合しています。標準化された移植性のあるアプリケーションは、全く、どんな有効な情報も返さない、これらの関数に依存することができません。この実装は、指定されたデータタイプの制限に従って、基本的なファイルシステムによって提供されるのと同じくらい多くの役に立つ情報を提供することを試みます。

歴史

statvfs() と fstatvfs() 関数は、 FreeBSD 5.0 ではじめて登場しました。

作者

statvfs() と fstatvfs() 関数とこのマニュアルページは、 Garrett Wollman <wollman@FreeBSD.org>によって書かれました。
July 13, 2002 FreeBSD