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 statfs の f_bsize メンバに対応します。)
- f_bsize
- このファイルシステムでファイルのための I/O 要求の好ましい長さ。 ( struct statfs の f_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_ISUID と S_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 で使用されるデータタイプによって表すことができない値があります。
規格
statvfs() と fstatvfs() 関数は、 IEEE Std 1003.1-2001 (“POSIX.1”) に適合しています。標準化された移植性のあるアプリケーションは、全く、どんな有効な情報も返さない、これらの関数に依存することができません。この実装は、指定されたデータタイプの制限に従って、基本的なファイルシステムによって提供されるのと同じくらい多くの役に立つ情報を提供することを試みます。歴史
statvfs() と fstatvfs() 関数は、 FreeBSD 5.0 ではじめて登場しました。作者
statvfs() と fstatvfs() 関数とこのマニュアルページは、 <wollman@FreeBSD.org>によって書かれました。July 13, 2002 | FreeBSD |