USLEEP(3) | Linux Programmer's Manual | USLEEP(3) |
名前
usleep -マイクロ秒単位で実行を延期する書式
#include <unistd.h>
int usleep(useconds_t usec );
glibc 向けの機能検査マクロの要件 ( feature_test_macros(7) 参照):
- glibc 2.12 以降:
-
_BSD_SOURCE ||
(_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED) &&
!(_POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700)
glibc 2.12 より前: _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
説明
usleep() 関数は (少なくとも) usecマイクロ秒の間、呼び出し元スレッドの実行を延期する。システムの動作状況や呼び出しによる時間の消費やシステムタイマの粒度によって、停止時間は設定した値よりも少し延ばされるかもしれない。返り値
成功すると 0、エラーの場合-1 を返す。エラー
- EINTR
- シグナルによって中断された。 signal(7) 参照。
- EINVAL
- usec が 1000000 以上だった。 (これをエラーとみなすシステムのみ)
準拠
4.3BSD, POSIX.1-2001. POSIX.1-2001 では、この関数は過去のものと宣言されている。代わりに nanosleep(2) を使うこと。 POSIX.1-2008 では、 usleep() の規定が削除されている。注意
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 プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2010-12-03 |