for windows -
#include <windows.h>
VOID WINAPI Sleep(DWORD Milliseconds);
for linux
# include <unistd.h>
unsigned int sleep(unsigned int Seconds);
Notice though that they use different arguments. In windows its in milliseconds, and in linux its in full seconds
In general, on windows, if you just need to keep the thread from blocking other processes, use Sleep(0); which will immediately return control to the calling thread if no other threads or processes are waiting. Any value higher than 0 will guarantee that control does not return to the calling thread PRIOR to that time elapsing, but there is no guarantee of it happening exactly at that time. So e.g. Sleep (1000); would not return before 1000 milliseconds had elapsed, but it could very well not return for 5 seconds, or 5 days. If you want to actually wait a specified time, e.g. being laptop battery friendly, you should instead use timer functions such as
UINT_PTR WINAPI SetTimer(...);
https://msdn.microsoft.com/en-us/library/windows/desktop/ms644906(v=vs.85).aspx
These can have better resolution, and callback timers in specific are virtually guaranteed to execute at the specified interval except on the most heavily overloaded system.