Mail Archives: djgpp/1995/10/17/22:10:11
Eric Nicolas (nicolas AT dsys DOT ceng DOT cea DOT fr) wrote:
> ANSI C tell that there should be a CLK_TCK constant
> which says that, but I found somewhere in djgpp .H
> a #define CLK_TCK 100, and when trying that it is
> obvious that this is wrong.
>
> In fact, it seems that there are about 1 million
> clock() units per seconds. But what is the real value ?
and:
> There have been many different answers to my initial question (what is the
> real clock() unit, and which constant to use to translate from clock() units
> to seconds) thanks.
>
> But, I think the problem is not to be consistent with such or such ANSI
> or POSIX specs. For a compiler like GNU wich is often used in replacement of
> other commercial compilers, I think it is a goal to be compatible with ALL
> the rules (ANSI, POSIX...).
>
> So, in our example, it would be great in DJGPP v2 to have declarations of
> _ALL_ the constants :
> CLK_TCK
> CLOCKS_PER_SEC
> ... others constants
> and to have them _ALL_ equal to the same value.
>
> So, the source code with clock() coming from another compiler will run
> correctly once compiled with djgpp.
>
> I'm waiting for reactions to this proposition.
> I hope dj delorie will hear of it.
Some remarks:
(1) ANSI C defines a constant CLOCKS_PER_SEC. You should use this value
to obtain the amount of CPU time used since the first call to clock()
in *seconds*, i.e. clock()/CLOCKS_PER_SEC.
This will make your program behave similar when compiled with other
ANSI C conforming compilers.
(2) CLK_TCK is used on *some* platforms (including our HP-UX machine)
to indicate the clock resolution. Example: on our HP-UX 700 machine
the (default) clock resolution is 10 milliseconds, and in <limits.h>
the following line is present:
#define CLK_TCK 100 /* Number of clock ticks per second */
/*******************************************************************/
However, this value is to be used not with clock(), but with the
times() (=get process and child process times) (POSIX) function.
(Try 'man times' on your Unix machine...)
/*******************************************************************/
Pieter Kunst (kunst AT natlab DOT research DOT philips DOT com)
- Raw text -