quotactl

QUOTACTL(2)                 Linux Programmer's Manual                QUOTACTL(2)



名前
       quotactl - ディスク quota を操作する

書式
       #include <sys/types.h>
       #include <sys/quota.h>

       int quotactl (int cmd, const char *special, int id , caddr_t addr);

       #include <linux/unistd.h>

       _syscall4(int, quotactl, int, cmd, const char *, special , int, id,
       caddr_t, addr);

説明
       quota システムは、各々のユーザ及び/又はグループに対して、 ソフト・リミット及びハード・リミットを定める。これはあるファイル・システムで
       使用する事が出来るディスク容量を制限する。 ハード・リミットは超過することは出来ない。 ソフト・リミットは超過する事が出来るが、警告が発せられる。
       更に、(ディフォルトでは)一週間以上ソフト・リミットを超過したままに しておく事はできない: 一週間経過した後はハード・リミットを超過したと
       みなされる。

       quotactl システムコールはこれらの quota に対する操作を行なう。 最初の引数は QCMD(subcmd,type)
       という形式であり、 type には、ユーザーの quota とグループの quota のいずれを操作するかに依って、各々 USRQUOTA 又は
       GRPQUOTA を指定する。 subcmd は以下で説明する。

       二番目の引数 special は quota を適用するデバイスのブロック・スペシャル・ファイルである。
       そのデバイスはマウントされていなくてはならない。

       三番目の引数 id には、(必要な場合に) quota を適用するユーザーもしくはグループの id を指定する。

       四番目の引数 addr には、コマンドごとに異ったデータ構造体のアドレスを指定する。

       subcmd は以下のいずれかである

       Q_QUOTAON  quota を有効にする。 addr 引数には、そのファイル・システムの quota が記録されているファイルの
                  パス名を指定する。

       Q_QUOTAOFF quota を無効にする。

       Q_GETQUOTA ディスク使用量の制限値と現在の使用量を得る。 addr 引数は( <sys/quota.h> で定義された) dqblk
                  構造体を指すポインタである。

       Q_SETQUOTA 制限値と現在の使用量を設定する: addr は同上。

       Q_SETQLIM  制限値を設定する; addr は同上。

       Q_SETUSE   使用量を設定する。

       Q_SYNC     ファイル・システムの quota ファイルをディスクと同期させる。

       Q_GETSTATS 収集された統計を取得する。


返り値
       quotactl は、成功時には 0 を返す。エラー時は、-1 を返すとともに、 errno が適切な値に設定される。

エラー
       ENOPKG   quota を使用可にしてカーネルをコンパイルしていない。

       EFAULT   addr の値に誤りがある。

       EINVAL   type が既知の quota の形式ではない。もしくは、 special デバイスが見付からなかった。

       ENOTBLK  special がブロック・スペシャル・デバイスではない。

       ENODEV   special がマウント・テーブル内に見当たらない。

       EACCES   quota ファイルが普通のファイルではない。

       EIO      quota ファイルへの読み書きが出来ない。

       EMFILE   ファイルをオープンしすぎている: quota ファイルをオープン出来ない。

       EBUSY    Q_QUOTAON の要求がなされたが、quota は既に有効になっていいる。

       ESRCH    quota が有効になっていないファイル・システムに対して Q_GETQUOTA Q_SETQUOTA Q_SETUSEQ_SETQLIM のいずれかの要求がなされた。

       EPERM    プロセスが(そのファイル・システムの) root のものではなく、 且つプロセス自身のものとは異なる id に対して
                Q_GETQUOTA 要求を行なった。 もしくは、 Q_GETSTATS , Q_SYNC 以外の要求がなされた。

準拠
       BSD

関連項目
       getrlimit(2), setrlimit(2), ulimit(2)



Linux 1.3.88                      14 April 1996                      QUOTACTL(2)