STATFS(2) — NEWS-OS Programmer’s Manual
名称
statfs − ファイルシステムの統計を取り出す
形式
#include <sys/vfs.h>
int statfs(path, buf)
char ∗path;
struct statfs ∗buf;
int fstatfs(fd, buf)
int fd;
struct statfs ∗buf;
解説
statfs() は、 マウントされているファイルシステムに関する情報を返します。 path は、 マウントされているファイルシステム内にある 任意のファイルのパス名です。 buf は、 statfs() 構造体へのポインタで、 その構造体は次のように定義されています。
typedef struct {
longval[2];
} fsid_t;
struct statfs {
longf_type; /∗ info のタイプ、ここではゼロ ∗/
longf_bsize;/∗ ファイルシステムのブロックサイズ (基本的) ∗/
longf_blocks;/∗ ファイルシステムのブロック総数 ∗/
longf_bfree;/∗ フリーブロック数 ∗/
longf_bavail;/∗ スーパーユーザ以外のユーザが使用できるフリーブロック数 ∗/
longf_files;/∗ ファイルシステムのノード総数 ∗/
longf_ffree;/∗ ファイルシステムのフリーノード数 ∗/
fsid_tf_fsid; /∗ ファイルシステム id ∗/
longf_spare[7];/∗ 後の使用のために保存 ∗/
};
個々のファイルシステムで未定義になっているフィールドは、 −1 にセットされます。 fstatfs は、 ディスクリプタ fd によって指されたオープンファイルについて同じ情報を返します。
リターン値
正常終了した場合には、 値 0 が返されます。 そうでない場合には、 −1 が返され、 グローバル変数 errno がエラーを示すようにセットされます。
エラー
次のエラーのうちの 1 つまたは複数が真である場合には、 statfs() は失敗します。
ENOTDIR path のパスプレフィックスの構成要素が ディレクトリではないものがある。
ENAMETOOLONG path の 1 構成要素が 255 キャラクタを超えている、 または path 全体が 1023 キャラクタを超えている。
ENOENT path で参照しているファイルが存在していない。
EACCES path のパスプレフィックスの構成要素について サーチパーミッションが否定されているものがある。
ELOOP path の処理で遭遇したシンボリックリンクの数が多すぎる。
EFAULT buf または path が、 無効なアドレス指し示している。
EIO ファイルシステムへの書き込みまたはファイルシステムからの読み取りを 行っている間に入出力エラーが発生した。 次のエラーのうちの 1 つまたは複数が真である場合には、 fstatfs は失敗します。
EBADF fd が有効なオープンファイルディスクリプタではない。
EFAULT buf が無効なアドレスを指し示している。
EIO ファイルシステムへの書き込み、 またはファイルシステムからの読み取りを 行っている間に入出力エラーが発生した。
NEWS-OSRelease 4.2.1R