1/* 2 * Compile with: 3 * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent 4 */ 5 6#include <sys/types.h> 7 8#ifdef HAVE_CONFIG_H 9#include "config.h" 10#endif 11 12#include <sys/stat.h> 13#ifndef WIN32 14#include <sys/queue.h> 15#include <unistd.h> 16#endif 17#include <time.h> 18#ifdef HAVE_SYS_TIME_H 19#include <sys/time.h> 20#endif 21#include <fcntl.h> 22#include <stdlib.h> 23#include <stdio.h> 24#include <string.h> 25#include <errno.h> 26 27#include <event.h> 28#include <evutil.h> 29 30int lasttime; 31 32static void 33timeout_cb(int fd, short event, void *arg) 34{ 35 struct timeval tv; 36 struct event *timeout = arg; 37 int newtime = time(NULL); 38 39 printf("%s: called at %d: %d\n", __func__, newtime, 40 newtime - lasttime); 41 lasttime = newtime; 42 43 evutil_timerclear(&tv); 44 tv.tv_sec = 2; 45 event_add(timeout, &tv); 46} 47 48int 49main (int argc, char **argv) 50{ 51 struct event timeout; 52 struct timeval tv; 53 54 /* Initalize the event library */ 55 event_init(); 56 57 /* Initalize one event */ 58 evtimer_set(&timeout, timeout_cb, &timeout); 59 60 evutil_timerclear(&tv); 61 tv.tv_sec = 2; 62 event_add(&timeout, &tv); 63 64 lasttime = time(NULL); 65 66 event_dispatch(); 67 68 return (0); 69} 70 71