thrd_sleep
From cppreference.com
| ヘッダ <threads.h>で定義 |
||
| int thrd_sleep( const struct timespec* duration, struct timespec* remaining ); |
(C11 以降) | |
現在のスレッドの実行を、durationが指すTIME_UTCベースの期間が経過するまで、少なくともブロックします。
無視されないシグナルを受信した場合、スリープは早期に再開されることがあります。その場合、remainingがNULLでない場合、残りの期間はremainingが指すオブジェクトに格納されます。
目次 |
[編集] パラメータ
| duration | - | スリープする期間へのポインタ |
| remaining | - | 割り込み時に残りの時間を格納するオブジェクトへのポインタ。NULLの場合があり、その場合は無視されます。 |
[編集] 戻り値
成功したスリープの場合は0、シグナルが発生した場合は-1、エラーが発生した場合はその他の負の値。
[編集] 注記
durationとremainingは同じオブジェクトを指すことができ、これによりシグナル発生後の関数の再実行が容易になります。
実際のスリープ時間は、タイマーの粒度に切り上げられること、およびスケジューリングやコンテキストスイッチのオーバーヘッドのため、要求された時間よりも長くなる場合があります。
この関数のPOSIX相当は、nanosleepです。
[編集] 例
このコードを実行
出力
Time: Mon Feb 2 16:18:41 2015 Time: Mon Feb 2 16:18:42 2015
[編集] 参照
- C17標準 (ISO/IEC 9899:2018)
- 7.26.5.7 The thrd_sleep function (p: 281)
- C11標準 (ISO/IEC 9899:2011)
- 7.26.5.7 The thrd_sleep function (p: 385)
[編集] 関連項目
| (C11) |
現在のタイムスライスを譲る (関数) |
| C++ドキュメント for sleep_for
| |