9165
|
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 |
} |