From: Lennart Poettering Date: Sat, 10 Apr 2010 02:38:49 +0000 (+0200) Subject: util: introduce format_timestamp() X-Git-Tag: 0.git+20100605+dfd8ee-1~189 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8b6c71206d32b11683e5e7cebc9acb467ba01b38;p=systemd util: introduce format_timestamp() --- diff --git a/util.c b/util.c index 29f48b08..52ca5e25 100644 --- a/util.c +++ b/util.c @@ -1258,6 +1258,24 @@ bool chars_intersect(const char *a, const char *b) { return false; } +char *format_timestamp(char *buf, size_t l, usec_t t) { + struct tm tm; + time_t sec; + + assert(buf); + assert(l > 0); + + if (t <= 0) + return NULL; + + sec = (time_t) t / USEC_PER_SEC; + + if (strftime(buf, l, "%a, %d %b %Y %H:%M:%S %z", localtime_r(&sec, &tm)) <= 0) + return NULL; + + return buf; +} + static const char *const ioprio_class_table[] = { [IOPRIO_CLASS_NONE] = "none", [IOPRIO_CLASS_RT] = "realtime", diff --git a/util.h b/util.h index b22074ed..df2f3f79 100644 --- a/util.h +++ b/util.h @@ -41,6 +41,8 @@ typedef uint64_t usec_t; #define WHITESPACE " \t\n\r" #define NEWLINE "\n\r" +#define FORMAT_TIMESTAMP_MAX 64 + usec_t now(clockid_t clock); usec_t timespec_load(const struct timespec *ts); @@ -166,6 +168,8 @@ bool ignore_file(const char *filename); bool chars_intersect(const char *a, const char *b); +char *format_timestamp(char *buf, size_t l, usec_t t); + #define DEFINE_STRING_TABLE_LOOKUP(name,type) \ const char *name##_to_string(type i) { \ if (i < 0 || i >= (type) ELEMENTSOF(name##_table)) \