Is there an alternative sleep function in C to milliseconds?

前端 未结 6 466
难免孤独
难免孤独 2020-11-28 19:25

I have some source code that was compiled on Windows. I am converting it to run on Red Hat Linux.

The source code has included the he

6条回答
  •  猫巷女王i
    2020-11-28 20:12

    Alternatively to usleep(), which is not defined in POSIX 2008 (though it was defined up to POSIX 2004, and it is evidently available on Linux and other platforms with a history of POSIX compliance), the POSIX 2008 standard defines nanosleep():

    nanosleep - high resolution sleep

    #include 
    int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);
    

    The nanosleep() function shall cause the current thread to be suspended from execution until either the time interval specified by the rqtp argument has elapsed or a signal is delivered to the calling thread, and its action is to invoke a signal-catching function or to terminate the process. The suspension time may be longer than requested because the argument value is rounded up to an integer multiple of the sleep resolution or because of the scheduling of other activity by the system. But, except for the case of being interrupted by a signal, the suspension time shall not be less than the time specified by rqtp, as measured by the system clock CLOCK_REALTIME.

    The use of the nanosleep() function has no effect on the action or blockage of any signal.

提交回复
热议问题