**************************************************************************/
#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+
#include <unistd.h>
+#include <sys/time.h>
#include <pthread.h>
#include "os.hpp"
bool
GetProcessName(char *str, size_t size)
{
+ ssize_t len;
char szProcessPath[PATH_MAX + 1];
char *lpProcessName;
-
+
// http://stackoverflow.com/questions/1023306/finding-current-executables-path-without-proc-self-exe
- if (readlink("/proc/self/exe", szProcessPath, sizeof(szProcessPath) - 1) == -1) {
+ len = readlink("/proc/self/exe", szProcessPath, sizeof(szProcessPath) - 1);
+ if (len == -1) {
*str = 0;
return false;
}
+ szProcessPath[len] = 0;
lpProcessName = strrchr(szProcessPath, '/');
lpProcessName = lpProcessName ? lpProcessName + 1 : szProcessPath;
-
+
strncpy(str, lpProcessName, size);
+ if (size)
+ str[size - 1] = 0;
return true;
}
+bool
+GetCurrentDir(char *str, size_t size)
+{
+ char *ret;
+ ret = getcwd(str, size);
+ str[size - 1] = 0;
+ return ret ? true : false;
+}
+
+void
+DebugMessage(const char *format, ...)
+{
+ va_list ap;
+ va_start(ap, format);
+ fflush(stdout);
+ vfprintf(stderr, format, ap);
+ va_end(ap);
+}
+
+long long GetTime(void)
+{
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ return tv.tv_usec + tv.tv_sec*1000000LL;
+}
+
+void
+Abort(void)
+{
+ exit(0);
+}
+
} /* namespace OS */
+