This item was added on: 2003/02/22
On occasion, you may want your program to wait for a period of time before continuing, giving the affect of a pause. This can be achieved using a sleep function.
To make a standard sleep function that is portable, you can use the following functions, as supplied by Prelude and Sebastiani. These simply put your program into a permanent loop until the necessary amount of time has passed. The problem with this method is that it is very CPU intensive. For a less CPU intensive, but also less portable method, keep reading.
#include <time.h>
void sleep_seconds ( long seconds ) {
clock_t limit, now = clock();
limit = now + seconds * CLOCKS_PER_SEC;
while ( limit > now )
now = clock();
}
void sleep_ticks ( long ticks ) {
clock_t limit, now = clock();
limit = now + ticks;
while ( limit > now )
now = clock();
}
void wait(long milliseconds)
{
long timeout = clock() + milliseconds;
while( clock() < timeout ) continue;
}
Some compilers come with a non-standard set of functions to do the same thing, but these normally put your program to sleep without the need for a permanent loop. The advantage with these is that they don't hog the CPU.
Check your compiler's documentation for some of these functions:
Sleep()
(maybe in windows.h)
sleep()
(maybe in unistd.h)
delay()
(maybe in dos.h)
Be warned, some functions work in milliseconds, and some in seconds, so handle with care