Provided by: manpages-ja-dev_0.5.0.0.20161015+dfsg-1_all bug

名前

       statvfs, fstatvfs - ファイルシステムの統計を取得する

書式

       #include <sys/statvfs.h>

       int statvfs(const char *path, struct statvfs *buf);
       int fstatvfs(int fd, struct statvfs *buf);

説明

       関数 statvfs()  はマウントされたファイルシステムについての情報を返す。 path はマウントされ
       たファイルシステム中の任意のファイルのパス名である。 buf  は、だいたい以下のように定義され
       ている statvfs 構造体へのポインターである:

           struct statvfs {
               unsigned long  f_bsize;    /* ファイルシステムのブロックサイズ */
               unsigned long  f_frsize;   /* フラグメントサイズ */
               fsblkcnt_t     f_blocks;   /* ファイルシステムのサイズ (f_frsize 単位) */
               fsblkcnt_t     f_bfree;    /* 解放されているブロック数 */
               fsblkcnt_t     f_bafvail;   /* 非特権ユーザー用に解放されているブロック数 */
               fsfilcnt_t     f_files;    /* inode 数 */
               fsfilcnt_t     f_ffree;    /* 解放されている inode の数 */
               fsfilcnt_t     f_favail;   /* 非特権ユーザー用に解放されている inode の数 */
               unsigned long  f_fsid;     /* ファイルシステム ID */
               unsigned long  f_flag;     /* マウントフラグ */
               unsigned long  f_namemax;  /* ファイル名の長さの最大値 */
           };

       ここで、型 fsblkcnt_tfsfilcnt_t<sys/types.h> で定義されている。 かつて、これらは共
       に unsigned long であった。

       フィールド f_flag  は  (マウントフラグの)  ビットマスクである  (マウントフラグについては、
       mount(8)  を参照すること)。 POSIX で定義されているビットは以下の通り:

       ST_RDONLY
              読み込み専用のファイルシステム。

       ST_NOSUID
              exec(3)  に無視される set-user-id/set-group-ID ビット。

       返された構造体の全てのメンバが全てのファイルシステムで  意味のある値であるか否かは、指定さ
       れていない。

       fstatvfs()  は、ディスクリプター fd で参照されるオープンされたファイルについて、同じ情報を
       返す。

返り値

       成功した場合、0 が返される。 失敗した場合、 -1 が返され、 errno に適切な値がセットされる。

エラー

       EACCES (statvfs()      の場合)      path    のディレクトリ部分に検索許可が与えられていない
              (path_resolution(7) も参照すること)。

       EBADF  (fstatvfs()  の場合)  fd が有効なオープンファイルディスクリプターではない。

       EFAULT buf または path が無効なアドレスを指している。

       EINTR  この呼び出しがシグナルで中断された。

       EIO    ファイルシステムからの読み込みの間に I/O エラーが発生した。

       ELOOP  (statvfs()  の場合)  path にシンボリックリンクが多すぎる。

       ENAMETOOLONG
              (statvfs()  の場合)  path が長すぎる。

       ENOENT (statvfs()  の場合)  path で参照されるファイルが存在しない。

       ENOMEM 十分なカーネルメモリーがない。

       ENOSYS ファイルシステムがこの呼び出しをサポートしていない。

       ENOTDIR
              (statvfs()  の場合)  path のディレクトリ部分がディレクトリでない。

       EOVERFLOW
              いくつかの値が大き過ぎて、返り値の構造体で表現できない。

属性

   マルチスレッディング (pthreads(7) 参照)
       関数 statvfs() と fstatvfs()はスレッドセーフである。

準拠

       POSIX.1-2001.

注意

       Linux カーネルには、このライブラリコールをサポートするために、 statfs(2), fstatfs(2)  シス
       テムコールがある。

       現在の glibc の実装において、

          pathconf(path, _PC_REC_XFER_ALIGN);
          pathconf(path, _PC_ALLOC_SIZE_MIN);
          pathconf(path, _PC_REC_MIN_XFER_SIZE);

       は、それぞれ statvfs(path,buf) の返り値の f_frsize, f_frsize, f_bsize フィールドを使う。

関連項目

       statfs(2)

この文書について

       この  man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。