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

getfsstat

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

getfsstat




書式

     #include <sys/param.h>
     #include <sys/ucred.h>
     #include <sys/mount.h>

     int
     getfsstat(struct statfs *buf, long bufsize, int flags);


解説

     getfsstat() は、マウントされたすべてのファイルシステムに関する情報を返し
     ます。 buf は次のように定義される statfs 構造体へのポインタです。

     typedef struct fsid { int32_t val[2]; } fsid_t; /* ファイルシステム ID タイプ */

     /*
      * ファイルシステム統計
      */

     #define MFSNAMELEN 16   /* ファイルシステムのタイプ名長、ヌルを含む */
     #define MNAMELEN   90   /* 返された名前についてのバッファの長さ */

     struct statfs {
         long    f_spare2;           /* プレースホルダ */
         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_spare[2];         /* 後のための余白 */
         char    f_fstypename[MFSNAMELEN];/* ファイルシステムのタイプ名 */
         char    f_mntonname[MNAMELEN];/* マウントされたディレクトリ */
         char    f_mntfromname[MNAMELEN];/* マウントされたファイルシステム */
     };

     返される可能性のあるフラグには次のものが含まれます。

     MNT_RDONLY        ファイルシステムは読取り専用としてマウントされていま
                       す。スーパユーザも書込みすることはできません。

     MNT_NOEXEC        そのファイルシステム上のファイルを実行することはできま
                       せん。

     MNT_NOSUID        実行されるときに、ファイルの setuid ビットと setgid
                       ビットが効果を持ちません。

                       す。

     MNT_EXPORTED      ファイルシステムは読取りと書込みの両方についてエクスポ
                       ートされています。

     MNT_DEFEXPORTED   ファイルシステムはどのインターネットホストへも読取りと
                       書込みの両方についてエクスポートされています。

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

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

     特定のファイルシステムについて未定義となるフィールドは -1 に設定されま
     す。バッファは fsstat 構造体の配列で埋められます。マウントされた各ファイ
     ルシステムについて 1 つずつ、最高 bufsize で指定されたサイズまでです。

     buf として NULL が指定されている場合、 getfsstat() はマウントされている
     ファイルシステムの数のみを返します。

     通常、 flags には MNT_WAIT を指定するべきです。 flags として MNT_NOWAIT
     が指定されている場合、 getfsstat() は各ファイルシステムからの更新を要求せ
     ずに利用できる情報を返します。そのため、情報のうちには古くなっているもの
     があるでしょうが、 getfsstat() は応答できないファイルシステムからの情報を
     待機してブロックすることはありません。


戻り値

     正常に完了すると fsstat 構造体の数が返されます。そうでない場合は -1 が返
     され、エラーを示すためにグローバル変数 errno が設定されます。


エラー

     getfsstat() は以下の 1 つでも真の場合、処理に失敗します。

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

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


関連項目

     statfs(2), fstab(5), mount(8)


歴史

     getfsstat() 関数は 4.4BSD ではじめて登場しました。

FreeBSD 4.4                      May 25, 1995                      FreeBSD 4.4

ABELNET VPSサービス