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 構造体へのポインタです。

特定のファイルシステムについて未定義となるフィールドは -1 に設定されます。 バッファは fsstat 構造体の配列で埋められます。 マウントされた各ファイルシステムについて 1 つずつ、最高 bufsize で指定されたバイト数までです。 bufsize 引数は、 buf が保持することができるバイト数であり、保持することができる statfs 構造体の 数ではないことに、注意して下さい。

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