Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ quotactl(2) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

quota(1)

getrlimit(2)

mount(2)

quotacheck(8)

quotaon(8)

QUOTACTL(2)  —  NEWS-OS Programmer’s Manual

名称

quotactl − ディスク割り当てを操作する

形式

#include <ufs/quota.h>
int quotactl(cmd, special, uid, addr)
int cmd;
char ∗special;
int uid;
caddr_t addr;

解説

quotactl() コールは、 ディスク割り当てを 操作します。 cmd は、ユーザ ID uid に適用されるコマンドを 示します。 special は、 操作されるファイルシステムのブロック型 特殊デバイスのパス名が収められている、 ナルで終了する文字列へのポインタです。 このブロック型特殊デバイスは UFS ファイルシステムとして マウントされていなければなりません ( mount(2) 参照)。 addr システム内またはシステム外でコピーされる、 コマンドに固有なオプショナルのデータ構造体のアドレスです。 addr の解釈については、 下記の各コマンドで説明されています。

Q_QUOTAON
ファイルシステムのディスク割り当てを オンにします。 addr は、 そのファイルシステムのディスク割り当てが収められている ファイルのパス名を指します。 その割り当てファイルは、 存在していなければなりません。 このファイルは、 通常、 quotacheck(8) プログラムを 用いて作成されます。 このコールは、 スーパーユーザだけに限定されています。

Q_QUOTAOFF
ファイルシステムのディスク割り当てを オフにします。 addr と uid は無視されます。 このコールは、 スーパーユーザだけに限定されています。

Q_GETQUOTA
ユーザ uid のディスク割り当ての制限値と現在の使用状況を 取り出します。 addr は、 (<ufs/quota.h> に定義されている) dqblk 構造体へのポインタです。 スーパーユーザだけが、 自分以外のユーザの割り当てを 取り出すことができます。

Q_SETQUOTA
ユーザ uid のディスク割り当ての制限値と現在の使用状況を セットします。 addr は、 (<ufs/quota.h> に定義されている) dqblk 構造体へのポインタです。 このコールは、 スーパーユーザだけに限定されています。

Q_SETQLIM
ユーザ uid のディスク割り当ての制限値を セットします。 addr は、 (<ufs/quota.h> に定義されている) dqblk 構造体へのポインタです。 このコールは、 スーパーユーザだけに限定されています。

Q_SYNC
ファイルシステムのディスク割り当て使用の ディスク上のコピーを 更新します。 special がナルの場合、現在割り当てられている 全てのファイルシステムがシンクされます。 addr と uid は無視されます。

リターン値

正常終了した場合には、 値 0 が返されます。 そうでない場合には、 −1 が返され、 errno がエラーを 示すようにセットされます。

エラー

以下に示されている項目のうち、1 つが発生した場合、 quotactl() は失敗します。

EINVAL
カーネルが QUOTA オプションでコンパイルされていない。

EINVAL
cmd が有効ではない。

ESRCH
指定されたユーザのディスク割り当てがない、 または、このファイルシステム用に 割り当てがなされていない。

EPERM
コールが特権を 必要とするものであり、 呼び出しユーザがスーパーユーザではない。

ENODEV
special はマウントされている UFS ファイルシステムではない。

ENOTBLK
special がブロック型デバイスではない。

EACCES
(Q_QUOTAON) addr が指す割り当てファイルは存在するが 普通のファイルではないか、 specail が指すファイルシステムではない。

EBUSY
別の Q_QUOTAON または Q_QUOTAOFF が進行中に、 Q_QUOTAON を試みた。

EUSERS
割り当てテーブルがいっぱいである。

ENOENT
special か addr で指定されたファイルが存在しない。

EFAULT
specail か addr が無効である。

関連事項

quota(1), getrlimit(2), mount(2), quotacheck(8), quotaon(8)

バグ

このコールを、 setrlimit と getrlimit(2) によって提供されているリソース制限インターフェースに統合する なんらかの方法が必要です。 setrlimit と getrlimit(2) は、メルボルン quota とは互換性がありません。

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026