getrusage() - Unix,Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於TP  

getrusage() - Unix,Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

getrusage - 獲取資源使用情況

語法

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

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

描述

getrusage() 返回當前資源使用情況,對於 whoRUSAGE_SELFRUSAGE_CHILDREN。前者請求當前程序使用的資源,後者請求其已終止並已等待的子程序使用的資源。

struct rusage {
    struct timeval ru_utime; /* user time used */
    struct timeval ru_stime; /* system time used */
    long   ru_maxrss;        /* maximum resident set size */
    long   ru_ixrss;         /* integral shared memory size */
    long   ru_idrss;         /* integral unshared data size */
    long   ru_isrss;         /* integral unshared stack size */
    long   ru_minflt;        /* page reclaims */
    long   ru_majflt;        /* page faults */
    long   ru_nswap;         /* swaps */
    long   ru_inblock;       /* block input operations */
    long   ru_oublock;       /* block output operations */
    long   ru_msgsnd;        /* messages sent */
    long   ru_msgrcv;        /* messages received */
    long   ru_nsignals;      /* signals received */
    long   ru_nvcsw;         /* voluntary context switches */
    long   ru_nivcsw;        /* involuntary context switches */
};

返回值

成功時,返回零。失敗時,返回 -1,並且 errno 被相應地設定。

錯誤

標籤描述
EFAULT usage 指向可訪問地址空間之外。
EINVAL who 無效。

符合標準

SVr4, 4.3BSD。POSIX.1-2001 指定了 getrusage(),但僅指定了 ru_utimeru_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_utimeru_stimeru_minfltru_majflt 欄位。從 Linux 2.6 開始,還維護 ru_nvcswru_nivcsw

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.