GETRUSAGE(2) FreeBSD システムコールマニュアル GETRUSAGE(2)
名称
getrusage − リソース利用についての情報を得る |
ライブラリ
標準 C ライブラリ (libc, −lc) |
書式
#include <sys/types.h> |
#define |
RUSAGE_SELF |
0 |
|||||
#define |
RUSAGE_CHILDREN |
-1 |
int |
getrusage(int who, struct rusage *rusage); |
解説 |
getrusage() システムコールは、現在のプロセス、またはそのプロセスが生成し て、終了済みであるすべての子プロセスが使用したリソースを詳しく説明する情 報を返します。 who 引数は RUSAGE_SELF または RUSAGE_CHILDREN のどちらかで す。 rusage が指すバッファには次の構造体が入れられます。 struct rusage { struct timeval ru_utime; /* 使用されたユーザ時間 */ struct timeval ru_stime; /* 使用されたシステム時間 */ long ru_maxrss; /* 最大常駐セットのサイズ */ long ru_ixrss; /* 共有テキストメモリ総サイズ */ long ru_idrss; /* 非共有データ総サイズ */ long ru_isrss; /* 非共有スタック総サイズ */ long ru_minflt; /* ページ再生数 */ long ru_majflt; /* ページフォルト */ long ru_nswap; /* スワップ */ long ru_inblock; /* ブロック入力操作 */ long ru_oublock; /* ブロック出力操作 */ long ru_msgsnd; /* 送信済みメッセージ */ long ru_msgrcv; /* 受信済みメッセージ */ long ru_nsignals; /* 受信済みシグナル */ long ru_nvcsw; /* 自発的なコンテキストスイッチ */ long ru_nivcsw; /* 非自発的なコンテキストスイッチ */ }; フィールドは次のように解釈されます: |
ru_utime
ユーザモードで処理を実行するのに費やした時間の合計。 ru_stime ru_maxrss ru_ixrss ru_idrss ru_isrss ru_minflt ru_majflt ru_nswap ru_inblock ru_oublock ru_msgsnd ru_msgrcv ru_nsignals ru_nvcsw ru_nivcsw 注 |
ru_inblock と ru_oublock の値は実際の入出力だけについてのものです。キャッ シュメカニズムによって提供されるデータは、データを読取りまたは書込みを行 う最初のプロセスについてのみカウントされます。 |
戻り値
関数 getrusage() は、処理が成功すると値 0 を返します。そうでない場合、値 -1 が返され、グローバル変数 errno が設定されてエラーを示します。 |
エラー
getrusage() システムコールは次の場合に処理を失敗します: |
[EINVAL]
who 引数が有効な値ではありません。 [EFAULT] 関連項目 |
バグ
まだ終了していない子プロセスに関する情報を得る方法はありません。 |
歴史
getrusage() システムコールは 4.2BSD で登場しました。 FreeBSD 10.0 June 4, 1993 FreeBSD 10.0 |