30 lines
611 B
C
30 lines
611 B
C
#include <time.h>
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
|
|
#include "timer.h"
|
|
#include "locked.h"
|
|
|
|
static locked(time_t) rawtime;
|
|
|
|
void start_timer(void)
|
|
{
|
|
lockx(&rawtime);
|
|
time(&rawtime.value);
|
|
unlockx(&rawtime);
|
|
}
|
|
|
|
void get_timer_string(char *output, size_t size)
|
|
{
|
|
lockx(&rawtime);
|
|
struct tm * timeinfo;
|
|
|
|
timeinfo = localtime(&rawtime.value);
|
|
|
|
snprintf(output, size, "[%02d %02d %d %02d:%02d:%02d]", timeinfo->tm_mday,
|
|
timeinfo->tm_mon + 1, timeinfo->tm_year + 1900,
|
|
timeinfo->tm_hour, timeinfo->tm_min, timeinfo->tm_sec);
|
|
unlockx(&rawtime);
|
|
}
|
|
|