/* sys/sys.cc This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ // project headers #include "sys/sys.h" // system headers #ifdef _WIN32 #include #else #include #include #include #include #include #endif #include namespace sys { bool mkdir(const char *path) { #ifdef _WIN32 ::mkdir(path); // FIXME check return value return true; #else return (::mkdir(path, 0777) == 0); #endif } void signal(int signum, signalfunc handler) { #ifndef _WIN32 struct sigaction sa; sa.sa_handler = handler; sa.sa_flags = 0; ::sigaction(signum, &sa, 0); #endif } unsigned long time() { #ifndef _WIN32 struct ::tm localtime; time_t epochtime = ::time(0); ::localtime_r(&epochtime, &localtime); return ((unsigned long) (localtime.tm_sec + localtime.tm_min*60 + localtime.tm_hour*3600)); #else retrun 0; #endif } void sleep(float seconds) { #ifndef _WIN32 ::usleep((useconds_t) seconds * (useconds_t) 1000000.0 ); #endif } void quit(int status) { ::exit(status); } }