Rechercher une page de manuel
getrusage
Langue: ja
Version: 2004-11-16 (fedora - 25/11/07)
Section: 2 (Appels système)
名前
getrusage - 資源の使用量を取得する書式
#include <sys/time.h>#include <sys/resource.h>
int getrusage(int who, struct rusage *usage);
説明
getrusage() は現在の資源 (resource) の使用量 (usage) を返す。 who には RUSAGE_SELF か RUSAGE_CHILDREN のどちらかを指定する。 前者は呼び出したプロセスのリソース使用量を要求し、 後者は呼び出したプロセスの子供のうち 終了して待ち状態にあるプロセスの使用量を要求する。
struct rusage { struct timeval ru_utime; /* 使用されたユーザー時間 */ struct timeval ru_stime; /* 使用されたシステム時間 */ long ru_maxrss; /* RAM 上に存在する仮想ページのサイズ (resident set size) の最大値 */ 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; /* 意図しないコンテキスト切り替え */ };
返り値
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno に適切な値が設定される。エラー
- EFAULT
- usage がアクセス可能なアドレス空間の外を指している。
- EINVAL
- who が無効である。
準拠
SVr4, 4.3BSD. POSIX.1-2001 は getrusage() を規定しているが、規定しているフィールドは ru_utime と ru_stime だけである。注意
今日では <sys/time.h> をインクルードする必要はないが、 インクルードしておけば移植性が増す。 (実際 struct timeval は <sys/time.h> で定義されている。)2.6.9 より前のバージョンの Linux カーネルでは、 SIGCHLD の処理が SIG_IGN に設定されていると、 子プロセスのリソース使用量が RUSAGE_CHILDREN で返される値に自動的に含められる。 しかし POSIX.1-2001 では、これを明確に禁止している。 この準拠していなかった点は、Linux 2.6.9 以降で改正された。
上記の構造体は 4.3BSD Reno のものを採用した。 Linux では全てのフィールドが意味を持つというわけではない。 Linux 2.4 では、フィールド ru_utime, ru_stime, ru_minflt, ru_majflt のみがメンテナンスされている。 Linux 2.6 以降では ru_nvcsw, ru_nivcsw もメンテナンスされている。
関連項目
getrlimit(2), times(2), wait(2), wait4(2)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre