Provided by: manpages-ja-dev_0.5.0.0.20221215+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;    /* Filesystem block size */
               unsigned long  f_frsize;   /* Fragment size */
               fsblkcnt_t     f_blocks;   /* Size of fs in f_frsize units */
               fsblkcnt_t     f_bfree;    /* Number of free blocks */
               fsblkcnt_t     f_bavail;   /* Number of free blocks for
                                             unprivileged users */
               fsfilcnt_t     f_files;    /* Number of inodes */
               fsfilcnt_t     f_ffree;    /* Number of free inodes */
               fsfilcnt_t     f_favail;   /* Number of free inodes for
                                             unprivileged users */
               unsigned long  f_fsid;     /* Filesystem ID */
               unsigned long  f_flag;     /* Mount flags */
               unsigned long  f_namemax;  /* Maximum filename length */
           };

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

       The field f_flag is a bit mask indicating various options that were employed when mounting
       this filesystem.  It contains zero or more of the following flags:

       ST_MANDLOCK
              Mandatory locking is permitted on the filesystem (see fcntl(2)).

       ST_NOATIME
              Do not update access times; see mount(2).

       ST_NODEV
              Disallow access to device special files on this filesystem.

       ST_NODIRATIME
              Do not update directory access times; see mount(2).

       ST_NOEXEC
              Execution of programs is disallowed on this filesystem.

       ST_NOSUID
              The  set-user-ID and set-group-ID bits are ignored by exec(3)  for executable files
              on this filesystem

       ST_RDONLY
              This filesystem is mounted read-only.

       ST_RELATIME
              Update atime relative to mtime/ctime; see mount(2).

       ST_SYNCHRONOUS
              Writes are synched to the filesystem immediately (see the description of O_SYNC  in
              open(2)).

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

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

返り値

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

エラー

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

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

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

       EINTR  この呼び出しがシグナルで中断された。 signal(7) 参照。

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

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

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

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

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

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

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

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

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌──────────────────────┬───────────────┬─────────┐
       │インターフェース属性      │
       ├──────────────────────┼───────────────┼─────────┤
       │statvfs(), fstatvfs() │ Thread safety │ MT-Safe │
       └──────────────────────┴───────────────┴─────────┘

準拠

       POSIX.1-2001, POSIX.1-2008.

       Only the ST_NOSUID and ST_RDONLY flags of the f_flag field are specified in  POSIX.1.   To
       obtain definitions of the remaining flags, one must define _GNU_SOURCE.

注意

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

       In glibc versions before 2.13, statvfs()  populated  the  bits  of  the  f_flag  field  by
       scanning  the  mount  options shown in /proc/mounts.  However, starting with Linux 2.6.36,
       the underlying statfs(2)  system call provides the necessary information via  the  f_flags
       field,  and  since  glibc  version 2.13, the statvfs()  function will use information from
       that field rather than scanning /proc/mounts.

       The glibc implementations of

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

       respectively use the f_frsize,  f_frsize,  and  f_bsize  fields  returned  by  a  call  to
       statvfs()  with the argument path.

関連項目

       statfs(2)

この文書について

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