STATFS(2) FreeBSD システムコールマニュアル STATFS(2)
名称
statfs − ファイルシステムの統計を入手 |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <sys/param.h> int |
statfs(const char *path, struct statfs *buf); int |
fstatfs(int fd, struct statfs *buf); |
解説 |
statfs() システムコールは、マウントされているファイルシステムの情報を戻し ます。 path 引数は、マウントされているファイルシステム内の任意のファイル のパス名です。 buf 引数は、以下のように定義されている statfs の構造体のポ インタです: typedef struct fsid { int32_t val[2]; } fsid_t; /* ファイルシステム ID 型 */ /* * ファイルシステム統計 */ |
#define |
MFSNAMELEN |
16 |
/* ヌルを含むファイルシステム名の長さ */ |
||||
#define |
MNAMELEN |
90 |
/* 戻り値の用のバッファの長さ */ |
||||
#define |
STATFS_VERSION |
0x20030518 |
/* 現在のバージョン番号 */ |
struct statfs { |
uint32_t f_version; |
/* 構造体のバージョン番号 */ |
|||||
uint32_t f_type; |
/* ファイルシステムのタイプ */ |
|||||
uint64_t f_flags; |
/* マウントフラグのコピー */ |
|||||
uint64_t f_bsize; |
/* ファイルシステムの断片サイズ */ |
|||||
uint64_t f_iosize; |
/* 最適な転送ブロックサイズ */ |
|||||
uint64_t f_blocks; |
/* ファイルシステム上の合計データブロックサイズ */ |
|||||
uint64_t f_bfree; |
/* ファイルシステム上の利用可能なブロック */ |
|||||
int64_t |
f_bavail; |
/* スーパユーザ以外が利用可能なブロック */ |
||||
uint64_t f_files; |
/* ファイルシステム上の合計ノード数 */ |
|||||
int64_t |
f_ffree; |
/* スーパユーザ以外が利用可能なノード数 */ |
||||
uint64_t f_syncwrites; |
/* マウントしてからの同期書込み数 */ |
|||||
uint64_t f_asyncwrites; |
/* マウントしてからの非同期書込み数 */ |
|||||
uint64_t f_syncreads; |
/* マウントしてからの同期読取り数 */ |
|||||
uint64_t f_asyncreads; |
/* マウントしてからの非同期読取り数 */ |
|||||
uint64_t f_spare[10]; |
/* 未使用領域 */ |
|||||
uint32_t f_namemax; |
/* ファイル名の長さの最大 */ |
|||||
uid_t |
f_owner; |
/* ファイルシステムをマウントしたユーザ */ |
||||
fsid_t |
f_fsid; |
/* ファイルシステム ID */ |
||||
char |
f_charspare[80]; |
/* 後のための余白 */ |
||||
char |
f_fstypename[MFSNAMELEN]; /* ファイルシステムのタイプ名 */ |
|||||
char |
f_mntfromname[MNAMELEN]; /* マウントされたファイルシステム */ |
|||||
char |
f_mntonname[MNAMELEN]; /* このディレクトリにマウント */ |
}; 戻される可能性があるフラグは以下のとおりです: |
MNT_RDONLY
ファイルシステムが読取り専用でマウントされています。スー パユーザでも書込めません。 MNT_NOEXEC MNT_NOSUID MNT_NODEV MNT_SYNCHRONOUS MNT_ASYNC MNT_SOFTDEP MNT_SUIDDIR MNT_UNION MNT_NOSYMFOLLOW MNT_NOCLUSTERR MNT_NOCLUSTERW MNT_MULTILABEL MNT_ACLS MNT_LOCAL MNT_QUOTA MNT_ROOTFS MNT_EXRDONLY MNT_NOATIME MNT_USER MNT_EXPORTED MNT_DEFEXPORTED MNT_EXPORTANON MNT_EXKERB MNT_EXPUBLIC 特定のファイルシステムで定義されていないフィールドは、-1 に設定されます。 fstatfs() システムコールは、記述子 fd で参照されるオープンファイルに対し て同じ情報を戻します。 戻り値 |
成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno が設定されてエラーを示します。 |
エラー
statfs() システムコールは、以下のうちの 1 つ以上が真である場合にエラーと なります: |
[ENOTDIR]
path のパスの構成要素中にディレクトリ以外のものが含ま れています。 [ENAMETOOLONG] [ENOENT] [EACCES] [ELOOP] [EFAULT] [EIO] fstatfs() システムコールは、以下のうち 1 つ以上が真である場合にエラーとな ります: [EBADF] [EFAULT] [EIO] 歴史 |
statfs() システムコールは、 4.4BSD ではじめて登場しました。 FreeBSD 10.0 November 16, 2003 FreeBSD 10.0 |