Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GETRUSAGE(2)		      System Calls Manual		  GETRUSAGE(2)

NAME
       getrusage -- get	information about resource utilization

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<sys/types.h>
       #include	<sys/time.h>
       #include	<sys/resource.h>
       #define	  RUSAGE_SELF	   0
       #define	  RUSAGE_CHILDREN -1
       #define	  RUSAGE_THREAD	  1

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

DESCRIPTION
       The  getrusage()	 system	 call  returns	information describing the re-
       sources utilized	by the current thread, the current process, or all its
       terminated child	processes.  The	who argument is	either	RUSAGE_THREAD,
       RUSAGE_SELF,  or	 RUSAGE_CHILDREN.   The	 buffer	to which rusage	points
       will be filled in with the following structure:

       struct rusage {
	       struct timeval ru_utime;	/* user	time used */
	       struct timeval ru_stime;	/* system time used */
	       long ru_maxrss;		/* 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	*/
       };

       The fields are interpreted as follows:

       ru_utime	    the	total amount of	time spent executing in	user mode.

       ru_stime	    the	total amount of	time spent in the system executing  on
		    behalf of the process(es).

       ru_maxrss    the	maximum	resident set size utilized (in kilobytes).

       ru_ixrss	    an	"integral"  value indicating the amount	of memory used
		    by the text	segment	 that  was  also  shared  among	 other
		    processes.	 This value is expressed in units of kilobytes
		    * ticks-of-execution.  Ticks are statistics	 clock	ticks.
		    The	    statistics	  clock	   has	  a    frequency    of
		    sysconf(_SC_CLK_TCK) ticks per second.

       ru_idrss	    an integral	value of the amount of unshared	memory	resid-
		    ing	 in  the data segment of a process (expressed in units
		    of kilobytes * ticks-of-execution).

       ru_isrss	    an integral	value of the amount of unshared	memory	resid-
		    ing	 in the	stack segment of a process (expressed in units
		    of kilobytes * ticks-of-execution).

       ru_minflt    the	number of page faults serviced without any I/O	activ-
		    ity;  here	I/O activity is	avoided	by "reclaiming"	a page
		    frame from the list	of pages awaiting reallocation.

       ru_majflt    the	number of page faults serviced that required  I/O  ac-
		    tivity.

       ru_nswap	    the	 number	 of  times a process was "swapped" out of main
		    memory.

       ru_inblock   the	number of times	the file system	had to perform input.

       ru_oublock   the	number of times	the file system	had to perform output.

       ru_msgsnd    the	number of IPC messages sent.

       ru_msgrcv    the	number of IPC messages received.

       ru_nsignals  the	number of signals delivered.

       ru_nvcsw	    the	number of times	a context switch  resulted  due	 to  a
		    process  voluntarily  giving  up  the processor before its
		    time slice was completed (usually to await availability of
		    a resource).

       ru_nivcsw    the	number of times	a context switch  resulted  due	 to  a
		    higher  priority  process becoming runnable	or because the
		    current process exceeded its time slice.

NOTES
       The numbers ru_inblock and ru_oublock account only for real  I/O;  data
       supplied	 by the	caching	mechanism is charged only to the first process
       to read or write	the data.

RETURN VALUES
       The getrusage() function	returns	the value 0 if	successful;  otherwise
       the  value -1 is	returned and the global	variable errno is set to indi-
       cate the	error.

ERRORS
       The getrusage() system call will	fail if:

       [EINVAL]		  The who argument is not a valid value.

       [EFAULT]		  The address specified	by the rusage argument is  not
			  in a valid part of the process address space.

SEE ALSO
       gettimeofday(2),	wait(2), clocks(7)

HISTORY
       The  getrusage()	system call appeared in	4.2BSD.	 The RUSAGE_THREAD fa-
       cility first appeared in	FreeBSD	8.1.

BUGS
       There is	no way to obtain information about a child  process  that  has
       not yet terminated.

FreeBSD	13.2			  May 1, 2010			  GETRUSAGE(2)

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | NOTES | RETURN VALUES | ERRORS | SEE ALSO | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=getrusage&sektion=2&manpath=FreeBSD+14.0-RELEASE+and+Ports>

home | help