Thread: Sleep()?

  1. #1
    Registered User
    Join Date
    Apr 2002
    Posts
    7

    Post Sleep()?

    What's the sleep() function for C?

  2. #2
    Unleashed
    Join Date
    Sep 2001
    Posts
    1,765
    The sleep function, in Windows.h, is used ( most commonly ) for finer time procedures. You could use the stuff in time.h for instance, to put a predetermined pause in your program in seconds. You would have to create a function for this, then simply call it specifying how long you want your program to pause before continuing:
    Code:
    /*
    
        Function:
        wait_a_moment(int seconds)
        
        Purpose:
        Provide a predetermined pause in the program
        giving the user enough time to read a message.
        Continue program execution after time is up
        without any user interaction.
        
        Usage:
        wait_a_moment(3) - Pauses for 3 seconds
        wait_a_moment(5) - Pauses for 5 seconds
        
    */
    
    #include <time.h>
    
    void wait_a_moment(int seconds);
    
    void wait_a_moment(int seconds) 
    {
        clock_t endtime = clock() + seconds * CLOCKS_PER_SEC;
        while ( ( clock() < endtime ) );
    }
    Sleep, is used in miliseconds:
    Code:
    #include <windows.h>
    #include <stdio.h>
    
    int main()
    {
    	printf("Pausing..");
    	Sleep(200);
    	return 0;
    }
    The world is waiting. I must leave you now.

  3. #3
    Registered User loopy's Avatar
    Join Date
    Mar 2002
    Posts
    172
    The sleep function allow you to pause the program for x number of millisecond's, the syntax is:

    Code:
    int main();
    {
      sleep(2);
      printf("this is the sleep function.\n");
      return 0;
    }
    The above example is would pause the program for two millisecond's.

    Hope that help's.
    WorkStation(new, a month ago):

    Sony Vaio i686 Desktop
    2.60 GIGhz Intel Pentium 4(HT)
    512Mb DDR RAM
    800MHz Front Side Bus!
    120 GIG IDE HardDrive
    Matrox G400 Dual-Head
    Linux kernel 2.6.3
    Modified Slackware 9.1
    GCC/GDB

    Multi-mon
    Simultaneous Multiple Processes

  4. #4
    Unleashed
    Join Date
    Sep 2001
    Posts
    1,765
    > int main();
    My compiler doesn't like that very much.
    The world is waiting. I must leave you now.

  5. #5
    Registered User loopy's Avatar
    Join Date
    Mar 2002
    Posts
    172

    opp's

    How about:
    Code:
    int main()
    {
      sleep(2);
      printf("this is the sleep function.\n");
      return 0;
    }
    The only reason i'm confident enough to post help is because i've just learned all about the sleep function. My bad.
    WorkStation(new, a month ago):

    Sony Vaio i686 Desktop
    2.60 GIGhz Intel Pentium 4(HT)
    512Mb DDR RAM
    800MHz Front Side Bus!
    120 GIG IDE HardDrive
    Matrox G400 Dual-Head
    Linux kernel 2.6.3
    Modified Slackware 9.1
    GCC/GDB

    Multi-mon
    Simultaneous Multiple Processes

  6. #6
    Comment your source code! Lynux-Penguin's Avatar
    Join Date
    Apr 2002
    Posts
    533
    Code:
    SLEEP(3)            Linux Programmer's Manual            SLEEP(3)
    
    NAME
           sleep - Sleep for the specified number of seconds
    
    SYNOPSIS
           #include <unistd.h>
    
           unsigned int sleep(unsigned int seconds);
    
    DESCRIPTION
           sleep() makes the current process sleep until seconds sec-
           onds have  elapsed  or  a  signal  arrives  which  is  not
           ignored.
    
    RETURN VALUE
           Zero  if  the requested time has elapsed, or the number of
           seconds left to sleep.
    
    CONFORMING TO
           POSIX.1
    
    BUGS
           sleep() may be implemented using SIGALRM; mixing calls  to
           alarm() and sleep() is a bad idea.
    
           Using  longjmp()  from  a  signal handler or modifying the
           handling of SIGALRM while sleeping  will  cause  undefined
           results.
    
    SEE ALSO
           signal(2), alarm(2)
    
    GNU                       April 7, 1993                         1
    Man page for sleep(c)
    Asking the right question is sometimes more important than knowing the answer.
    Please read the FAQ
    C Reference Card (A MUST!)
    Pointers and Memory
    The Essentials
    CString lib

  7. #7
    Unleashed
    Join Date
    Sep 2001
    Posts
    1,765
    There, miliseconds, and regular seconds, hope you got enough information.
    The world is waiting. I must leave you now.

  8. #8
    Comment your source code! Lynux-Penguin's Avatar
    Join Date
    Apr 2002
    Posts
    533
    here's another for ya:
    Code:
    NANOSLEEP(2)        Linux Programmer's Manual        NANOSLEEP(2)
    
    NAME
           nanosleep - pause execution for a specified time
    
    SYNOPSIS
           #include <time.h>
    
           int  nanosleep(const struct timespec *req, struct timespec
           *rem);
    
    DESCRIPTION
           nanosleep delays the execution of the program for at least
           the  time specified in *req.  The function can return ear-
           lier if a signal has been delivered  to  the  process.  In
           this  case, it returns -1, sets errno to EINTR, and writes
           the remaining time into the structure pointed  to  by  rem
           unless rem is NULL.  The value of *rem can then be used to
           call nanosleep again and complete the specified pause.
    
           The structure timespec is used  to  specify  intervals  of
           time   with  nanosecond  precision.  It  is  specified  in
           <time.h> and has the form
    
                  struct timespec
                  {
                          time_t  tv_sec;         /* seconds */
                          long    tv_nsec;        /* nanoseconds */
                  };
    
           The value of the nanoseconds field must be in the range  0
           to 999 999 999.
    
           Compared  to  sleep(3)  and  usleep(3),  nanosleep has the
           advantage of not affecting any signals, it is standardized
           by  POSIX,  it  provides  higher timing resolution, and it
           allows to continue a sleep that has been interrupted by  a
           signal more easily.
    
    ERRORS
           In  case  of  an  error or exception, the nanosleep system
           call returns -1 instead of 0 and sets errno to one of  the
           following values:
    
           EINTR   The  pause  has  been interrupted by a non-blocked
                   signal that was  delivered  to  the  process.  The
                   remaining sleep time has been written into *rem so
                   that the process can easily call  nanosleep  again
                   and continue with the pause.
    
           EINVAL  The  value  in  the  tv_nsec  field was not in the
                   range 0 to 999 999 999 or tv_sec was negative.
    
    BUGS
           The current implementation of nanosleep is  based  on  the
           normal  kernel  timer mechanism, which has a resolution of
           1/HZ s (i.e, 10 ms on Linux/i386 and 1 ms on Linux/Alpha).
           Therefore, nanosleep pauses always for at least the speci-
           fied time, however it can take up to  10  ms  longer  than
           specified  until  the  process becomes runnable again. For
           the same reason, the value returned in case of a delivered
           signal  in *rem is usually rounded to the next larger mul-
           tiple of 1/HZ s.
    
           As some applications  require  much  more  precise  pauses
           (e.g.,  in  order to control some time-critical hardware),
           nanosleep is also capable of short high-precision  pauses.
           If  the process is scheduled under a real-time policy like
           SCHED_FIFO or SCHED_RR, then pauses of up to 2 ms will  be
           performed as busy waits with microsecond precision.
    
    CONFORMING TO
           POSIX.1b (formerly POSIX.4).
    
    SEE ALSO
           sleep(3), usleep(3), sched_setscheduler(2), and timer_cre-
           ate(2).
    
    Linux 1.3.85                1996-04-10                          1
    little fact about Sleep() not sleep()
    Sleep is a windows function that is in miliseconds...
    the reason it is a windows only function is because windows, when it boots up does these time thigns:
    Grabs time from time chip:
    Grab a few seconds for randomness and time measurement

    when it has the full second in memory it can seperate this into smaller portions this is why it is a windows ONLY function.
    The time Chip only has seconds, not milliseconds.
    Last edited by Lynux-Penguin; 05-25-2002 at 12:30 AM.
    Asking the right question is sometimes more important than knowing the answer.
    Please read the FAQ
    C Reference Card (A MUST!)
    Pointers and Memory
    The Essentials
    CString lib

  9. #9
    Unleashed
    Join Date
    Sep 2001
    Posts
    1,765
    Gee, now the new guys don't even have to search for the man pages.
    The world is waiting. I must leave you now.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. [pthread] cancellable sleep in win32?
    By cyberfish in forum C++ Programming
    Replies: 2
    Last Post: 08-11-2007, 02:30 AM
  2. Sleep works with just one thread, but not 2
    By finkus in forum C++ Programming
    Replies: 5
    Last Post: 12-01-2005, 09:17 PM
  3. Problem with Sleep() #$@^#$%^
    By intruder in forum C++ Programming
    Replies: 8
    Last Post: 10-11-2004, 06:46 AM
  4. why do we require sleep?
    By jinx in forum A Brief History of Cprogramming.com
    Replies: 43
    Last Post: 07-14-2004, 08:21 AM
  5. Sleep is overrated...
    By Polymorphic OOP in forum A Brief History of Cprogramming.com
    Replies: 24
    Last Post: 01-24-2003, 12:40 PM