blob: 50f21e0592af19acf94f554909e867d966e58c9a [file] [log] [blame]
<html lang="en">
<head>
<title>Processor Time - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Processor-And-CPU-Time.html#Processor-And-CPU-Time" title="Processor And CPU Time">
<link rel="prev" href="CPU-Time.html#CPU-Time" title="CPU Time">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.
This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).
Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below. A
copy of the license is included in the section entitled "GNU Free
Documentation License".
(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual. Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Processor-Time"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="CPU-Time.html#CPU-Time">CPU Time</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Processor-And-CPU-Time.html#Processor-And-CPU-Time">Processor And CPU Time</a>
<hr>
</div>
<h4 class="subsection">21.3.2 Processor Time Inquiry</h4>
<p>The <code>times</code> function returns information about a process'
consumption of processor time in a <code>struct&nbsp;tms</code><!-- /@w --> object, in
addition to the process' CPU time. See <a href="Time-Basics.html#Time-Basics">Time Basics</a>. You should
include the header file <samp><span class="file">sys/times.h</span></samp> to use this facility.
<a name="index-processor-time-2611"></a><a name="index-CPU-time-2612"></a><a name="index-sys_002ftimes_002eh-2613"></a>
<!-- sys/times.h -->
<!-- POSIX.1 -->
<div class="defun">
&mdash; Data Type: <b>struct tms</b><var><a name="index-struct-tms-2614"></a></var><br>
<blockquote><p>The <code>tms</code> structure is used to return information about process
times. It contains at least the following members:
<dl>
<dt><code>clock_t tms_utime</code><dd>This is the total processor time the calling process has used in
executing the instructions of its program.
<br><dt><code>clock_t tms_stime</code><dd>This is the processor time the system has used on behalf of the calling
process.
<br><dt><code>clock_t tms_cutime</code><dd>This is the sum of the <code>tms_utime</code> values and the <code>tms_cutime</code>
values of all terminated child processes of the calling process, whose
status has been reported to the parent process by <code>wait</code> or
<code>waitpid</code>; see <a href="Process-Completion.html#Process-Completion">Process Completion</a>. In other words, it
represents the total processor time used in executing the instructions
of all the terminated child processes of the calling process, excluding
child processes which have not yet been reported by <code>wait</code> or
<code>waitpid</code>.
<a name="index-child-process-2615"></a>
<br><dt><code>clock_t tms_cstime</code><dd>This is similar to <code>tms_cutime</code>, but represents the total processor
time system has used on behalf of all the terminated child processes
of the calling process.
</dl>
<p>All of the times are given in numbers of clock ticks. Unlike CPU time,
these are the actual amounts of time; not relative to any event.
See <a href="Creating-a-Process.html#Creating-a-Process">Creating a Process</a>.
</p></blockquote></div>
<!-- sys/times.h -->
<!-- POSIX.1 -->
<div class="defun">
&mdash; Function: clock_t <b>times</b> (<var>struct tms *buffer</var>)<var><a name="index-times-2616"></a></var><br>
<blockquote><p>The <code>times</code> function stores the processor time information for
the calling process in <var>buffer</var>.
<p>The return value is the calling process' CPU time (the same value you
get from <code>clock()</code>. <code>times</code> returns <code>(clock_t)(-1)</code> to
indicate failure.
</p></blockquote></div>
<p><strong>Portability Note:</strong> The <code>clock</code> function described in
<a href="CPU-Time.html#CPU-Time">CPU Time</a> is specified by the ISO&nbsp;C<!-- /@w --> standard. The
<code>times</code> function is a feature of POSIX.1. In the GNU system, the
CPU time is defined to be equivalent to the sum of the <code>tms_utime</code>
and <code>tms_stime</code> fields returned by <code>times</code>.
</body></html>