名前
acct - プロセス・アカウントのオンとオフを切り換える
書式
#include <unistd.h>
int acct(const char *filename);
説明
存在するファイルの名前を引き数として呼び出されたら、アカウント (account) が オンにされ、終了したプロセスの記録が filename に追加される。 NULL を引き数として呼び出されたらアカウントをオフにする。
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
エラー
EACCES | 指定したファイルへの書き込み許可がなく、書き込みが拒否された。 |
EACCES | 指定したファイルへの書き込み許可がなく、書き込みが拒否された。 または filename のディレクトリ部分の何れかのディレクトリに検索許可がなく拒否された (path_resolution(7) も参照すること)。 または filename が通常 (regular) のファイルでない。 |
EFAULT | アクセスできるアドレス空間の外を filename が指している。 |
EIO | filename への書き込みにエラーが発生した。 |
EISDIR | filename がディレクトリである。 |
ELOOP | filename の実体にたどり着くまでのシンボリックリンクの数が多すぎる。 |
ENAMETOOLONG | |
filename が長すぎる。 | |
ENFILE | オープンされたファイルの総数がシステム制限に達した。 |
ENOENT | 指定されたファイルが存在しない。 |
ENOMEM | メモリが足りない。 |
ENOSYS | カーネルをコンパイルした時に BSD プロセス・アカウントが有効になっていない。 この機能はカーネルのコンフィグの CONFIG_BSD_PROCESS_ACCT パラメータによって制御される。 |
ENOTDIR | |
filename の中でディレクトリして扱われている要素が、 実際はディレクトリでない。 | |
EPERM | 呼び出したプロセスにはプロセス・アカウントを有効にするのに十分な特権がない。 Linux では CAP_SYS_PACCT ケーパビリティ (capability) が必要である。 |
EROFS | 読み込みだけのファイルシステム上のファイルを filename が参照している。 |
EUSERS | 使用可能なファイル構造体がないか、メモリが足りない。 |
準拠
SVr4, 4.3BSD (POSIX ではない)。
注意
クラッシュ (crash) した時に実行中だったプログラムのアカウントは生成されない。 特に、終了しないプログラムがアカウントされることはない。