util: introduce format_timestamp()

This commit is contained in:
Lennart Poettering 2010-04-10 04:38:49 +02:00
parent bbd6713566
commit 8b6c71206d
2 changed files with 22 additions and 0 deletions

18
util.c
View File

@ -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",

4
util.h
View File

@ -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)) \