Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all
名前
usleep - マイクロ秒単位で実行を延期する
書式
#include <unistd.h> int usleep(useconds_t usec); glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照): usleep(): glibc 2.12 以降: (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L) || /* Glibc 2.19 以降: */ _DEFAULT_SOURCE || /* Glibc 2.19 以前: */ _BSD_SOURCE glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE >= 500
説明
usleep() 関数は (少なくとも) usecマイクロ秒の間、 呼び出し元スレッドの実行を延期する。 シ ステムの動作状況や呼び出しによる時間の消費やシステムタイマーの粒度によって、 停止時間は設 定した値よりも少し延ばされるかもしれない。
返り値
usleep() 関数は成功すると 0 を返す。 エラーの場合、 -1 が返され、 errno にエラーの原因を示 す値が設定される。
エラー
EINTR シグナルによって中断された。 signal(7) 参照。 EINVAL usec が 1000000 以上だった。 (これをエラーとみなすシステムのみ)
属性
この節で使用されている用語の説明については、 attributes(7) を参照。 ┌─────────────────┬───────────────┬─────────┐ │インターフェース │ 属性 │ 値 │ ├─────────────────┼───────────────┼─────────┤ │ usleep() │ Thread safety │ MT-Safe │ └─────────────────┴───────────────┴─────────┘
準拠
4.3BSD, POSIX.1-2001. POSIX.1-2001 では、この関数は過去のものと宣言されている。 代わりに nanosleep(2) を使うこと。 POSIX.1-2008 では、 usleep() の規定が削除されている。 もともとの BSD の実装や、バージョン 2.2.2 より前の glibc では、 この関数の返り値の型は void である。 POSIX 版は int を返し、このプロトタイプは glibc 2.2.2 以降で使用されている。 エラーとして EINVAL を返すというのは SUSv2 と POSIX.1-2001 でのみ文書化されている。
注意
useconds_t 型は [0,1000000] の範囲の整数を扱うことができる 符号なし整数型である。 明示的に この型を使わないことでプログラムの移植性がより高まる。 以下のように使うこと。 #include <unistd.h> ... unsigned int usecs; ... usleep(usecs); この関数と、 SIGALRM シグナルあるいは alarm(2), sleep(3), nanosleep(2), setitimer(2), timer_create(2), timer_delete(2), timer_getoverrun(2), timer_gettime(2), timer_settime(2), ualarm(3) といったその他のタイマー関数を同時に使った場合の動作は未定義である。
関連項目
alarm(2), getitimer(2), nanosleep(2), select(2), setitimer(2), sleep(3), ualarm(3), time(7)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの 説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。 2017-09-15 USLEEP(3)