• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Filling in a struct timespec with the current date?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Filling in a struct timespec with the current date?


  • Subject: Re: Filling in a struct timespec with the current date?
  • From: Terry Lambert <email@hidden>
  • Date: Tue, 28 Jul 2009 11:51:24 -0700

On Jul 28, 2009, at 10:07 AM, Kevin Van Vechten <email@hidden> wrote:
On Jul 28, 2009, at 9:57 AM, Karan, Cem (Civ, ARL/CISD) wrote:
Jean-Daniel Dupas wrote on Tuesday, July 28, 2009 12:52 PM

Le 28 juil. 09 à 18:42, Karan, Cem (Civ, ARL/CISD) a écrit :

I'm trying to use struct timespec, and I want to initialize
it to the
current date (sec & nanosec).  Is there a function call that I can
call that will do so, or do I have to roll my own? Note that I'm
looking for an API that will fill in a timespec that I pass in, not
create a new one on the heap.


You can wrap your own using gettimeofday() which does what
you want but using a timeval instead of a timespec.

Yeah, that is what I'm doing now; I was hoping there was a cleaner way, something along the lines of:


   ERROR_CODE initWithCurrentDate(&myTimeSpec);

If there isn't, then such is life; I'll continue using what gettimeofday().

Wrapping gettimeofday(3) is the way to go. There is a POSIX REALTIME interface clock_gettime(3) that returns a struct timespec, but Mac OS X does not implement these optional interfaces.

Or if he needs better resolution, mach_absolute_time(), which is well documented at <http://developer.apple.com>.


Even if we did a clock_gettime(), you'd need to call clock_getres() to get the resolution, and like gettimeofday(), there's no guarantee that just because the structure is capable of representing a resolution that that's the resolution you'd get. I could give you the interface tomorrow, but depending on the resolution I picked, it could be worse than gettimeofday() while still being technically standards compliant. Without the rest of the [TMR] functionality, though, the feature test macro from <unistd.h> that would let you use the interface safely in the knowledge it was compliant would still claim it wasn't there.

The only guaranteed resolution is going to be if you call mach_absolute_time() and then do the numerator/denominator math via the contents of the mach_timebase_info structure (i.e. you can not assume it is in nanoseconds or that the value is 1/1, particularly for hardware clocked at less than 1GHz, for example, an iPhone).

In general, timespec is mostly useful as a parameter to things like pselect to contain delta times, rather than useful for times since the epoch, and for measuring time, for example for benchmarking a new version of your code against the previous version of your code to check for regressions, you probably want better resolution than you'll get from gettimeofday().

-- Terry _______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • RE: Filling in a struct timespec with the current date?
      • From: "Karan, Cem (Civ, ARL/CISD)" <email@hidden>
    • RE: Filling in a struct timespec with the current date?
      • From: "Karan, Cem (Civ, ARL/CISD)" <email@hidden>
References: 
 >Filling in a struct timespec with the current date? (From: "Karan, Cem (Civ, ARL/CISD)" <email@hidden>)
 >Re: Filling in a struct timespec with the current date? (From: Jean-Daniel Dupas <email@hidden>)
 >RE: Filling in a struct timespec with the current date? (From: "Karan, Cem (Civ, ARL/CISD)" <email@hidden>)
 >Re: Filling in a struct timespec with the current date? (From: Kevin Van Vechten <email@hidden>)

  • Prev by Date: Re: Filling in a struct timespec with the current date?
  • Next by Date: RE: Filling in a struct timespec with the current date?
  • Previous by thread: Re: Filling in a struct timespec with the current date?
  • Next by thread: RE: Filling in a struct timespec with the current date?
  • Index(es):
    • Date
    • Thread