diff options
Diffstat (limited to 'meta/packages/time')
-rw-r--r-- | meta/packages/time/files/debian.patch | 1299 | ||||
-rw-r--r-- | meta/packages/time/time.inc | 6 | ||||
-rw-r--r-- | meta/packages/time/time_1.7.bb | 9 |
3 files changed, 1314 insertions, 0 deletions
diff --git a/meta/packages/time/files/debian.patch b/meta/packages/time/files/debian.patch new file mode 100644 index 000000000..40df19da4 --- /dev/null +++ b/meta/packages/time/files/debian.patch @@ -0,0 +1,1299 @@ +--- time-1.7.orig/configure.in ++++ time-1.7/configure.in +@@ -1,11 +1,8 @@ + dnl Process this file with autoconf to produce a configure script. + AC_INIT(time.c) +-VERSION=1.7 +-AC_SUBST(VERSION) +-PACKAGE=time +-AC_SUBST(PACKAGE) ++AM_INIT_AUTOMAKE(time, 1.7) + +-AC_ARG_PROGRAM ++AM_MAINTAINER_MODE + + dnl Checks for programs. + AC_PROG_CC +@@ -15,7 +12,7 @@ + dnl Checks for header files. + AC_HEADER_STDC + AC_HEADER_SYS_WAIT +-AC_CHECK_HEADERS(unistd.h string.h sys/rusage.h) ++AC_CHECK_HEADERS(unistd.h string.h sys/rusage.h sys/resource.h) + + dnl Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST +--- time-1.7.orig/version.texi ++++ time-1.7/version.texi +@@ -1,3 +1,3 @@ +-@set UPDATED 12 June 1996 ++@set UPDATED 9 May 2002 + @set EDITION 1.7 + @set VERSION 1.7 +--- time-1.7.orig/time.c ++++ time-1.7/time.c +@@ -147,6 +147,10 @@ + NULL + }; + ++ ++/* If true, do not show the exit message */ ++static boolean quiet; ++ + /* If true, show an English description next to each statistic. */ + static boolean verbose; + +@@ -172,6 +176,7 @@ + {"help", no_argument, NULL, 'h'}, + {"output-file", required_argument, NULL, 'o'}, + {"portability", no_argument, NULL, 'p'}, ++ {"quiet", no_argument,NULL, 'q'}, + {"verbose", no_argument, NULL, 'v'}, + {"version", no_argument, NULL, 'V'}, + {NULL, no_argument, NULL, 0} +@@ -333,7 +338,8 @@ + else if (WIFSIGNALED (resp->waitstatus)) + fprintf (fp, "Command terminated by signal %d\n", + WTERMSIG (resp->waitstatus)); +- else if (WIFEXITED (resp->waitstatus) && WEXITSTATUS (resp->waitstatus)) ++ else if (WIFEXITED (resp->waitstatus) && WEXITSTATUS (resp->waitstatus) ++ && !quiet) + fprintf (fp, "Command exited with non-zero status %d\n", + WEXITSTATUS (resp->waitstatus)); + +@@ -523,6 +529,7 @@ + char *format; /* Format found in environment. */ + + /* Initialize the option flags. */ ++ quiet = false; + verbose = false; + outfile = NULL; + outfp = stderr; +@@ -536,7 +543,7 @@ + if (format) + output_format = format; + +- while ((optc = getopt_long (argc, argv, "+af:o:pvV", longopts, (int *) 0)) ++ while ((optc = getopt_long (argc, argv, "+af:o:pqvV", longopts, (int *) 0)) + != EOF) + { + switch (optc) +@@ -555,6 +562,9 @@ + case 'p': + output_format = posix_format; + break; ++ case 'q': ++ quiet = true; ++ break; + case 'v': + verbose = true; + break; +@@ -642,9 +652,9 @@ + fflush (outfp); + + if (WIFSTOPPED (res.waitstatus)) +- exit (WSTOPSIG (res.waitstatus)); ++ exit (WSTOPSIG (res.waitstatus) + 128); + else if (WIFSIGNALED (res.waitstatus)) +- exit (WTERMSIG (res.waitstatus)); ++ exit (WTERMSIG (res.waitstatus) + 128); + else if (WIFEXITED (res.waitstatus)) + exit (WEXITSTATUS (res.waitstatus)); + } +@@ -657,7 +667,7 @@ + fprintf (stream, "\ + Usage: %s [-apvV] [-f format] [-o file] [--append] [--verbose]\n\ + [--portability] [--format=format] [--output=file] [--version]\n\ +- [--help] command [arg...]\n", ++ [--quiet] [--help] command [arg...]\n", + program_name); + exit (status); + } +--- time-1.7.orig/resuse.h ++++ time-1.7/resuse.h +@@ -36,19 +36,8 @@ + # include <sys/rusage.h> + #else + # define TV_MSEC tv_usec / 1000 +-# if HAVE_WAIT3 ++# if HAVE_SYS_RESOURCE_H + # include <sys/resource.h> +-# else +-/* Process resource usage structure. */ +-struct rusage +-{ +- struct timeval ru_utime; /* User time used. */ +- struct timeval ru_stime; /* System time used. */ +- int ru_maxrss, ru_ixrss, ru_idrss, ru_isrss, +- ru_minflt, ru_majflt, ru_nswap, ru_inblock, +- ru_oublock, ru_msgsnd, ru_msgrcv, ru_nsignals, +- ru_nvcsw, ru_nivcsw; +-}; + # endif + #endif + +--- time-1.7.orig/time.texi ++++ time-1.7/time.texi +@@ -11,6 +11,12 @@ + @finalout + @end iftex + ++@dircategory Individual utilities ++@direntry ++* time: (time). Run programs and summarize ++ system resource usage. ++@end direntry ++ + @ifinfo + This file documents the the GNU @code{time} command for running programs + and summarizing the system resources they use. +@@ -185,6 +191,10 @@ + sys %S + @end example + ++@item -q ++@itemx --quiet ++Suppress non-zero error code from the executed program. ++ + @item -v + @itemx --verbose + @cindex format +--- time-1.7.orig/time.info ++++ time-1.7/time.info +@@ -1,5 +1,10 @@ +-This is Info file ./time.info, produced by Makeinfo-1.55 from the input +-file time.texi. ++This is time.info, produced by makeinfo version 4.1 from time.texi. ++ ++INFO-DIR-SECTION Individual utilities ++START-INFO-DIR-ENTRY ++* time: (time). Run programs and summarize ++ system resource usage. ++END-INFO-DIR-ENTRY + + This file documents the the GNU `time' command for running programs + and summarizing the system resources they use. +@@ -31,7 +36,7 @@ + + * Resource Measurement:: Measuring program resource use. + +- -- The Detailed Node Listing -- ++ --- The Detailed Node Listing --- + + Measuring Program Resource Use + +@@ -58,14 +63,14 @@ + The `time' command runs another program, then displays information + about the resources used by that program, collected by the system while + the program was running. You can select which information is reported +-and the format in which it is shown (*note Setting Format::.), or have ++and the format in which it is shown (*note Setting Format::), or have + `time' save the information in a file instead of displaying it on the +-screen (*note Redirecting::.). ++screen (*note Redirecting::). + + The resources that `time' can report on fall into the general + categories of time, memory, and I/O and IPC calls. Some systems do not + provide much information about program resource use; `time' reports +-unavailable information as zero values (*note Accuracy::.). ++unavailable information as zero values (*note Accuracy::). + + The format of the `time' command is: + +@@ -132,6 +137,10 @@ + user %U + sys %S + ++`-q' ++`--quiet' ++ Suppress non-zero error code from the executed program. ++ + `-v' + `--verbose' + Use the built-in verbose format, which displays each available +@@ -174,7 +183,7 @@ + The resource specifiers, which are a superset of those recognized by + the `tcsh' builtin `time' command, are listed below. Not all resources + are measured by all versions of Unix, so some of the values might be +-reported as zero (*note Accuracy::.). ++reported as zero (*note Accuracy::). + + * Menu: + +@@ -308,11 +317,11 @@ + `-o FILE' + `--output=FILE' + Write the resource use statistics to FILE. By default, this +- *overwrites* the file, destroying the file's previous contents. ++ _overwrites_ the file, destroying the file's previous contents. + + `-a' + `--append' +- *Append* the resource use information to the output file instead ++ _Append_ the resource use information to the output file instead + of overwriting it. This option is only useful with the `-o' or + `--output' option. + +@@ -437,7 +446,7 @@ + + `-a' + `--append' +- *Append* the resource use information to the output file instead ++ _Append_ the resource use information to the output file instead + of overwriting it. + + `-f FORMAT' +@@ -462,17 +471,17 @@ + + + Tag Table: +-Node: Top934 +-Node: Resource Measurement1725 +-Node: Setting Format3678 +-Node: Format String4907 +-Node: Time Resources6214 +-Node: Memory Resources6844 +-Node: I/O Resources7549 +-Node: Command Info8747 +-Node: Redirecting8964 +-Node: Examples9754 +-Node: Accuracy12064 +-Node: Invoking time13586 ++Node: Top1115 ++Node: Resource Measurement1908 ++Node: Setting Format3858 ++Node: Format String5164 ++Node: Time Resources6470 ++Node: Memory Resources7100 ++Node: I/O Resources7805 ++Node: Command Info9003 ++Node: Redirecting9220 ++Node: Examples10010 ++Node: Accuracy12320 ++Node: Invoking time13842 + + End Tag Table +--- time-1.7.orig/time.html ++++ time-1.7/time.html +@@ -0,0 +1,1021 @@ ++<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ++ "http://www.w3.org/TR/html40/loose.dtd"> ++<HTML> ++<!-- Created on September, 1 2003 by texi2html 1.66 --> ++<!-- ++Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author) ++ Karl Berry <karl@freefriends.org> ++ Olaf Bachmann <obachman@mathematik.uni-kl.de> ++ and many others. ++Maintained by: Many creative people <dev@texi2html.cvshome.org> ++Send bugs and suggestions to <users@texi2html.cvshome.org> ++ ++--> ++<HEAD> ++<TITLE>Measuring Program Resource Use</TITLE> ++ ++<META NAME="description" CONTENT="Measuring Program Resource Use"> ++<META NAME="keywords" CONTENT="Measuring Program Resource Use"> ++<META NAME="resource-type" CONTENT="document"> ++<META NAME="distribution" CONTENT="global"> ++<META NAME="Generator" CONTENT="texi2html 1.66"> ++ ++</HEAD> ++ ++<BODY LANG="en" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000"> ++ ++<A NAME="SEC_Top"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H1>Measuring Program Resource Use</H1> ++ ++<P> ++ ++This file documents the the GNU <CODE>time</CODE> command for running programs ++and summarizing the system resources they use. ++This is edition 1.7, for version 1.7. ++</P> ++<P> ++ ++</P> ++<TABLE BORDER="0" CELLSPACING="0"> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC1">1. Measuring Program Resource Use</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Measuring program resource use.</TD></TR> ++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> ++</TH></TR> ++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> -- The Detailed Node Listing --- ++</TH></TR> ++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> ++</TH></TR> ++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">Measuring Program Resource Use ++</TH></TR> ++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> ++</TH></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC2">1.1 Setting the Output Format</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Selecting the information reported by <CODE>time</CODE>.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC3">1.2 The Format String</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">The information <CODE>time</CODE> can report.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC8">1.3 Redirecting Output</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Writing the information to a file.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC9">1.4 Examples</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Examples of using <CODE>time</CODE>.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC10">1.5 Accuracy</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Limitations on the accuracy of <CODE>time</CODE> output.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC11">1.6 Running the <CODE>time</CODE> Command</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Summary of the options to the <CODE>time</CODE> command.</TD></TR> ++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> ++</TH></TR> ++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP">The Format String ++</TH></TR> ++<TR><TH COLSPAN="3" ALIGN="left" VALIGN="TOP"> ++</TH></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC4">1.2.1 Time Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC5">1.2.2 Memory Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC6">1.2.3 I/O Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC7">1.2.4 Command Info</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> ++</TABLE> ++<P> ++ ++<HR SIZE=1> ++<A NAME="SEC1"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC2"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[ << ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<A NAME="Resource Measurement"></A> ++<H1> 1. Measuring Program Resource Use </H1> ++<!--docid::SEC1::--> ++<P> ++ ++The <CODE>time</CODE> command runs another program, then displays information ++about the resources used by that program, collected by the system while ++the program was running. You can select which information is reported ++and the format in which it is shown (see section <A HREF="time.html#SEC2">1.1 Setting the Output Format</A>), or have ++<CODE>time</CODE> save the information in a file instead of displaying it on the ++screen (see section <A HREF="time.html#SEC8">1.3 Redirecting Output</A>). ++</P> ++<P> ++ ++The resources that <CODE>time</CODE> can report on fall into the general ++categories of time, memory, and I/O and IPC calls. Some systems do not ++provide much information about program resource use; <CODE>time</CODE> ++reports unavailable information as zero values (see section <A HREF="time.html#SEC10">1.5 Accuracy</A>). ++</P> ++<P> ++ ++The format of the <CODE>time</CODE> command is: ++</P> ++<P> ++ ++<TABLE><tr><td> </td><td class=example><pre>time [option<small>...</small>] <VAR>command</VAR> [<VAR>arg</VAR><small>...</small>] ++</pre></td></tr></table><P> ++ ++<A NAME="IDX1"></A> ++<CODE>time</CODE> runs the program <VAR>command</VAR>, with any given arguments ++<VAR>arg</VAR><small>...</small>. When <VAR>command</VAR> finishes, <CODE>time</CODE> displays ++information about resources used by <VAR>command</VAR>. ++</P> ++<P> ++ ++Here is an example of using <CODE>time</CODE> to measure the time and other ++resources used by running the program <CODE>grep</CODE>: ++</P> ++<P> ++ ++<TABLE><tr><td> </td><td class=example><pre>eg$ time grep nobody /etc/aliases ++nobody:/dev/null ++etc-files:nobody ++misc-group:nobody ++0.07user 0.50system 0:06.69elapsed 8%CPU (0avgtext+489avgdata 324maxresident)k ++46inputs+7outputs (43major+251minor)pagefaults 0swaps ++</pre></td></tr></table><P> ++ ++Mail suggestions and bug reports for GNU <CODE>time</CODE> to ++<CODE>bug-gnu-utils@prep.ai.mit.edu</CODE>. Please include the version of ++<CODE>time</CODE>, which you can get by running `<SAMP>time --version</SAMP>', and the ++operating system and C compiler you used. ++</P> ++<P> ++ ++<TABLE BORDER="0" CELLSPACING="0"> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC2">1.1 Setting the Output Format</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Selecting the information reported by <CODE>time</CODE>.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC3">1.2 The Format String</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">The information <CODE>time</CODE> can report.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC8">1.3 Redirecting Output</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Writing the information to a file.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC9">1.4 Examples</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Examples of using <CODE>time</CODE>.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC10">1.5 Accuracy</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Limitations on the accuracy of <CODE>time</CODE> output.</TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC11">1.6 Running the <CODE>time</CODE> Command</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP">Summary of the options to the <CODE>time</CODE> command.</TD></TR> ++</TABLE> ++<P> ++ ++<A NAME="Setting Format"></A> ++<HR SIZE="6"> ++<A NAME="SEC2"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC3"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H2> 1.1 Setting the Output Format </H2> ++<!--docid::SEC2::--> ++<P> ++ ++<CODE>time</CODE> uses a <EM>format string</EM> to determine which information to ++display about the resources used by the command it runs. See section <A HREF="time.html#SEC3">1.2 The Format String</A>, for the interpretation of the format string contents. ++</P> ++<P> ++ ++You can specify a format string with the command line options listed ++below. If no format is specified on the command line, but the ++<CODE>TIME</CODE> environment variable is set, its value is used as the format ++string. Otherwise, the default format built into <CODE>time</CODE> is used: ++</P> ++<P> ++ ++<TABLE><tr><td> </td><td class=example><pre>%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k ++%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps ++</pre></td></tr></table><P> ++ ++The command line options to set the format are: ++</P> ++<P> ++ ++</P> ++<DL COMPACT> ++<DT><CODE>-f <VAR>format</VAR></CODE> ++<DD><DT><CODE>--format=<VAR>format</VAR></CODE> ++<DD>Use <VAR>format</VAR> as the format string. ++<P> ++ ++</P> ++<DT><CODE>-p</CODE> ++<DD><DT><CODE>--portability</CODE> ++<DD>Use the following format string, for conformance with POSIX standard ++1003.2: ++<P> ++ ++<TABLE><tr><td> </td><td class=example><pre>real %e ++user %U ++sys %S ++</pre></td></tr></table><P> ++ ++</P> ++<DT><CODE>-q</CODE> ++<DD><DT><CODE>--quiet</CODE> ++<DD>Suppress non-zero error code from the executed program. ++<P> ++ ++</P> ++<DT><CODE>-v</CODE> ++<DD><DT><CODE>--verbose</CODE> ++<DD><A NAME="IDX2"></A> ++Use the built-in verbose format, which displays each available piece of ++information on the program's resource use on its own line, with an ++English description of its meaning. ++</DL> ++<P> ++ ++<A NAME="Format String"></A> ++<HR SIZE="6"> ++<A NAME="SEC3"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC2"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC4"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H2> 1.2 The Format String </H2> ++<!--docid::SEC3::--> ++<P> ++ ++<A NAME="IDX3"></A> ++<A NAME="IDX4"></A> ++The <EM>format string</EM> controls the contents of the <CODE>time</CODE> output. ++It consists of <EM>resource specifiers</EM> and <EM>escapes</EM>, interspersed ++with plain text. ++</P> ++<P> ++ ++A backslash introduces an <EM>escape</EM>, which is translated ++into a single printing character upon output. The valid escapes are ++listed below. An invalid escape is output as a question mark followed ++by a backslash. ++</P> ++<P> ++ ++</P> ++<DL COMPACT> ++<DT><CODE>\t</CODE> ++<DD>a tab character ++<P> ++ ++</P> ++<DT><CODE>\n</CODE> ++<DD>a newline ++<P> ++ ++</P> ++<DT><CODE>\\</CODE> ++<DD>a literal backslash ++</DL> ++<P> ++ ++<CODE>time</CODE> always prints a newline after printing the resource use ++information, so normally format strings do not end with a newline ++character (or `<SAMP>\n</SAMP>'). ++</P> ++<P> ++ ++A resource specifier consists of a percent sign followed by another ++character. An invalid resource specifier is output as a question mark ++followed by the invalid character. Use `<SAMP>%%</SAMP>' to output a literal ++percent sign. ++</P> ++<P> ++ ++The resource specifiers, which are a superset of those recognized by the ++<CODE>tcsh</CODE> builtin <CODE>time</CODE> command, are listed below. Not all ++resources are measured by all versions of Unix, so some of the values ++might be reported as zero (see section <A HREF="time.html#SEC10">1.5 Accuracy</A>). ++</P> ++<P> ++ ++<TABLE BORDER="0" CELLSPACING="0"> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC4">1.2.1 Time Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC5">1.2.2 Memory Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC6">1.2.3 I/O Resources</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> ++<TR><TD ALIGN="left" VALIGN="TOP"><A HREF="time.html#SEC7">1.2.4 Command Info</A></TD><TD> </TD><TD ALIGN="left" VALIGN="TOP"></TD></TR> ++</TABLE> ++<P> ++ ++<A NAME="Time Resources"></A> ++<HR SIZE="6"> ++<A NAME="SEC4"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC3"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC5"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H3> 1.2.1 Time Resources </H3> ++<!--docid::SEC4::--> ++<P> ++ ++</P> ++<DL COMPACT> ++<DT><CODE>E</CODE> ++<DD>Elapsed real (wall clock) time used by the process, in ++[hours:]minutes:seconds. ++<P> ++ ++</P> ++<DT><CODE>e</CODE> ++<DD>Elapsed real (wall clock) time used by the process, in ++seconds. ++<P> ++ ++</P> ++<DT><CODE>S</CODE> ++<DD>Total number of CPU-seconds used by the system on behalf of the process ++(in kernel mode), in seconds. ++<P> ++ ++</P> ++<DT><CODE>U</CODE> ++<DD>Total number of CPU-seconds that the process used directly (in user ++mode), in seconds. ++<P> ++ ++</P> ++<DT><CODE>P</CODE> ++<DD>Percentage of the CPU that this job got. This is just user + system ++times divied by the total running time. ++</DL> ++<P> ++ ++<A NAME="Memory Resources"></A> ++<HR SIZE="6"> ++<A NAME="SEC5"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC4"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC6"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H3> 1.2.2 Memory Resources </H3> ++<!--docid::SEC5::--> ++<P> ++ ++</P> ++<DL COMPACT> ++<DT><CODE>M</CODE> ++<DD>Maximum resident set size of the process during its lifetime, in ++Kilobytes. ++<P> ++ ++</P> ++<DT><CODE>t</CODE> ++<DD>Average resident set size of the process, in Kilobytes. ++<P> ++ ++</P> ++<DT><CODE>K</CODE> ++<DD>Average total (data+stack+text) memory use of the process, in Kilobytes. ++<P> ++ ++</P> ++<DT><CODE>D</CODE> ++<DD>Average size of the process's unshared data area, in Kilobytes. ++<P> ++ ++</P> ++<DT><CODE>p</CODE> ++<DD>Average size of the process's unshared stack, in Kilobytes. ++<P> ++ ++</P> ++<DT><CODE>X</CODE> ++<DD>Average size of the process's shared text, in Kilobytes. ++<P> ++ ++</P> ++<DT><CODE>Z</CODE> ++<DD>System's page size, in bytes. This is a per-system constant, but ++varies between systems. ++</DL> ++<P> ++ ++<A NAME="I/O Resources"></A> ++<HR SIZE="6"> ++<A NAME="SEC6"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC5"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC7"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H3> 1.2.3 I/O Resources </H3> ++<!--docid::SEC6::--> ++<P> ++ ++</P> ++<DL COMPACT> ++<DT><CODE>F</CODE> ++<DD>Number of major, or I/O-requiring, page faults that occurred while the ++process was running. These are faults where the page has actually ++migrated out of primary memory. ++<P> ++ ++</P> ++<DT><CODE>R</CODE> ++<DD>Number of minor, or recoverable, page faults. These are pages that are ++not valid (so they fault) but which have not yet been claimed by other ++virtual pages. Thus the data in the page is still valid but the system ++tables must be updated. ++<P> ++ ++</P> ++<DT><CODE>W</CODE> ++<DD>Number of times the process was swapped out of main memory. ++<P> ++ ++</P> ++<DT><CODE>c</CODE> ++<DD>Number of times the process was context-switched involuntarily (because ++the time slice expired). ++<P> ++ ++</P> ++<DT><CODE>w</CODE> ++<DD>Number of times that the program was context-switched voluntarily, for ++instance while waiting for an I/O operation to complete. ++<P> ++ ++</P> ++<DT><CODE>I</CODE> ++<DD>Number of file system inputs by the process. ++<P> ++ ++</P> ++<DT><CODE>O</CODE> ++<DD>Number of file system outputs by the process. ++<P> ++ ++</P> ++<DT><CODE>r</CODE> ++<DD>Number of socket messages received by the process. ++<P> ++ ++</P> ++<DT><CODE>s</CODE> ++<DD>Number of socket messages sent by the process. ++<P> ++ ++</P> ++<DT><CODE>k</CODE> ++<DD>Number of signals delivered to the process. ++</DL> ++<P> ++ ++<A NAME="Command Info"></A> ++<HR SIZE="6"> ++<A NAME="SEC7"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC6"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC8"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H3> 1.2.4 Command Info </H3> ++<!--docid::SEC7::--> ++<P> ++ ++</P> ++<DL COMPACT> ++<DT><CODE>C</CODE> ++<DD>Name and command line arguments of the command being timed. ++<P> ++ ++</P> ++<DT><CODE>x</CODE> ++<DD>Exit status of the command. ++</DL> ++<P> ++ ++<A NAME="Redirecting"></A> ++<HR SIZE="6"> ++<A NAME="SEC8"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC7"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC9"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H2> 1.3 Redirecting Output </H2> ++<!--docid::SEC8::--> ++<P> ++ ++By default, <CODE>time</CODE> writes the resource use statistics to the ++standard error stream. The options below make it write the statistics ++to a file instead. Doing this can be useful if the program you're ++running writes to the standard error or you're running <CODE>time</CODE> ++noninteractively or in the background. ++</P> ++<P> ++ ++</P> ++<DL COMPACT> ++<DT><CODE>-o <VAR>file</VAR></CODE> ++<DD><DT><CODE>--output=<VAR>file</VAR></CODE> ++<DD>Write the resource use statistics to <VAR>file</VAR>. By default, this ++<EM>overwrites</EM> the file, destroying the file's previous contents. ++<P> ++ ++</P> ++<DT><CODE>-a</CODE> ++<DD><DT><CODE>--append</CODE> ++<DD><EM>Append</EM> the resource use information to the output file instead ++of overwriting it. This option is only useful with the `<SAMP>-o</SAMP>' or ++`<SAMP>--output</SAMP>' option. ++</DL> ++<P> ++ ++<A NAME="Examples"></A> ++<HR SIZE="6"> ++<A NAME="SEC9"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC8"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC10"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H2> 1.4 Examples </H2> ++<!--docid::SEC9::--> ++<P> ++ ++Run the command `<SAMP>wc /etc/hosts</SAMP>' and show the default information: ++</P> ++<P> ++ ++<TABLE><tr><td> </td><td class=example><pre>eg$ time wc /etc/hosts ++ 35 111 1134 /etc/hosts ++0.00user 0.01system 0:00.04elapsed 25%CPU (0avgtext+0avgdata 0maxresident)k ++1inputs+1outputs (0major+0minor)pagefaults 0swaps ++</pre></td></tr></table><P> ++ ++Run the command `<SAMP>ls -Fs</SAMP>' and show just the user, system, and ++wall-clock time: ++</P> ++<P> ++ ++<TABLE><tr><td> </td><td class=example><pre>eg$ time -f "\t%E real,\t%U user,\t%S sys" ls -Fs ++total 16 ++1 account/ 1 db/ 1 mail/ 1 run/ ++1 backups/ 1 emacs/ 1 msgs/ 1 rwho/ ++1 crash/ 1 games/ 1 preserve/ 1 spool/ ++1 cron/ 1 log/ 1 quotas/ 1 tmp/ ++ 0:00.03 real, 0.00 user, 0.01 sys ++</pre></td></tr></table><P> ++ ++Edit the file `<TT>.bashrc</TT>' and have <CODE>time</CODE> append the elapsed time ++and number of signals to the file `<TT>log</TT>', reading the format string ++from the environment variable <CODE>TIME</CODE>: ++</P> ++<P> ++ ++<TABLE><tr><td> </td><td class=example><pre>eg$ export TIME="\t%E,\t%k" # If using bash or ksh ++eg$ setenv TIME "\t%E,\t%k" # If using csh or tcsh ++eg$ time -a -o log emacs .bashrc ++eg$ cat log ++ 0:16.55, 726 ++</pre></td></tr></table><P> ++ ++Run the command `<SAMP>sleep 4</SAMP>' and show all of the information about it ++verbosely: ++</P> ++<P> ++ ++<TABLE><tr><td> </td><td class=example><pre>eg$ time -v sleep 4 ++ Command being timed: "sleep 4" ++ User time (seconds): 0.00 ++ System time (seconds): 0.05 ++ Percent of CPU this job got: 1% ++ Elapsed (wall clock) time (h:mm:ss or m:ss): 0:04.26 ++ Average shared text size (kbytes): 36 ++ Average unshared data size (kbytes): 24 ++ Average stack size (kbytes): 0 ++ Average total size (kbytes): 60 ++ Maximum resident set size (kbytes): 32 ++ Average resident set size (kbytes): 24 ++ Major (requiring I/O) page faults: 3 ++ Minor (reclaiming a frame) page faults: 0 ++ Voluntary context switches: 11 ++ Involuntary context switches: 0 ++ Swaps: 0 ++ File system inputs: 3 ++ File system outputs: 1 ++ Socket messages sent: 0 ++ Socket messages received: 0 ++ Signals delivered: 1 ++ Page size (bytes): 4096 ++ Exit status: 0 ++</pre></td></tr></table><P> ++ ++<A NAME="Accuracy"></A> ++<HR SIZE="6"> ++<A NAME="SEC10"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC9"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC11"> > </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H2> 1.5 Accuracy </H2> ++<!--docid::SEC10::--> ++<P> ++ ++The elapsed time is not collected atomically with the execution of the ++program; as a result, in bizarre circumstances (if the <CODE>time</CODE> ++command gets stopped or swapped out in between when the program being ++timed exits and when <CODE>time</CODE> calculates how long it took to run), it ++could be much larger than the actual execution time. ++</P> ++<P> ++ ++When the running time of a command is very nearly zero, some values ++(e.g., the percentage of CPU used) may be reported as either zero (which ++is wrong) or a question mark. ++</P> ++<P> ++ ++Most information shown by <CODE>time</CODE> is derived from the <CODE>wait3</CODE> ++system call. The numbers are only as good as those returned by ++<CODE>wait3</CODE>. Many systems do not measure all of the resources that ++<CODE>time</CODE> can report on; those resources are reported as zero. The ++systems that measure most or all of the resources are based on 4.2 or ++4.3BSD. Later BSD releases use different memory management code that ++measures fewer resources. ++</P> ++<P> ++ ++On systems that do not have a <CODE>wait3</CODE> call that returns status ++information, the <CODE>times</CODE> system call is used instead. It provides ++much less information than <CODE>wait3</CODE>, so on those systems <CODE>time</CODE> ++reports most of the resources as zero. ++</P> ++<P> ++ ++The `<SAMP>%I</SAMP>' and `<SAMP>%O</SAMP>' values are allegedly only "real" input ++and output and do not include those supplied by caching devices. The ++meaning of "real" I/O reported by `<SAMP>%I</SAMP>' and `<SAMP>%O</SAMP>' may be ++muddled for workstations, especially diskless ones. ++</P> ++<P> ++ ++<A NAME="Invoking time"></A> ++<HR SIZE="6"> ++<A NAME="SEC11"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC10"> < </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ > ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC1"> << </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top"> Up </A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[ >> ]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT"> <TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H2> 1.6 Running the <CODE>time</CODE> Command </H2> ++<!--docid::SEC11::--> ++<P> ++ ++The format of the <CODE>time</CODE> command is: ++</P> ++<P> ++ ++<TABLE><tr><td> </td><td class=example><pre>time [option<small>...</small>] <VAR>command</VAR> [<VAR>arg</VAR><small>...</small>] ++</pre></td></tr></table><P> ++ ++<A NAME="IDX5"></A> ++<CODE>time</CODE> runs the program <VAR>command</VAR>, with any given arguments ++<VAR>arg</VAR><small>...</small>. When <VAR>command</VAR> finishes, <CODE>time</CODE> displays ++information about resources used by <VAR>command</VAR> (on the standard error ++output, by default). If <VAR>command</VAR> exits with non-zero status or is ++terminated by a signal, <CODE>time</CODE> displays a warning message and the ++exit status or signal number. ++</P> ++<P> ++ ++Options to <CODE>time</CODE> must appear on the command line before ++<VAR>command</VAR>. Anything on the command line after <VAR>command</VAR> is ++passed as arguments to <VAR>command</VAR>. ++</P> ++<P> ++ ++</P> ++<DL COMPACT> ++<DT><CODE>-o <VAR>file</VAR></CODE> ++<DD><DT><CODE>--output=<VAR>file</VAR></CODE> ++<DD>Write the resource use statistics to <VAR>file</VAR>. ++<P> ++ ++</P> ++<DT><CODE>-a</CODE> ++<DD><DT><CODE>--append</CODE> ++<DD><EM>Append</EM> the resource use information to the output file instead ++of overwriting it. ++<P> ++ ++</P> ++<DT><CODE>-f <VAR>format</VAR></CODE> ++<DD><DT><CODE>--format=<VAR>format</VAR></CODE> ++<DD>Use <VAR>format</VAR> as the format string. ++<P> ++ ++</P> ++<DT><CODE>--help</CODE> ++<DD>Print a summary of the command line options to <CODE>time</CODE> and exit. ++<P> ++ ++</P> ++<DT><CODE>-p</CODE> ++<DD><DT><CODE>--portability</CODE> ++<DD>Use the POSIX format. ++<P> ++ ++</P> ++<DT><CODE>-v</CODE> ++<DD><DT><CODE>--verbose</CODE> ++<DD><A NAME="IDX6"></A> ++Use the built-in verbose format. ++<P> ++ ++</P> ++<DT><CODE>-V</CODE> ++<DD><DT><CODE>--version</CODE> ++<DD><A NAME="IDX7"></A> ++Print the version number of <CODE>time</CODE> and exit. ++</DL> ++<P> ++ ++<HR SIZE="6"> ++<A NAME="SEC_Contents"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H1>Table of Contents</H1> ++<BLOCKQUOTE> ++<A NAME="TOC1" HREF="time.html#SEC1">1. Measuring Program Resource Use</A> ++<BR> ++<BLOCKQUOTE> ++<A NAME="TOC2" HREF="time.html#SEC2">1.1 Setting the Output Format</A> ++<BR> ++<A NAME="TOC3" HREF="time.html#SEC3">1.2 The Format String</A> ++<BR> ++<BLOCKQUOTE> ++<A NAME="TOC4" HREF="time.html#SEC4">1.2.1 Time Resources</A> ++<BR> ++<A NAME="TOC5" HREF="time.html#SEC5">1.2.2 Memory Resources</A> ++<BR> ++<A NAME="TOC6" HREF="time.html#SEC6">1.2.3 I/O Resources</A> ++<BR> ++<A NAME="TOC7" HREF="time.html#SEC7">1.2.4 Command Info</A> ++<BR> ++</BLOCKQUOTE> ++<A NAME="TOC8" HREF="time.html#SEC8">1.3 Redirecting Output</A> ++<BR> ++<A NAME="TOC9" HREF="time.html#SEC9">1.4 Examples</A> ++<BR> ++<A NAME="TOC10" HREF="time.html#SEC10">1.5 Accuracy</A> ++<BR> ++<A NAME="TOC11" HREF="time.html#SEC11">1.6 Running the <CODE>time</CODE> Command</A> ++<BR> ++</BLOCKQUOTE> ++</BLOCKQUOTE> ++<HR SIZE=1> ++<A NAME="SEC_OVERVIEW"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H1>Short Table of Contents</H1> ++<BLOCKQUOTE> ++<A NAME="TOC1" HREF="time.html#SEC1">1. Measuring Program Resource Use</A> ++<BR> ++ ++</BLOCKQUOTE> ++<HR SIZE=1> ++<A NAME="SEC_About"></A> ++<TABLE CELLPADDING=1 CELLSPACING=1 BORDER=0> ++<TR><TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Top">Top</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_Contents">Contents</A>]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[Index]</TD> ++<TD VALIGN="MIDDLE" ALIGN="LEFT">[<A HREF="time.html#SEC_About"> ? </A>]</TD> ++</TR></TABLE> ++<H1>About this document</H1> ++This document was generated ++by ++using <A HREF="http://texi2html.cvshome.org"><I>texi2html</I></A> ++<P></P> ++The buttons in the navigation panels have the following meaning: ++<P></P> ++<table border = "1"> ++<TR> ++<TH> Button </TH> ++<TH> Name </TH> ++<TH> Go to </TH> ++<TH> From 1.2.3 go to</TH> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [ < ] </TD> ++<TD ALIGN="CENTER"> ++Back ++</TD> ++<TD> ++previous section in reading order ++</TD> ++<TD> ++1.2.2 ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [ > ] </TD> ++<TD ALIGN="CENTER"> ++Forward ++</TD> ++<TD> ++next section in reading order ++</TD> ++<TD> ++1.2.4 ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [ << ] </TD> ++<TD ALIGN="CENTER"> ++FastBack ++</TD> ++<TD> ++beginning of this chapter or previous chapter ++</TD> ++<TD> ++1 ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [ Up ] </TD> ++<TD ALIGN="CENTER"> ++Up ++</TD> ++<TD> ++up section ++</TD> ++<TD> ++1.2 ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [ >> ] </TD> ++<TD ALIGN="CENTER"> ++FastForward ++</TD> ++<TD> ++next chapter ++</TD> ++<TD> ++2 ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [Top] </TD> ++<TD ALIGN="CENTER"> ++Top ++</TD> ++<TD> ++cover (top) of document ++</TD> ++<TD> ++ ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [Contents] </TD> ++<TD ALIGN="CENTER"> ++Contents ++</TD> ++<TD> ++table of contents ++</TD> ++<TD> ++ ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [Index] </TD> ++<TD ALIGN="CENTER"> ++Index ++</TD> ++<TD> ++concept index ++</TD> ++<TD> ++ ++</TD> ++</TR> ++<TR> ++<TD ALIGN="CENTER"> ++ [ ? ] </TD> ++<TD ALIGN="CENTER"> ++About ++</TD> ++<TD> ++this page ++</TD> ++<TD> ++ ++</TD> ++</TR> ++</TABLE> ++ <P> ++ where the <STRONG> Example </STRONG> assumes that the current position ++ is at <STRONG> Subsubsection One-Two-Three </STRONG> of a document of ++ the following structure:</P> ++ <UL> ++ <LI> 1. Section One ++ <UL> ++ <LI>1.1 Subsection One-One ++ <UL> ++ <LI>...</LI> ++ </UL> ++ <LI>1.2 Subsection One-Two ++ <UL> ++ <LI>1.2.1 Subsubsection One-Two-One</LI> ++ <LI>1.2.2 Subsubsection One-Two-Two</LI> ++ <LI>1.2.3 Subsubsection One-Two-Three ++ <STRONG><== Current Position </STRONG></LI> ++ <LI>1.2.4 Subsubsection One-Two-Four</LI> ++ </UL> ++ </LI> ++ <LI>1.3 Subsection One-Three ++ <UL> ++ <LI>...</LI> ++ </UL> ++ </LI> ++ <LI>1.4 Subsection One-Four</LI> ++ </UL> ++ </LI> ++ </UL> ++ ++<HR SIZE=1> ++<BR> ++<FONT SIZE="-1"> ++This document was generated ++by <I>root</I> on <I>September, 1 2003</I> ++using <A HREF="http://texi2html.cvshome.org"><I>texi2html</I></A> ++</FONT> ++ ++</BODY> ++</HTML> diff --git a/meta/packages/time/time.inc b/meta/packages/time/time.inc new file mode 100644 index 000000000..81d644675 --- /dev/null +++ b/meta/packages/time/time.inc @@ -0,0 +1,6 @@ +DESCRIPTION = "time measures many of the CPU resources, such as time and \ +memory, that other programs use." +HOMEPAGE = "http://www.gnu.org/software/time/" +LICENSE = "GPL" +MAINTAINER = "Chris Larson <kergoth@handhelds.org>" +SECTION = "utils" diff --git a/meta/packages/time/time_1.7.bb b/meta/packages/time/time_1.7.bb new file mode 100644 index 000000000..1030489b6 --- /dev/null +++ b/meta/packages/time/time_1.7.bb @@ -0,0 +1,9 @@ +require time.inc + +SRC_URI = "${GNU_MIRROR}/time/time-${PV}.tar.gz \ + file://debian.patch;patch=1" +# file://autofoo.patch;patch=1 \ +# file://compile.patch;patch=1" +S = "${WORKDIR}/time-${PV}" + +inherit autotools |