From: Oleg S. <se...@ma...> - 2002-01-11 21:49:32
|
fabrice ilponse wrote: > Earnie Boyd wrote: > > >>>> > >>>Modify that to 2*1000 and it'll wait 2 seconds. > >>> > >> Yes but that's not portable. :( > >> Is there a way to overide sleep so it acts like under unix? > >> > > > >#if defined(_WIN32) && ! defined (__unix__) > > sleep (2*1000); > >#else > > sleep (2); > >#endif > > > In my idea, portable means never care about the system your prog is > compiled for and use a "standard" function which as the same behaviour > every time. It's the compiler to make sure the prog runs as it should... ;) > Speaking about portability we should decide which portability do we mean. Is such a case you should use portable runtime library. The MS' one is not very portable. By the way Microsoft says the _sleep() function is obsolete and deprecated, thus we should avoid using it in a new code. As for me I would declare macro like this: #if defined(MSC_VER) || defined(__MINGW32__) #define HAVE_MS_SLEEP #endif #ifdef HAVE_MS_SLEEP #define sleep_for(seconds) _sleep( (seconds) * 1000) #else #define sleep_for(seconds) sleep(seconds) #endif Surely it doesn't provide extra portability to neither compiler nor clib, but it makes the program a bit more portable, at least for posix/WIN32 platforms. |