C言語のnanosleep関数は、プロセスを指定時間待機させます。
nanosleep関数は、現在のスレッドを指定した時間だけ休止させるのに使用されます
#include <time.h>
int nanosleep(const struct timespec *req, struct timespec *rem);
パラメータの説明:
- timespec構造体は、指定秒数(tv_sec) とナノ秒数(tv_nsec) からなる、指定時間の長さ(ナノ秒単位)を表す。
- rem: シグナル以外の条件で中断された場合、関数呼び出しの終了時に、中断されなかった残りの時間の長さを返します。このパラメーターは NULL にできます。
返す値:
- 指定時間の長さが経過したら0を返す。
- 他の信号によって中断された場合、残りの時間を返す。
- エラー発生時は-1を返し、errno変数にエラー原因を設定します。
ご注意ください。
- nanosleep 関数は比較的正確だが、正確さはシステムのクロック分解能に左右される。
- req パラメータで指定する時間の長さは正数でなければならず、そうでなければ nanosleep 関数は EINVAL エラーを返します。
- rem パラメータは必須ではありません。残り時間を取得する必要がない場合は、NULL に設定できます。