thrd_sleep
|
ヘッダーで定義
<threads.h>
|
||
|
int
thrd_sleep
(
const
struct
timespec
*
duration,
struct timespec * remaining ) ; |
(C11以降) | |
現在のスレッドの実行を、
少なくとも
TIME_UTC
ベースの期間が
duration
によって指される時間が経過するまでブロックします。
無視されない
signal
を受信した場合、スリープは早期に再開される可能性があります。この場合、
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 thrd_sleep関数 (p: 281)
- C11規格 (ISO/IEC 9899:2011):
-
- 7.26.5.7 thrd_sleep関数 (p: 385)
関連項目
|
(C11)
|
現在のタイムスライスを譲る
(関数) |
|
C++ documentation
for
sleep_for
|
|