[ovs-dev] [PATCH] util: Set program_name for windows correctly.
Gurucharan Shetty
shettyg at nicira.com
Mon Jan 6 16:54:38 UTC 2014
Windows path uses backward slashes. Also, the executable name
has a .exe extension in it. While creating log files, we use
the program name to create log file names. It feels a little odd
to have log file names like ovsdb-server.exe.log etc. Using
_splitpath_s() is a way to have same log file names on both
windows and linux platforms.
Signed-off-by: Gurucharan Shetty <gshetty at nicira.com>
---
lib/util.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/lib/util.c b/lib/util.c
index 984ab45..0ebf085 100644
--- a/lib/util.c
+++ b/lib/util.c
@@ -373,11 +373,18 @@ void
set_program_name__(const char *argv0, const char *version, const char *date,
const char *time)
{
+#ifdef _WIN32
+ char *basename;
+ size_t max_len = strlen(argv0) + 1;
+ basename = xmalloc(max_len);
+ _splitpath_s(argv0, NULL, 0, NULL, 0, basename, max_len, NULL, 0);
+ assert_single_threaded();
+ program_name = basename;
+#else
const char *slash = strrchr(argv0, '/');
-
assert_single_threaded();
-
program_name = slash ? slash + 1 : argv0;
+#endif
free(program_version);
--
1.7.9.5
More information about the dev
mailing list