/* Void Main's man pages */

{ phpMan } else { main(); }

Command: man perldoc info search(apropos)  


TIME(1P)                                            POSIX Programmer's Manual                                           TIME(1P)



PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux implementation of this interface may differ (con-
       sult the corresponding Linux manual page for details of Linux behavior), or the  interface  may  not  be  implemented  on
       Linux.

NAME
       time - time a simple command

SYNOPSIS
       time [-p] utility [argument...]

DESCRIPTION
       The  time  utility shall invoke the utility named by the utility operand with arguments supplied as the argument operands
       and write a message to standard error that lists timing statistics for the utility. The message shall include the follow-
       ing information:

        * The elapsed (real) time between invocation of utility and its termination.

        * The  User  CPU  time,  equivalent  to  the sum of the tms_utime and tms_cutime fields returned by the times() function
          defined in the System Interfaces volume of IEEE Std 1003.1-2001 for the process in which utility is executed.

        * The System CPU time, equivalent to the sum of the tms_stime and tms_cstime fields returned by the times() function for
          the process in which utility is executed.

       The precision of the timing shall be no less than the granularity defined for the size of the clock tick unit on the sys-
       tem, but the results shall be reported in terms of standard time units (for example, 0.02 seconds, 00:00:00.02, 1m33.75s,
       365.21 seconds), not numbers of clock ticks.

       When  time is used as part of a pipeline, the times reported are unspecified, except when it is the sole command within a
       grouping command (see Grouping Commands ) in that pipeline.  For example, the commands on the left are unspecified; those
       on the right report on utilities a and c, respectively:


              time a | b | c    { time a } | b | c
              a | b | time c    a | b | (time c)

OPTIONS
       The  time  utility  shall  conform  to  the Base Definitions volume of IEEE Std 1003.1-2001, Section 12.2, Utility Syntax
       Guidelines.

       The following option shall be supported:

       -p     Write the timing output to standard error in the format shown in the STDERR section.


OPERANDS
       The following operands shall be supported:

       utility
              The name of a utility that is to be invoked. If the utility operand names any of the special built-in utilities in
              Special Built-In Utilities, the results are undefined.

       argument
              Any string to be supplied as an argument when invoking the utility named by the utility operand.


STDIN
       Not used.

INPUT FILES
       None.

ENVIRONMENT VARIABLES
       The following environment variables shall affect the execution of time:

       LANG   Provide  a  default value for the internationalization variables that are unset or null. (See the Base Definitions
              volume of IEEE Std 1003.1-2001, Section 8.2, Internationalization Variables for the precedence  of  international-
              ization variables used to determine the values of locale categories.)

       LC_ALL If set to a non-empty string value, override the values of all the other internationalization variables.

       LC_CTYPE
              Determine the locale for the interpretation of sequences of bytes of text data as characters (for example, single-
              byte as opposed to multi-byte characters in arguments).

       LC_MESSAGES
              Determine the locale that should be used to affect the format and contents of diagnostic and informative  messages
              written to standard error.

       LC_NUMERIC

              Determine the locale for numeric formatting.

       NLSPATH
              Determine the location of message catalogs for the processing of LC_MESSAGES .

       PATH   Determine  the search path that shall be used to locate the utility to be invoked; see the Base Definitions volume
              of IEEE Std 1003.1-2001, Chapter 8, Environment Variables.


ASYNCHRONOUS EVENTS
       Default.

STDOUT
       Not used.

STDERR
       The standard error shall be used to write the timing statistics. If -p is specified, the following format shall  be  used
       in the POSIX locale:


              "real %f\nuser %f\nsys %f\n", <real seconds>, <user seconds>,
                  <system seconds>

       where  each floating-point number shall be expressed in seconds. The precision used may be less than the default six dig-
       its of %f, but shall be sufficiently precise to accommodate the size of the clock tick on the  system  (for  example,  if
       there were 60 clock ticks per second, at least two digits shall follow the radix character). The number of digits follow-
       ing the radix character shall be no less than one, even if this always results in a trailing zero. The implementation may
       append white space and additional information following the format shown here.

OUTPUT FILES
       None.

EXTENDED DESCRIPTION
       None.

EXIT STATUS
       If the utility utility is invoked, the exit status of time shall be the exit status of utility; otherwise, the time util-
       ity shall exit with one of the following values:

       1-125  An error occurred in the time utility.

         126  The utility specified by utility was found but could not be invoked.

         127  The utility specified by utility could not be found.


CONSEQUENCES OF ERRORS
       Default.

       The following sections are informative.

APPLICATION USAGE
       The command, env, nice, nohup, time, and xargs utilities have been specified to use exit code 127 if an error  occurs  so
       that applications can distinguish "failure to find a utility" from "invoked utility exited with an error indication". The
       value 127 was chosen because it is not commonly used for other meanings; most utilities  use  small  values  for  "normal
       error conditions" and the values above 128 can be confused with termination due to receipt of a signal. The value 126 was
       chosen in a similar manner to indicate that the utility could be found, but not invoked. Some scripts produce  meaningful
       error  messages  differentiating  the 126 and 127 cases. The distinction between exit codes 126 and 127 is based on Korn-
       Shell practice that uses 127 when all attempts to exec the utility fail with [ENOENT], and uses 126 when any  attempt  to
       exec the utility fails for any other reason.

EXAMPLES
       It  is  frequently  desirable  to apply time to pipelines or lists of commands. This can be done by placing pipelines and
       command lists in a single file; this file can then be invoked as a utility, and the time applies  to  everything  in  the
       file.

       Alternatively, the following command can be used to apply time to a complex command:


              time sh -c 'complex-command-line'

RATIONALE
       When  the  time  utility  was  originally proposed to be included in the ISO POSIX-2:1993 standard, questions were raised
       about its suitability for inclusion on the grounds that it was not useful for conforming applications, specifically:

        * The underlying CPU definitions from the System Interfaces volume of IEEE Std 1003.1-2001 are  vague,  so  the  numeric
          output could not be compared accurately between systems or even between invocations.

        * The creation of portable benchmark programs was outside the scope this volume of IEEE Std 1003.1-2001.

       However,  time  does  fit in the scope of user portability. Human judgement can be applied to the analysis of the output,
       and it could be very useful in hands-on debugging of applications or in providing subjective measures of  system  perfor-
       mance. Hence it has been included in this volume of IEEE Std 1003.1-2001.

       The  default  output format has been left unspecified because historical implementations differ greatly in their style of
       depicting this numeric output. The -p option was invented to provide scripts with a common means of obtaining this infor-
       mation.

       In  the  KornShell,  time is a shell reserved word that can be used to time an entire pipeline, rather than just a simple
       command. The POSIX definition has been worded to allow this implementation.  Consideration was given to invalidating this
       approach  because  of the historical model from the C shell and System V shell.  However, since the System V time utility
       historically has not produced accurate results in pipeline timing (because the constituent processes are not all owned by
       the same parent process, as allowed by POSIX), it did not seem worthwhile to break historical KornShell usage.

       The  term  utility  is  used, rather than command, to highlight the fact that shell compound commands, pipelines, special
       built-ins, and so on, cannot be used directly. However, utility includes user application programs and shell scripts, not
       just the standard utilities.

FUTURE DIRECTIONS
       None.

SEE ALSO
       Shell Command Language, sh, the System Interfaces volume of IEEE Std 1003.1-2001, times()

COPYRIGHT
       Portions  of  this  text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Standard for
       Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6,  Copy-
       right (C) 2001-2003 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any
       discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open  Group
       Standard   is   the   referee   document.   The   original   Standard   can   be   obtained  online  at  http://www.open-
       group.org/unix/online.html .



IEEE/The Open Group                                           2003                                                      TIME(1P)

Valid XHTML 1.0!Valid CSS!