9162
|
1 #define _POSIX_C_SOURCE 199309L
|
|
2
|
|
3 #include <time.h>
|
|
4 #include <lua.h>
|
|
5
|
|
6 lua_Number tv2number(struct timespec *tv) {
|
|
7 return tv->tv_sec + tv->tv_nsec * 1e-9;
|
|
8 }
|
|
9
|
|
10 int lc_time_realtime(lua_State *L) {
|
|
11 struct timespec t;
|
|
12 clock_gettime(CLOCK_REALTIME, &t);
|
|
13 lua_pushnumber(L, tv2number(&t));
|
|
14 return 1;
|
|
15 }
|
|
16
|
|
17 int luaopen_util_time(lua_State *L) {
|
|
18 lua_createtable(L, 0, 2);
|
|
19 {
|
|
20 lua_pushcfunction(L, lc_time_realtime);
|
|
21 lua_setfield(L, -2, "now");
|
|
22 }
|
|
23 return 1;
|
|
24 }
|