fstatfs(2) FreeBSD 一般コマンドマニュアル

fstatfs

前のページ 上に戻る 次のページ

fstatfs




書式

     #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   /* 戻り値の用のバッファの長さ */

     struct statfs {
     long    f_bsize;          /* ファイルシステムのブロックサイズ */
     long    f_iosize;         /* 最適なトランスファーブロックサイズ */
     long    f_blocks;         /* ファイルシステム上の合計ブロックサイズ */
     long    f_bfree;          /* ファイルシステム上の利用可能なブロック */
     long    f_bavail;         /* スーパユーザ以外が利用可能なブロック */
     long    f_files;          /* ファイルシステム上の合計ノード数 */
     long    f_ffree;          /* ファイルシステム上の利用可能なノード数 */
     fsid_t  f_fsid;           /* ファイルシステム ID 番号 */
     uid_t   f_owner;          /* ファイルシステムをマウントしたユーザ */
     int     f_type;           /* ファイルシステムのタイプ */
     int     f_flags;          /* マウントフラッグのコピー */
     long    f_syncwrites;     /* マウントしてからの同期書き込み数 */
     long    f_asyncwrites;    /* マウントしてからの非同期書き込み数 */
     char    f_fstypename[MFSNAMELEN];/* ファイルシステムタイプ名 */
     char    f_mntonname[MNAMELEN];   /* マウントポイント */
     long    f_syncreads;             /* マウント以降の同期読み取り数 */
     long    f_asyncreads;            /* マウント以降の非同期読み取り数 */
     char    f_mntfromname[MNAMELEN];        /* マウントされたファイルシステム */
     };
     戻される可能性があるフラグは以下のとおりです。

     MNT_RDONLY       ファイルシステムが読取り専用でマウントされています。スー
                      パユーザでも書込めません。

     MNT_NOEXEC       そのファイルシステムからファイルを実行できません。

     MNT_ROOTFS       ルートファイルシステムを確認します。

     MNT_EXRDONLY     ファイルシステムが、読取り専用でエクスポートされます。

     MNT_EXPORTED     ファイルシステムが、読み書きの両方でエクスポートされま
                      す。

     MNT_DEFEXPORTED  ファイルシステムが、読み書きの両方で任意のインターネット
                      ホストにエクスポートされます。

     MNT_EXPORTANON   ファイルシステムが、すべてのリモートアクセスを匿名ユーザ
                      にマップします。

     MNT_EXKERB       ファイルシステムが、Kerberos uid マッピングでエクスポー
                      トされます。

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


戻り値

     成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、
     グローバル変数 errno が設定されてエラーを示します。


エラー

     statfs() は、以下のうちの 1 つ以上が真である場合にエラーとなります。

     [ENOTDIR]          path のパスの構成要素中にディレクトリ以外のものが含ま
                        れています。

     [ENAMETOOLONG]     path の構成要素が 255 文字を越えているか、または path
                        全体が 1023 文字を越えています。

     [ENOENT]           path の参照するファイルが存在しません。

     [EACCES]           path には、検索が許可されていないディレクトリが含まれ
                        ています。

     [ELOOP]            path を変換するときに検出されたシンボリックリンクが多
                        すぎます。

     [EFAULT]           bufpath が、不正なアドレスを指しています。

     [EIO]              ファイルシステムに読み書きしている間に入出力エラーが発
                        生しました。

     fstatfs() は、以下のうち 1 つ以上が真である場合にエラーとなります。

     [EBADF]            fd が有効オープンファイル記述子ではありません。

     [EFAULT]           buf が不正なアドレスを指しています。


ABELNET VPSサービス