rtl-wmbus/rtl_wmbus_util.h

40 wiersze
763 B
C
Czysty Zwykły widok Historia

2024-05-14 10:36:09 +00:00
#include <stddef.h>
#include <time.h>
#if WINDOWS_BUILD
#else
#include <sys/time.h>
#endif
inline int make_time_string(char* timestamp, size_t timestamp_size)
{
memset(timestamp, 0, timestamp_size);
#if WINDOWS_BUILD
time_t now;
if (time(&now) == NULL)
return -1;
struct tm* timeinfo = gmtime(&now);
if (timeinfo == NULL)
return -1;
strftime(timestamp, timestamp_size, "%Y-%m-%d %H:%M:%S.000000", timeinfo);
#else
struct timeval tv;
if (gettimeofday(&tv, NULL) != 0)
return -1;
struct tm timeinfo;
if (localtime_r(&tv.tv_sec, &timeinfo) == NULL)
return -1;
char fmt[timestamp_size];
strftime(fmt, sizeof(fmt), "%Y-%m-%d %H:%M:%S.%%06u", &timeinfo);
snprintf(timestamp, timestamp_size, fmt, tv.tv_usec);
#endif
return 0;
}