]>
git.ipfire.org Git - thirdparty/bash.git/blob - lib/sh/clock.c
c6c52bf89f7bdb3de365664fabe316c7be237d8d
1 /* clock.c - operations on struct tms and clock_t's */
3 /* Copyright (C) 1999 Free Software Foundation, Inc.
5 This file is part of GNU Bash, the Bourne Again SHell.
7 Bash is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
12 Bash is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with Bash. If not, see <http://www.gnu.org/licenses/>.
23 #if defined (HAVE_TIMES)
25 #include <sys/types.h>
26 #include <posixtime.h>
28 #if defined (HAVE_SYS_TIMES_H)
29 # include <sys/times.h>
37 #ifndef locale_decpoint
38 extern int locale_decpoint
PARAMS((void));
41 extern long get_clk_tck
PARAMS((void));
44 clock_t_to_secs (t
, sp
, sfp
)
49 static long clk_tck
= -1;
52 clk_tck
= get_clk_tck ();
55 *sfp
= (*sfp
* 1000) / clk_tck
;
67 /* Print the time defined by a clock_t (returned by the `times' and `time'
68 system calls) in a standard way to stdio stream FP. This is scaled in
69 terms of the value of CLK_TCK, which is what is returned by the
78 int seconds
, seconds_fraction
;
80 clock_t_to_secs (t
, ×tamp
, &seconds_fraction
);
82 minutes
= timestamp
/ 60;
83 seconds
= timestamp
% 60;
85 fprintf (fp
, "%ldm%d%c%03ds", minutes
, seconds
, locale_decpoint(), seconds_fraction
);
87 #endif /* HAVE_TIMES */