Manpages

名 前

usleep − マ イ ク ロ 秒 単 位 で 実 行 を 延 期 す る

書 式

#include <unistd.h>

int usleep(useconds_t usec);

glibc 向 け の 機 能 検 査 マ ク ロ の 要 件 (feature_test_macros(7) 参 照 ):

usleep():

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マ イ ク ロ 秒 の 間 、 呼 び 出 し 元 ス レ ッ ド の 実 行 を 延 期 す る 。 シ ス テ ム の 動 作 状 況 や 呼 び 出 し に よ る 時 間 の 消 費 や シ ス テ ム タ イ マ ー の 粒 度 に よ っ て 、 停 止 時 間 は 設 定 し た 値 よ り も 少 し 延 ば さ れ る か も し れ な い 。

返 り 値

usleep() 関 数 は 成 功 す る と 0 を 返 す 。 エ ラ ー の 場 合 、 −1 が 返 さ れ 、 errno に エ ラ ー の 原 因 を 示 す 値 が 設 定 さ れ る 。

エ ラ ー

EINTR シ グ ナ ル に よ っ て 中 断 さ れ た 。

signal(7) 参 照 。

EINVAL

usec が 1000000 以 上 だ っ た 。 (こ れ を エ ラ ー と み な す シ ス テ ム の み )

属 性

マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 )

usleep() 関 数 は ス レ ッ ド セ ー フ で あ る 。

準 拠

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 プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。