スポンサーリンク

ACCT(2) FreeBSD システムコールマニュアル ACCT(2)

名称

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

ライブラリ

標準 C ライブラリ (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() システムコールは次の場合に処理を失敗します:

       [EPERM]

スーパユーザ以外のユーザによって呼び出されました。

[ENOTDIR]
パスの構成要素中にディレクトリ以外のものが含まれていま す。

[ENAMETOOLONG]
パス名の構成要素が 255 文字を越えているか、またはパス 名全体が 1023 文字を越えています。

[ENOENT]
指定されたファイルが存在しません。

[EACCES]
パスの先頭構成要素について検索パーミッションが拒否され ているか、またはパス名が通常のファイルではありません。

[ELOOP]
パス名を変換するときに検出されたシンボリックリンクが多 すぎます。

[EROFS]
指定されたファイルは読取り専用ファイルシステム上にあり ます。

[EFAULT]
file
引数が、プロセスに割り当てられたアドレス空間の範 囲外を指しています。

[EIO]
ファイルシステムに読み書きしている間に入出力エラーが発 生しました。

関連項目

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

歴史

acct() 関数は Version 7 AT&T UNIX で登場しました。

FreeBSD 10.0 April 17, 2004 FreeBSD 10.0

スポンサーリンク