From: Osier Yang Date: Mon, 1 Nov 2010 04:17:14 +0000 (+0800) Subject: util: Add helper function to build timestamp string X-Git-Tag: v0.8.6~188 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=af3ba2cd50b836a7d43b0b9134abf93b6c962ead;p=thirdparty%2Flibvirt.git util: Add helper function to build timestamp string * src/util/util.h * src/util/util.c * src/libvirt_private.syms --- diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index cf64bd3661..bd77a34ef9 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -779,6 +779,7 @@ virStrToLong_ui; virStrToLong_ull; virStrcpy; virStrncpy; +virTimestamp; # uuid.h diff --git a/src/util/util.c b/src/util/util.c index 2632fe701f..f7c7d3253c 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -38,6 +38,7 @@ #include #include #include +#include #if HAVE_MMAP # include #endif @@ -2912,3 +2913,30 @@ int virBuildPathInternal(char **path, ...) return ret; } + +/** + * virTimestamp: + * + * Return an allocated string containing the current date and time, + * followed by ": ". Return NULL on allocation failure. + */ +char * +virTimestamp(void) +{ + struct timeval cur_time; + struct tm time_info; + char timestr[100]; + char *timestamp; + + gettimeofday(&cur_time, NULL); + localtime_r(&cur_time.tv_sec, &time_info); + + strftime(timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S", &time_info); + + if (virAsprintf(×tamp, "%s.%03d: ", + timestr, (int) cur_time.tv_usec / 1000) < 0) { + return NULL; + } + + return timestamp; +} diff --git a/src/util/util.h b/src/util/util.h index 5de4fd67d4..a240d8791c 100644 --- a/src/util/util.h +++ b/src/util/util.h @@ -160,6 +160,7 @@ int virFileOpenTtyAt(const char *ptmx, char* virFilePid(const char *dir, const char *name); + int virFileWritePidPath(const char *path, pid_t pid) ATTRIBUTE_RETURN_CHECK; int virFileWritePid(const char *dir, @@ -277,4 +278,6 @@ void virFileWaitForDevices(void); # define virBuildPath(path, ...) virBuildPathInternal(path, __VA_ARGS__, NULL) int virBuildPathInternal(char **path, ...) ATTRIBUTE_SENTINEL; +char *virTimestamp(void); + #endif /* __VIR_UTIL_H__ */