gettimeofday(2) and time(2)
Derick Swanepoel
dswanepoel at gmail.com
Thu Jun 9 09:35:41 CEST 2005
On 6/9/05, Adam Lackorzynski <adam at os.inf.tu-dresden.de> wrote:
> On Wed Jun 08, 2005 at 17:34:38 +0200, Derick Swanepoel wrote:
> > On 6/8/05, Adam Lackorzynski <adam at os.inf.tu-dresden.de> wrote:
> > > On Wed Jun 08, 2005 at 10:54:23 +0100, Tiago João Portela Jorge wrote:
> > > > in my case, all i had to do was to load the server. try that. no linking with
> > > > its libs are needed. the RTC only reads the clock and makes its value avaliable
> > > > to who wants to use it.
> > >
> > > Just to clarify, using the time backend makes gettimeofday and co work
> > > (when using dietlibc).
> > > If you're just using the rtc interface, you of course do not need that
> > > backend.
> >
> > When I load the RTC server it prints out the time correctly as it
> > starts, but using time() in my program still returns -1...
>
> Here's a small example that works for me:
>
> Makefile:
> PKGDIR ?= ../..
> L4DIR ?= $(PKGDIR)/../..
>
> TARGET = time_test
> SYSTEMS = x86-l4v2
> MODE = sigma0_diet
> DEFAULT_RELOC = 0x01000000
> LIBS += -ldiet_be_time -lrtc
>
> SRC_C = main.c
>
> include $(L4DIR)/mk/prog.mk
>
> main.c:
> #include <time.h>
> #include <stdio.h>
>
> int main(void)
> {
> struct timeval tv;
> gettimeofday(&tv, NULL);
> printf("%ld, %ld.%ld\n", time(NULL), tv.tv_sec, tv.tv_usec);
> return 0;
> }
>
> This is with dietlibc, though.
Thank you for the example, it works for me too. Unfortunately I cannot
link against libdiet_be_time because I'm using the l4env_freebsd mode.
I guess I won't be able to use gettimeofday()? That's OK because I can
still use l4rtc_get_seconds_since_1970().
Thanks for the help,
Derick
More information about the l4-hackers
mailing list