.\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)getfsstat.2 8.3 (Berkeley) 5/25/95 .\" %FreeBSD: src/lib/libc/sys/getfsstat.2,v 1.7.2.4 2001/12/14 18:34:00 ru Exp % .\" .\" $FreeBSD$ .Dd May 25, 1995 .Dt GETFSSTAT 2 .Os .Sh 名称 .Nm getfsstat .Nd マウントされたすべてのファイルシステムのリストを得る .Sh ライブラリ .Lb libc .Sh 書式 .In sys/param.h .In sys/ucred.h .In sys/mount.h .Ft int .Fn getfsstat "struct statfs *buf" "long bufsize" "int flags" .Sh 解説 .Fn getfsstat は、マウントされたすべてのファイルシステムに関する情報を返します。 .Fa buf は 次のように定義される .Xr statfs 構造体へのポインタです。 .Bd -literal typedef struct fsid { int32_t val[2]; } fsid_t; /* ファイルシステム ID タイプ */ /* * ファイルシステム統計 */ #define MFSNAMELEN 16 /* ファイルシステムのタイプ名長、ヌルを含む */ #define MNAMELEN 90 /* 返された名前についてのバッファの長さ */ struct statfs { long f_spare2; /* プレースホルダ */ long f_bsize; /* 基本的なファイルシステムのブロックサイズ */ long f_iosize; /* 最適な転送ブロックサイズ */ long f_blocks; /* ファイルシステム内の合計データブロック */ long f_bfree; /* ファイルシステム内の未使用のブロック */ long f_bavail; /* スーパユーザ以外のユーザが利用できる未使用のブロック */ long f_files; /* ファイルシステム内の合計ファイルノード */ long f_ffree; /* ファイルシステム内の未使用のファイルノード */ fsid_t f_fsid; /* ファイルシステム ID */ uid_t f_owner; /* ファイルシステムをマウントしたユーザ */ int f_type; /* ファイルシステムのタイプ (下記を参照) */ int f_flags; /* マウントフラグのコピー */ long f_spare[2]; /* 後のための余白 */ char f_fstypename[MFSNAMELEN];/* ファイルシステムのタイプ名 */ char f_mntonname[MNAMELEN];/* マウントされたディレクトリ */ char f_mntfromname[MNAMELEN];/* マウントされたファイルシステム */ }; .Ed .Pp 返される可能性のあるフラグには次のものが含まれます。 .Bl -tag -width MNT_ASYNCHRONOUS .It Dv MNT_RDONLY ファイルシステムは読取り専用としてマウントされています。 スーパユーザも書込みすることはできません。 .It Dv MNT_NOEXEC そのファイルシステム上のファイルを実行することはできません。 .It Dv MNT_NOSUID 実行されるときに、ファイルの setuid ビットと setgid ビットが 効果を持ちません。 .It Dv MNT_NODEV ファイルシステム内の特殊ファイルは開けません。 .It Dv MNT_SYNCHRONOUS ファイルシステムへのすべての入出力が同期的に実行されます。 .It Dv MNT_ASYNCHRONOUS ファイルシステム入出力が同期的に実行されません。 .It Dv MNT_LOCAL ローカルにあるファイルシステムです。 .It Dv MNT_QUOTA ファイルシステム上でクオータが有効になっています。 .It Dv MNT_ROOTFS ルートファイルシステムであることを示します。 .It Dv MNT_EXRDONLY ファイルシステムは読取り専用でエクスポートされています。 .It Dv MNT_EXPORTED ファイルシステムは読取りと書込みの両方についてエクスポートされています。 .It Dv MNT_DEFEXPORTED ファイルシステムはどのインターネットホストへも読取りと書込みの両方について エクスポートされています。 .It Dv MNT_EXPORTANON ファイルシステムはすべてのリモートアクセスを匿名ユーザへマップします。 .It Dv MNT_EXKERB ファイルシステムは Kerberos uid マッピングでエクスポートされています。 .El .Pp 特定のファイルシステムについて未定義となるフィールドは -1 に設定されます。 バッファは .Fa fsstat 構造体の配列で埋められます。 マウントされた各ファイルシステムについて 1 つずつ、最高 .Fa bufsize で指定されたサイズまでです。 .Pp .Fa buf として NULL が指定されている場合、 .Fn getfsstat はマウントされているファイルシステムの数のみを返します。 .Pp 通常、 .Fa flags には .Dv MNT_WAIT を指定するべきです。 .Fa flags として .Dv MNT_NOWAIT が指定されている場合、 .Fn getfsstat は各ファイルシステムからの更新を要求せずに利用できる情報を返します。 そのため、情報のうちには古くなっているものがあるでしょうが、 .Fn getfsstat は応答できないファイルシステムからの情報を 待機してブロックすることはありません。 .Sh 戻り値 正常に完了すると .Fa fsstat 構造体の数が返されます。そうでない場合は -1 が返され、エラーを示すために グローバル変数 .Va errno が設定されます。 .Sh エラー .Fn getfsstat は以下の 1 つでも真の場合、処理に失敗します。 .Bl -tag -width Er .It Bq Er EFAULT .Fa buf が無効なアドレスを指しています。 .It Bq Er EIO ファイルシステムを読み書きしている間に .Tn I/O (入出力) エラーが発生しました。 .El .Sh 関連項目 .Xr statfs 2 , .Xr fstab 5 , .Xr mount 8 .Sh 歴史 .Fn getfsstat 関数は .Bx 4.4 ではじめて登場しました。