スポンサーリンク

NANOSLEEP(2) FreeBSD システムコールマニュアル NANOSLEEP(2)

名称

nanosleep − ナノ秒単位の間隔でプロセス実行を中断する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <time.h>

int

nanosleep(const struct timespec *rqtp, struct timespec *rmtp);

解説

nanosleep() システムコールによってプロセスは指定の時間だけ休眠状態になり ます。シグナルによる割り込み時の SA_RESTART 値に無関係に、マスクされてい ないシグナルがあるとプロセスの休眠状態は早めに終了します。

戻り値

要求された時間が経過したために nanosleep() システムコールが戻った場合、返 される値は 0 になります。

シグナルが配信されたために nanosleep() システムコールから戻った場合に返さ れる値は -1 になり、割り込みを示すためにグローバル変数 errno が設定されま す。 rmtp が NULL でない場合、それが参照する timespec 構造体は非休眠時間 で更新されます (要求時間から、実際に休眠状態にあった時間を減算したもので す)。

エラー

nanosleep() システムコールは、次の場合に失敗します:

       [EFAULT]

rqtp または rmtp のどちらかが、プロセスに割り当てられ たアドレス空間の範囲外のメモリを指しています。

[EINTR]
nanosleep
() システムコールはシグナルの配信によって割り 込まれました。

[EINVAL]
rqtp
引数に 0 未満か、10 億ナノ秒以上の値を指定しまし た。

[ENOSYS]
nanosleep
() システムコールはこのシステムではサポートさ れていません。

関連項目

sigsuspend(2), sleep(3)

規格

nanosleep() システムコールは IEEE Std 1003.1b-1993 (‘‘POSIX.1’’) に適合し ています。

FreeBSD 10.0 April 17, 1997 FreeBSD 10.0

スポンサーリンク