tail head cat sleep
QR code linking to this page

manページ  — STATFS

名称

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

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <sys/param.h>
#include <sys/mount.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 ファイルの setuid ビットと setgid ビットが、 ファイルの実行時に受け入れられません。
MNT_NODEV ファイルシステムの特殊ファイルを開けません。
MNT_SYNCHRONOUS
  ファイルシステムへのすべての入出力が、同期を取って実行されます。
MNT_ASYNC ファイルシステムの入出力が、同期を取って実行されません。
MNT_SOFTDEP ソフトアップデートが動作します ((ffs) 7 を参照してください)。
MNT_SUIDDIR ディレクトリの SUID ビットを特別に取り扱います。
MNT_UNION 下層のファイルシステムとのユニオン。
MNT_NOSYMFOLLOW
  シンボリックリンクを辿りません。
MNT_NOCLUSTERR 読み取りクラスタリングが無効になっています。
MNT_NOCLUSTERW 書き込みクラスタリングが無効になっています。
MNT_MULTILABEL 各オブジェクトに対する Mandatory Access Control (MAC) サポート ((mac) 4 を参照してください)。
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 に設定されます。 fstatfs() システムコールは、記述子 fd で参照されるオープンファイルに対して同じ情報を戻します。

戻り値

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

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

fstatfs() システムコールは、以下のうち 1 つ以上が真である場合にエラーとなります:
[EBADF]
  fd 引数が有効オープンファイル記述子ではありません。
[EFAULT]
  buf 引数が不正なアドレスを指しています。
[EIO] ファイルシステムに読み書きしている間に I/O (入出力) エラーが発生しました。

歴史

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

STATFS (2) November 16, 2003

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Hang in there, people suffering from natural disasters and deadly diseases - we're putting ribbons on our cars as fast as we can
— Artur Bagyants