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
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- エラー
-
- 歴史
-
Time: 07:06:25 GMT, January 12, 2009