Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #94849

Re: CLOCKS_PER_SEC

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: CLOCKS_PER_SEC
Date 2016-10-13 16:27 -0700
Organization None to speak of
Message-ID <ln60ovkex0.fsf@kst-u.example.com> (permalink)
References <nto3cm$ps$1@dont-email.me> <lnr37kjl7y.fsf@kst-u.example.com> <lnmvi8jkq4.fsf@kst-u.example.com> <ntp16j$h6u$1@dont-email.me> <ntp1uj$jki$1@dont-email.me>

Show all headers | View raw


BartC <bc@freeuk.com> writes:
> On 13/10/2016 23:18, BartC wrote:
>> On 13/10/2016 17:07, Keith Thompson wrote:
>
>> I think I will try and detect Windows or Linux and assume 1000 or
>> 1000000 respectively. Doing that would also require invocating a C
>> compiler on something like '#ifdef WIN32', but I think I will try a
>> quick and dirty method like detecting the existence of some known .exe
>> file in C:/windows.
>
> The following seems to work! It's expressed here in C but only depends 
> on standard fopen/fclose functions which can be called from anywhere.
>
> I assume of course that it's always 1000 on Windows and 1000000 on 
> Linux, but that might be enough (I think one compiler used to use 100). 
> It's only for timing so it's not critical.
>
>
> #include <stdio.h>
> #include <stdlib.h>
>
> int getclockspersec(void){
> FILE *f;
> if (f = fopen("c:/windows/notepad.exe","rb")) {
> |   fclose(f);
> |   return 1000;
> }
> return 1000000;
> }
>
> int main(int n, char** s) {
>
> printf("%d\n",getclockspersec());
>
> }

I'd probably use long rather than int, though that's unlikely to
be an issue if you're assuming either Windows (1000 is within the
range of int) or POSIX (which requires at least 32-bit int).

Is notepad.exe under C:/windows in all versions of Windows?  Or at
least in all the versions you're concerned with?  Perhaps "NL:"
would be a better choice.  IIRC that's the Windows equivalent of
/dev/null.  You could conceivably get a false positive if there
happens to be a file with that name in the current directory,
but that's probably not worth worrying about.

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

CLOCKS_PER_SEC BartC <bc@freeuk.com> - 2016-10-13 14:49 +0100
  Re: CLOCKS_PER_SEC Keith Thompson <kst-u@mib.org> - 2016-10-13 08:57 -0700
    Re: CLOCKS_PER_SEC Keith Thompson <kst-u@mib.org> - 2016-10-13 09:07 -0700
      Re: CLOCKS_PER_SEC BartC <bc@freeuk.com> - 2016-10-13 23:18 +0100
        Re: CLOCKS_PER_SEC BartC <bc@freeuk.com> - 2016-10-13 23:30 +0100
          Re: CLOCKS_PER_SEC Keith Thompson <kst-u@mib.org> - 2016-10-13 16:27 -0700
            Re: CLOCKS_PER_SEC raltbos@xs4all.nl (Richard Bos) - 2016-10-16 10:02 +0000
              Re: CLOCKS_PER_SEC Keith Thompson <kst-u@mib.org> - 2016-10-16 11:32 -0700
    Re: CLOCKS_PER_SEC Lowell Gilbert <lgusenet@be-well.ilk.org> - 2016-10-13 12:19 -0400
      Re: CLOCKS_PER_SEC Keith Thompson <kst-u@mib.org> - 2016-10-13 11:29 -0700
        Re: CLOCKS_PER_SEC Lowell Gilbert <lgusenet@be-well.ilk.org> - 2016-10-13 14:39 -0400
          Re: CLOCKS_PER_SEC Keith Thompson <kst-u@mib.org> - 2016-10-13 12:03 -0700
        Re: CLOCKS_PER_SEC supercat@casperkitty.com - 2016-10-14 07:47 -0700
  Re: CLOCKS_PER_SEC Anton Shepelev <anton.txt@g{oogle}mail.com> - 2016-10-14 16:21 +0300
    Re: CLOCKS_PER_SEC Keith Thompson <kst-u@mib.org> - 2016-10-14 08:41 -0700
      Re: CLOCKS_PER_SEC Anton Shepelev <anton.txt@g{oogle}mail.com> - 2016-10-14 18:56 +0300
        Re: CLOCKS_PER_SEC Barry Schwarz <schwarzb@dqel.com> - 2016-10-14 09:49 -0700
        Re: CLOCKS_PER_SEC Keith Thompson <kst-u@mib.org> - 2016-10-14 11:14 -0700
          Re: CLOCKS_PER_SEC supercat@casperkitty.com - 2016-10-14 11:32 -0700
      Re: CLOCKS_PER_SEC Jerry Stuckle <jstucklex@attglobal.net> - 2016-10-14 11:56 -0400
        Re: CLOCKS_PER_SEC Anton Shepelev <anton.txt@g{oogle}mail.com> - 2016-10-14 19:53 +0300
          Re: CLOCKS_PER_SEC supercat@casperkitty.com - 2016-10-14 09:57 -0700
          Re: CLOCKS_PER_SEC BartC <bc@freeuk.com> - 2016-10-14 18:18 +0100
        Re: CLOCKS_PER_SEC Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-10-16 02:55 -0700

csiph-web