Google
 
Webcprogramming.com




An Affiliate of AIHorizon





Match word(s).

If you have any questions or comments,
please visit us on the Forums.

FAQ > How do I... (Level 2) > Sleeping

This item was added on: 2003/02/23

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

Script provided by SmartCGIs.com and enhanced by Hammer.



-----
Interested in advertising with us?
Please read our privacy policy.
Copyright © 1997-2009 Cprogramming.com. All rights reserved.