ブログせつめい

このブログはタイトルの通り、メモ代わりです。
内容に関しては誤っている個所があるかと思いますので、参考にされる場合は、要検討のうえご利用ください。
また、気になったことなどLinux以外の話もあります。

2011年11月10日木曜日

acct()

システムコール

#include


int acct(const char *filename);

説明

存在するファイルの名前を引き数として呼び出されたら、アカウント (account) がオンにされ、終了したプロセスの記録が filename に追加される。 NULL を引き数として呼び出されたらアカウントをオフにする。
返り値

成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
エラー

EACCES
指定したファイルへの書き込み許可がなく、書き込みが拒否された。
EACCES
指定したファイルへの書き込み許可がなく、書き込みが拒否された。または filename のディレクトリ部分の何れかのディレクトリに検索許可がなく拒否された (path_resolution (2) も参照すること)。または 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
使用可能なファイル構造体がないか、メモリが足りない。


プロセスアカウンティングを実行する際にやってる acctonってのはこれをよんでるっぽい。
で、CPUの定期割り込み時に元々取得してるアカウンティング情報をログとして書き出すと。
⇒manにはプロセスが終了した毎に取りにいく的な記述もあるから定期割り込みにのせてるのか微妙だなぁ。。。。。。。。。。。。。。。。。。。。。。。。


0 件のコメント:

コメントを投稿