EN JA
ACCT(2)
ACCT(2) FreeBSD System Calls Manual ACCT(2)

名称

acctプロセスアカウンティングを有効または無効にする

ライブラリ

Standard C Library (libc, -lc)

書式

#include < unistd.h>

int
acct( const char *file);

解説

acct() システムコールは、システムアカウンティングレコードの収集を有効または無効にします。引数 file が NULL ポインタである場合、アカウンティングは無効にされます。 file既存 のパス名 (ヌル文字で終わる) の場合、レコード収集が有効になり、開始されて通常の状態で終了した各プロセスについてのアカウンティングレコードが file に追加されます。異常な終了状態とは、再起動またはその他の致命的なシステムの問題です。決して終了しないプロセス用のレコードは acct() によっては作成できません。

acct() が使用するレコード構造体の詳細については、 < sys/acct.h> および acct(5) を参照してください。

この呼び出しはスーパユーザにだけ許可されてます。

アカウンティングファイルが存在しているファイルシステムの空き容量が少なくなると、アカウンティングは自動的に無効になります。空き容量が増えて再び利用できるようになると有効になります。この振舞いを制御する値は、以下の sysctl(8) 変数を使用して変更することが可能です:
kern.acct_chkfreq
空きディスク領域がチェックされるべき頻度を (秒単位で) 指定します。
kern.acct_resume
プロセスアカウンティングを再開する、空きディスク領域のパーセンテージです。
kern.acct_suspend
プロセスアカウンティングを中断する、空きディスク領域のパーセンテージです。

戻り値

エラーの場合は、-1 が返されます。ファイルは、存在していなければならず、呼び出しは、スーパユーザだけが行使できます。

エラー

acct() システムコールは、次の 1 つが真であるなら、失敗します:
[ EPERM]
スーパユーザ以外のユーザによって呼び出されました。
[ ENOTDIR]
パスの構成要素中にディレクトリ以外のものが含まれています。
[ ENAMETOOLONG]
パス名の構成要素が 255 文字を越えているか、またはパス名全体が 1023 文字を越えています。
[ ENOENT]
指定されたファイルが存在しません。
[ EACCES]
パスの先頭構成要素について検索パーミッションが拒否されているか、またはパス名が通常のファイルではありません。
[ ELOOP]
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
[ EROFS]
指定されたファイルは読み込み専用ファイルシステム上にあります。
[ EFAULT]
file 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。
[ EIO]
ファイルシステムに読み書きしている間に入出力エラーが発生しました。

関連項目

acct(5), accton(8), sa(8)

歴史

acct() 関数は、 Version 7 AT&T UNIX で登場しました。
April 17, 2004 FreeBSD