nanosleep函數用于將當前線程掛起一段指定的時間。
其用法如下:
#include <time.h>
int nanosleep(const struct timespec *req, struct timespec *rem);
參數說明:
- req:指定掛起的時間長度,以納秒為單位。要掛起的時間長度由結構timespec表示,其中成員tv_sec表示秒數,tv_nsec表示納秒數。
- rem:如果掛起被其它信號中斷,函數調用結束時,將返回未掛起的時間長度。這個參數可以為NULL。
返回值:
- 如果掛起時間達到指定的時間長度,則返回0;
- 如果掛起被其它信號中斷,返回剩余的時間長度;
- 如果發生錯誤,返回-1,并設置errno變量來指明錯誤原因。
注意:
- nanosleep函數是相對精確的,但精確性取決于系統的時鐘分辨率。
- req參數指定的時間長度必須是正數,否則nanosleep函數將返回EINVAL錯誤。
- rem參數不是必須的,如果不需要獲取剩余時間,則可以將其設置為NULL。