@node getrusage, unix @subheading Syntax @example #include #include int getrusage(int who, struct rusage *rusage); @end example @subheading Description This function returns information about the running process. The structure @code{struct rusage} is defined on @code{} as follows: @example struct rusage @{ struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss; /* integral max resident set size */ long ru_ixrss; /* integral shared text 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 */ @}; @end example Currently, the only field that is computed is @code{ru_utime}. It is computed as the total elapsed time used by the calling program. The remainder of the fields are set to zero. The @var{who} parameter must be @code{RUSAGE_SELF} or @code{RUSAGE_CHILDREN}. @subheading Return Value Zero on success, nonzero on failure. @subheading Portability @portability !ansi, !posix @subheading Example @example struct rusage r; getrusage(RUSAGE_SELF, &r); @end example