> Linux Reviews > man >

getrusage


  1. getrusage.2.man


1. getrusage.2.man

Manpage of GETRUSAGE

GETRUSAGE

Section: Linux Programmer's Manual (2)
Updated: 2009-08-25
Index Return to Main Contents
 

名前

getrusage - 資源の使用量を取得する  

書式

#include <sys/time.h>
#include <sys/resource.h>

int getrusage(int who, struct rusage *usage);  

説明

getrusage() は who の資源 (resource) の使用量を返す。 who には以下のいずれか一つを指定できる。

RUSAGE_SELF
呼び出したプロセスの資源使用量、 そのプロセス内の全スレッドが使用している資源の合計を返す。

前者は呼び出したプロセスのリソース使用量を要求し、 後者は呼び出したプロセスの子供のうち 終了して待ち状態にあるプロセスの使用量を要求する。

RUSAGE_CHILDREN
呼び出したプロセスの子プロセスのうち、 終了して待ち状態にある全プロセスが使用している資源使用量の統計を返す。 これらの統計情報には、孫プロセスやその子孫のプロセスのうち、 削除待ちのものが使用している資源も含まれる。
RUSAGE_THREAD (Linux 2.6.26 以降)
呼び出したスレッドに関する資源使用量の統計を返す。

資源使用量は usage が指す構造体に格納されて返される。 構造体は以下の形式である。

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_utimeru_stime だけである。

RUSAGE_THREAD は Linux 固有である。  

注意

execve(2) の前後でリソース使用量の指標は保持される。

今日では <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 もメンテナンスされている。 Linux 2.6.22 以降では ru_inblock, ru_oublock もメンテナンスされている。

proc(5) にある /proc/PID/stat の説明も参照のこと。  

関連項目

clock_gettime(2), getrlimit(2), times(2), wait(2), wait4(2), clock(3)


 

Index

名前
書式
説明
返り値
エラー
準拠
注意
関連項目

This document was created by man2html using the manual pages.
Time: 17:38:27 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - nl - pl - SVENSKA