STATFS

Section: System Calls (2)
索引 jman

BSD mandoc
 

索引

名称

statfs - ファイルシステムの統計を入手  

索引

ライブラリ

Lb libc  

索引

書式

In sys/param.h In sys/mount.h Ft int Fn statfs const char *path struct statfs *buf Ft int Fn fstatfs int fd struct statfs *buf  

索引

解説

Fn statfs システムコールは、マウントされているファイルシステムの情報を戻します。 Fa path 引数は、マウントされているファイルシステム内の任意のファイルのパス名です。 Fa buf 引数は、以下のように定義されている Vt 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
ファイルの setuid ビットと setgid ビットが、 ファイルの実行時に受け入れられません。
MNT_NODEV
ファイルシステムの特殊ファイルを開けません。
MNT_SYNCHRONOUS
ファイルシステムへのすべての入出力が、同期を取って実行されます。
MNT_ASYNC
ファイルシステムの入出力が、同期を取って実行されません。
MNT_SOFTDEP
ソフトアップデートが動作します (ffs7 を参照してください)。
MNT_SUIDDIR
ディレクトリの SUID ビットを特別に取り扱います。
MNT_UNION
下層のファイルシステムとのユニオン。
MNT_NOSYMFOLLOW
シンボリックリンクを辿りません。
MNT_NOCLUSTERR
読み取りクラスタリングが無効になっています。
MNT_NOCLUSTERW
書き込みクラスタリングが無効になっています。
MNT_MULTILABEL
各オブジェクトに対する Mandatory Access Control (MAC) サポート (mac4 を参照してください)。
MNT_ACLS
Access Control List (ACL) サポートが有効になっています。
MNT_LOCAL
ファイルシステムがローカルに常駐しています。
MNT_QUOTA
ファイルシステムでクォータが有効になっています。
MNT_ROOTFS
ルートファイルシステムを確認します。
MNT_EXRDONLY
ファイルシステムが、読取り専用でエクスポートされます。
MNT_NOATIME
ファイルアクセス時刻の更新が無効になっています。
MNT_USER
ファイルシステムがユーザによってマウントされています。
MNT_EXPORTED
ファイルシステムが、読み書きの両方でエクスポートされます。
MNT_DEFEXPORTED
ファイルシステムが、読み書きの両方で 任意のインターネットホストにエクスポートされます。
MNT_EXPORTANON
ファイルシステムが、すべてのリモートアクセスを匿名ユーザにマップします。
MNT_EXKERB
ファイルシステムが、Kerberos uid マッピングでエクスポートされます。
MNT_EXPUBLIC
ファイルシステムが、一般公開されています (WebNFS)。

特定のファイルシステムで定義されていないフィールドは、-1 に設定されます。 Fn fstatfs システムコールは、記述子 Fa fd で参照されるオープンファイルに対して同じ情報を戻します。  

索引

戻り値

Rv -std  

索引

エラー

Fn statfs システムコールは、以下のうちの 1 つ以上が真である場合にエラーとなります:

Bq Er ENOTDIR
Fa path のパスの構成要素中にディレクトリ以外のものが含まれています。
Bq Er ENAMETOOLONG
Fa path の構成要素が 255 文字を越えているか、または Fa path 全体が 1023 文字を越えています。
Bq Er ENOENT
Fa path の参照するファイルが存在しません。
Bq Er EACCES
Fa path には、検索が許可されていないディレクトリが含まれています。
Bq Er ELOOP
Fa path を変換するときに検出されたシンボリックリンクが多すぎます。
Bq Er EFAULT
Fa buf 引数または Fa path 引数が、不正なアドレスを指しています。
Bq Er EIO
ファイルシステムに読み書きしている間に 入出力 エラーが発生しました。

Fn fstatfs システムコールは、以下のうち 1 つ以上が真である場合にエラーとなります:

Bq Er EBADF
Fa fd 引数が有効オープンファイル記述子ではありません。
Bq Er EFAULT
Fa buf 引数が不正なアドレスを指しています。
Bq Er EIO
ファイルシステムに読み書きしている間に I/O (入出力) エラーが発生しました。

 

索引

歴史

Fn statfs システムコールは、 BSD 4.4 ではじめて登場しました。


 

索引

Index

名称
ライブラリ
書式
解説
戻り値
エラー
歴史

jman



Time: 07:06:25 GMT, January 12, 2009