rmprojdb サブルーチン

目的

指定されたプロジェクト・データベースから指定されたプロジェクト定義を除去します。

ライブラリー

libaacct.a ライブラリー。

構文

<sys/aacct.h>

rmprojdb(void *handle, struct project *project, int flag)

説明

rmprojdb サブルーチンは、struct プロジェクト変数に保管されているプロジェクト定義を、 ハンドル パラメーターによって指定されたプロジェクトから除去します。 このサブルーチンを呼び出す前に、プロジェクト・データベースを初期化する必要があります。 この目的のために、 プロジェクト・ロケーション および プロジェクト・ファイナライズ サブルーチンが用意されています。 指定されたプロジェクト定義が指定されたプロジェクト・データベースに存在しない場合、 rmprojdb サブルーチンは -1 を戻し、errno に ENOENTを設定します。

rmprojdb サブルーチンは、プロジェクト構造体へのポインターを入力引数として取ります。 このプロジェクト構造へのポインターは、除去する必要があるプロジェクトの名前または番号を保持します。 フラグ・パラメーターは、以下のように、名前または番号が入力として提供されるかどうかを示すために設定されます。
  • PROJ_NAME-指定されたプロジェクト定義にプロジェクト名のみが含まれていることを示します。
  • PROJ_NUM-指定されたプロジェクト定義にはプロジェクト番号のみがあることを示します。

プロジェクト・データベースに関連付けられた内部状態 (つまり、現行プロジェクト) があります。 プロジェクト・データベースが初期化されると、現行プロジェクトがデータベース内の最初のプロジェクトになります。 rmprojdb サブルーチンは、指定されたプロジェクトを除去し、内部現行プロジェクトを最初のプロジェクト定義に位置変更します。

パラメーター

項目 説明
処理 プロジェクト・データベース・ハンドルへのポインター。
プロジェクト 追加されるプロジェクトの定義を保持するプロジェクト構造を指すポインター。
flag プロジェクトの名前または番号が指定されているかどうかを示す整数フラグ。

セキュリティー

特権ユーザーの場合のみ。 CAP_AACCT 機能をユーザーに付与することにより、特権を非 root ユーザーに拡張することができます。

戻り値

項目 説明
0 成功
-1 障害

エラー・コード

項目 説明
ENOENT プロジェクト定義が存在しません
EPERM アクセス権がありません。 ユーザーは特権ユーザーではありません。
EINVAL 渡されたポインターが NULL であるか、 パラメーターが無効な値を保持しています。