USLEEP
Section: Linux Programmer's Manual (3)
Updated: 2007-07-26
Index
JM Home Page
roff page
名前
usleep - マイクロ秒単位で実行を延期する
書式
#include <unistd.h>
int usleep(useconds_t usec);
glibc 向けの機能検査マクロの要件
(feature_test_macros(7)
参照):
usleep():
_BSD_SOURCE || _XOPEN_SOURCE >= 500
説明
usleep()
関数は
(少なくとも) usecマイクロ秒の間、
呼び出し元プロセスの実行を延期する。
システムの動作状況や呼び出しによる時間の消費やシステムタイマの粒度によって、
停止時間は設定した値よりも少し延ばされるかもしれない。
返り値
成功すると 0、エラーの場合 -1 を返す。
エラー
- EINTR
-
シグナルによって中断された。
- EINVAL
-
usec が 1000000 以上だった。
(これをエラーとみなすシステムのみ)
準拠
4.3BSD, POSIX.1-2001.
POSIX.1-2001 では、この関数は過去のものと宣言されている。
代わりに
nanosleep(2)
を使うこと。
もともとの BSD の実装や、バージョン 2.2.2 より前の glibc では、
この関数の返り値の型は
void
である。
POSIX 版は
int
を返し、このプロトタイプは glibc 2.2.2 以降で使用されている。
エラーとして
EINVAL
を返すというのは
SUSv2 でのみ文書化されている。
注意
useconds_t
型は [0,1000000] の範囲の整数を扱うことができる
符号なし整数型である。
明示的にこの型を使わないことでプログラムの移植性がより高まる。
以下のように使うこと。
-
#include <unistd.h>
...
unsigned int usecs;
...
usleep(usecs);
この関数と、
SIGALRM
シグナルあるいは
alarm(2),
sleep(3),
nanosleep(2),
setitimer(2),
timer_create(3),
timer_delete(3),
timer_getoverrun(3),
timer_gettime(3),
timer_settime(3),
ualarm(3)
といったその他のタイマー関数を同時に使った場合の動作は未定義である。
関連項目
alarm(2),
getitimer(2),
nanosleep(2),
select(2),
setitimer(2),
ualarm(3),
sleep(3),
time(7)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:32:10 GMT, November 19, 2007