aboutsummaryrefslogtreecommitdiffstats
path: root/cmd/cmd_lua.c
blob: a4d75732f9b14c268c5d28a33b15986a1ba60bda (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "cmd_lua.h"

#define BILLION 1000000000L

void *cmd_lua(void *data)
{
  char *ret = NULL;
  int fret=-1;

  const int buf_size = 128;
  char buf[buf_size+1];

  struct timespec start;
  struct stat file_stat;
  uint64_t proc_sec;

  printf("BOTU\n");

  stat("/proc/self",&file_stat);

  /*
  CHECK PREDIFINED MACROSES IF SUCH FUNCTIONALITY EXCISTS OR NOT
  */
  #if _POSIX_C_SOURCE < 199309L
    ERROR("Dont have functionality\n");
  #endif

  fret = clock_gettime(CLOCK_REALTIME, &start);
  if (fret<0)
  {
    perror("clock gettime");
    ret = alloc_new_str("Can get clock thread uptime\n");
    return ret;
  }

  proc_sec = start.tv_sec - file_stat.st_ctim.tv_sec;

  snprintf(buf, buf_size, "%lud %luh %lum %lus", 
    (proc_sec/(3600*24)),
    (proc_sec/(3600))%24, 
    (proc_sec/60)%60, 
    proc_sec%60);
  ret = alloc_new_str(buf);

  return ret;
}