usleep - ライブラリコールの説明 - Linux コマンド集 一覧表
名前
usleep - マイクロ秒単位で実行を延期する
書式
/* BSD version */ "#include <unistd.h>"
void usleep(unsigned long usec);
/* SUSv2 version */ "#define _XOPEN_SOURCE 500"
"#include <unistd.h>"
int usleep(useconds_t usec);
説明
usleep () 関数は (少なくとも)usec マイクロ秒の間、 呼び出し元プロセスの実行を延期する。 システムの動作状況や呼び出しによる時間の消費やシステムタイマの粒度によって、 停止時間は設定した値よりも少し延ばされるかもしれない。
返り値
なし(BSD 版の場合) または: 成功時に 0、エラー時に -1 (SUSv2 版の場合)。
エラー
- EINTR
- シグナルによって中断された。
- EINVAL
- usec が 1000000 以上だった。 (これがエラーと考えるシステムのみ)
準拠
4.3BSD, POSIX.1-2001. SUSv2 では int を返すことになっており、 glibc 2.2.2 が使っているプロトタイプもそのようになっている。 エラーとして EINVAL を返すというのは SUSv2 でのみ文書化されている。
注意
useconds_t
型は [0,1000000] の範囲の整数を扱うことができる
符号なし整数型である。
明示的にこの型を使わないことでプログラムの移植性がより高まる。
以下のように使うこと。
#include <unistd.h> ... unsigned int usecs; ... usleep(usecs);
この型は <unistd.h> からインクルードされている <sys/types.h> で定義されている。 しかし glibc は _XOPEN_SOURCE の値が 500 以上か、 _XOPEN_SOURCE と _XOPEN_SOURCE_EXTENDED の両方が定義されている場合にのみ定義する。
この関数と、SIGALRM シグナルあるいは alarm (), sleep (), nanosleep (), setitimer (), timer_create (), timer_delete (), timer_getoverrun (), timer_gettime (), timer_settime (), ualarm ()といったその他のタイマー関数を同時に使った場合の動作は未定義である。
この関数は古いものである。 代わりに nanosleep (2) または setitimer (2)を使うこと。