#include <stdio.h> #include <unistd.h> #include <time.h> void sleep_nanoseconds(const long nanoseconds) { struct timespec ts; ts.tv_sec = 0; ts.tv_nsec = nanoseconds; nanosleep(&ts, NULL); } void sleep_microseconds(const useconds_t microseconds) { usleep(microseconds); } void sleep_milliseconds(const long milliseconds) { usleep(milliseconds * 1000); } void sleep_seconds(const time_t seconds) { sleep(seconds); } int main() { { const long n = 1e9; printf("Sleeping %ld nanoseconds\n", n); sleep_nanoseconds(n); } { const useconds_t n = 1e6; printf("Sleeping %ud microseconds\n", n); sleep_microseconds(n); } { const long n = 1e3; printf("Sleeping %ld milliseconds\n", n); sleep_milliseconds(n); } { const time_t n = 1; printf("Sleeping %ld seconds\n", n); sleep_seconds(n); } }There is also g_usleep() if you're using GLib.
Programming Tips - C/C++: How to sleep for nanoseconds, microseconds, milliseconds, seconds
Date: 2025jun16
Language: C/C++
Q. C/C++: How to sleep for nanoseconds, microseconds, milliseconds, seconds
A. Here is how to do it in C. This works in C++ but its better to use chrono
for new code.