Home >Backend Development >C++ >How to Pause Program Execution in C using Sleep Functions?
In pursuit of controlling program execution flow, you may encounter the need to pause the program for a specified duration. In C , there's no direct equivalent to the commonly used Sleep(time) function found in other languages. However, the C standard library provides a viable alternative.
The C Standard Library offers the std::this_thread::sleep_for function, which allows you to suspend the current thread's execution for a specified duration. To use it, you'll need to include the following headers:
<code class="cpp">#include <chrono> #include <thread></code>
The syntax of std::this_thread::sleep_for is as follows:
<code class="cpp">void sleep_for(const std::chrono::duration& timespan);</code>
Where timespan is a std::chrono::duration object specifying the duration of the sleep. To create a millisecond-based std::chrono::duration, use the std::chrono::milliseconds constructor:
<code class="cpp">std::chrono::milliseconds timespan(111605);</code>
Using these components, you can halt the execution of your program for the desired time interval:
<code class="cpp">std::this_thread::sleep_for(timespan);</code>
Note that std::this_thread::sleep_until serves as a complementary function for precise time-based synchronization.
Prior to the introduction of C 11, the language lacked thread functionality and sleep capabilities. Consequently, the solution to suspend execution was platform-dependent. For Windows or Unix, you might have relied on something like this:
<code class="cpp">#ifdef _WIN32 #include <windows.h> void sleep(unsigned milliseconds) { Sleep(milliseconds); } #else #include <unistd.h> void sleep(unsigned milliseconds) { usleep(milliseconds * 1000); // takes microseconds } #endif</code>
Alternatively, you could have simplified the implementation using the Boost library's boost::this_thread::sleep.
The above is the detailed content of How to Pause Program Execution in C using Sleep Functions?. For more information, please follow other related articles on the PHP Chinese website!