quotactl(2) FreeBSD 一般コマンドマニュアル

quotactl

前のページ 上に戻る 次のページ

quotactl




書式

     #include <sys/types.h>
     #include <ufs/ufs/quota.h>

     int
     quotactl(const char *path, int cmd, int id, void *addr);


解説

     quotactl() システムコールは、ファイルシステムの割り当て制限を有効や無効に
     したり、操作します。 cmd で与えられた割り当て制限制御コマンドは、 id で指
     定されたユーザと path で指定されたファイルに対して動作します (注: cmd の
     値を明確に表すために、 <ufs/ufs/quota.h> で定義されている QCMD マクロを使
     用すべきです)。オプションとして各コマンド固有のデータ構造体のアドレスを
     addr に指定できます。これがどう解釈されるかは各コマンド毎に後述します。

     現時点で、割り当て制限は ``ufs'' ファイルシステムについてのみサポートされ
     ています。 ``ufs'' の場合、コマンドは主たるコマンド (後述) および id 引数
     の解釈方法を指示するコマンドタイプで構成されます。コマンドタイプは、 id
     をユーザ識別子として解釈する (USRQUOTA) と、グループ識別子として解釈する
     (GRPQUOTA) がサポートされています。 ``ufs'' 固有のコマンドは次のとおりで
     す。

     Q_QUOTAON     path で指定されるファイルシステム用のディスク割り当て制限を
                   有効にします。コマンドタイプには有効にする割り当て制限の種
                   類を指定します。 addr 引数には、割り当て制限情報を取り出す
                   ファイルを指定します。割り当て制限を記録したファイルが存在
                   している必要があります。このファイルは通常、 quotacheck(8)
                   プログラムで作成されます。 id 引数は使用されません。スーパ
                   ユーザだけが割り当て制限をオンにできます。

     Q_QUOTAOFF    path で指定されるファイルシステムに対する、ディスク割り当て
                   制限を無効にします。コマンドタイプには、無効にする割り当て
                   制限の種類を指定します。 addr 引数と id 引数は使用されませ
                   ん。スーパユーザだけが割り当て制限をオフにできます。

     Q_GETQUOTA    識別子 id で指定されるユーザまたはグループ (どちらであるか
                   はコマンドタイプによって決定されます) の、ディスク割り当て
                   制限と現在の使用状況を取得します。 addr は、 struct dqblk
                   構造体 (<ufs/ufs/quota.h> で定義されています) を指すポイン
                   タです。

     Q_SETQUOTA    識別子 id で指定されるユーザまたはグループ (どちらであるか
                   はコマンドタイプによって決定されます) のディスク割り当て制
                   限を設定します。 addr は、 struct dqblk 構造体
                   (<ufs/ufs/quota.h> で定義されています) を指すポインタです。
                   dqblk 構造体の使用状況を示すフィールドは無視されます。この
                   呼び出しはスーパユーザだけに制限されています。

     Q_SETUSE      識別子 id で指定されるユーザまたはグループ (どちらであるか
                   はコマンドタイプによって決定されます) のディスク使用制限を
                   設定します。 addr は、 struct dqblk 構造体

     [EOPNOTSUPP]       カーネルが QUOTA オプションを指定してコンパイルされて
                        いません。

     [EUSERS]           割り当て制限のテーブルを拡張できません。

     [EINVAL]           cmd またはコマンドタイプが無効です。

     [EACCES]           Q_QUOTAON において、割り当て制限情報ファイルがプレーン
                        ファイルではありません。

     [EACCES]           指定されたパスには、検索が許可されていないディレクトリ
                        が含まれています。

     [ENOTDIR]          パスの構成要素中にディレクトリ以外のものが含まれていま
                        す。

     [ENAMETOOLONG]     パス名の構成要素が 255 文字を越えているか、またはパス
                        名全体が 1023 文字を越えています。

     [ENOENT]           指定されたファイルが存在しません。

     [ELOOP]            パス名を変換するときに検出されたシンボリックリンクが多
                        すぎます。

     [EROFS]            Q_QUOTAON で、割り当て制限を記録したファイルが読取り専
                        用ファイルシステム上にあります。

     [EIO]              割り当て制限を記録したファイルに読み書きしている間に
                        I/O (入出力) エラーが発生しました。

     [EFAULT]           無効な addr が指定されました。対応する構造体をカーネル
                        に、またはカーネルからコピーできませんでした。

     [EFAULT]           path が、プロセスに割り当てられたアドレス空間の範囲外
                        を指しています。

     [EPERM]            特権が必要な呼び出しであったにも関わらず、スーパユーザ
                        以外のユーザによって呼び出されました。


関連項目

     quota(1), fstab(5), edquota(8), quotacheck(8), quotaon(8), repquota(8)


バグ

     このシステムコールを setrlimit(2) および getrlimit(2) で提供されるリソー
     ス制限に関するインタフェースと統合する、何らかの方法があるはずです。


歴史

     quotactl() 関数は 4.3BSD-Reno で登場しました。

FreeBSD 4.4                      March 5, 1999                     FreeBSD 4.4

ABELNET VPSサービス