書式
#include <unistd.h>
int acct(const char *filename);
glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):
acct(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
説明
acct() システムコールは、プロセス・アカウントの有効・無効を切り替える。 既存のファイルの名前を引き数に指定して呼び出されたら、 アカウント (account) が有効になり、 終了したプロセスの記録が filename に追記される。 NULL を引き数として呼び出されたらアカウントをオフにする。返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。エラー
- 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 ではない)。注意
システムがクラッシュした時に実行中だったプログラムのアカウントは生成されない。 特に、終了しないプログラムがアカウントされることはない。アカウント用ファイルに書き込まれるレコードの構造体については acct(5) に説明がある。
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.65 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。