plucky (3) fstatvfs.3.gz

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/ に書かれている。