GETFSSTAT(2)

名称
getfsstat - マウントされたすべてのファイルシステムのリストを得る

ライブラリ
libc

書式
<sys/param.h> <sys/ucred.h> <sys/mount.h> int getfsstat(struct statfs *buf, long bufsize, int flags)

解説
getfsstat() システムコールは、マウントされたすべてのファイルシステムに関する情報を 返します。 buf 引数は statfs(2) に記述された statfs 構造体へのポインタです。

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

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

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

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

MNT_NODEV
    ファイルシステム内の特殊ファイルは開けません。

MNT_SYNCHRONOUS
    ファイルシステムへのすべての入出力が同期的に実行されます。

MNT_ASYNCHRONOUS
    ファイルシステム入出力が同期的に実行されません。

MNT_LOCAL
    ローカルにあるファイルシステムです。

MNT_QUOTA
    ファイルシステム上でクオータが有効になっています。

MNT_ROOTFS
    ルートファイルシステムであることを示します。

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

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 ではじめて登場しました。