quotactl - システムコールの説明 - Linux コマンド集 一覧表
名前
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>
#include <errno.h>
_syscall4(int, quotactl, int, cmd, const char *, special, int, id, caddr_t, addr) /* Using syscall(2) may be preferable; see intro(2) */
説明
quota システムは、各々のユーザ及び/またはグループに対して、
ソフト・リミット及びハード・リミットを定める。これはあるファイル・システムで
使用する事が出来るディスク容量を制限する。
ハード・リミットは超過することは出来ない。
ソフト・リミットは超過する事が出来るが、警告が発せられる。
更に、(デフォルトでは) 一週間以上ソフト・リミットを超過したままに
しておく事はできない: 一週間経過した後はハード・リミットを超過したと
みなされる。
quotactl
()システムコールはこれらの quota に対する操作を行なう。
最初の引き数は
QCMD(
subcmd
,
type
)
という形式である。
type
には、ユーザー quota については
USRQUOTA
を、グループ quota については
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 が適切な値に設定される。
エラー
- EACCES
- quota ファイルが普通のファイルではない。
- EBUSY
- Q_QUOTAON の要求がなされたが、quota(s) は既に有効になっている。
- EFAULT
- addr の値に誤りがある。
- EINVAL
- type が既知の quota の形式ではない。もしくは、 special デバイスが見付からなかった。
- EIO
- quota ファイルへの読み書きが出来ない。
- EMFILE
- ファイルをオープンしすぎている: quota ファイルをオープン出来ない。
- ENODEV
- special がマウント・テーブル内に見当たらない。
- ENOPKG
- quota を使用可にしてカーネルをコンパイルしていない。
- ENOTBLK
- special がブロック・スペシャル・デバイスではない。
- EPERM
- プロセスが (そのファイル・システムの) root のものではなく、 かつプロセス自身のものとは異なる id に対して Q_GETQUOTA 要求を行なった。 もしくは、 Q_GETSTATS , Q_SYNC 以外の要求がなされた。
- ESRCH
- quota が有効になっていないファイル・システムに対して Q_GETQUOTA , Q_SETQUOTA , Q_SETUSE , Q_SETQLIM のいずれかの要求がなされた。
準拠
BSD
関連項目
quota
(1),
getrlimit
(2),
setrlimit
(2),
ulimit
(3),
quotacheck
(8),
quotaon
(8)