Manpages

名 前

ualarm − 指 定 し た マ イ ク ロ 秒 後 に シ グ ナ ル を 送 る 予 定 を す る

書 式

#include <unistd.h>

useconds_t ualarm(useconds_t usecs, useconds_t interval);

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

ualarm():

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

説 明

ualarm() 関 数 は 、 呼 び 出 し 元 の プ ロ セ ス に 対 し て usecs マ イ ク ロ 秒 (以 上 ) 後 に SIGALRM シ グ ナ ル を 送 る 。 遅 れ は シ ス テ ム の 活 性 度 ・ 呼 び 出 し の 処 理 時 間 ・ シ ス テ ム タ イ マ ー の 粒 度 に よ っ て 長 く な る か も し れ な い 。 捕 捉 ま た は 無 視 さ れ な い 限 り 、 SIGALRM シ グ ナ ル は プ ロ セ ス を 終 了 さ せ る 。

interval 引 き 数 が 0 で な い 場 合 、 最 初 の SIGALRM シ グ ナ ル の 後 、 さ ら に interval マ イ ク ロ 秒 毎 に SIGALRM シ グ ナ ル が 送 ら れ る 。

返 り 値

こ の 関 数 は 、 過 去 に 設 定 さ れ た alarm の 残 り マ イ ク ロ 秒 数 を 返 す 。 実 行 中 の alarm が な い 場 合 は 0 を 返 す 。

エ ラ ー

EINTR シ グ ナ ル に よ っ て 割 り 込 ま れ た 。

EINVAL

usecs ま た は interval が 1000000 未 満 で な い (こ れ が エ ラ ー と し て 扱 わ れ る シ ス テ ム の 場 合 )。

属 性

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

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

準 拠

4.3BSD, POSIX.1−2001. POSIX.1−2001 で は ualarm() は 過 去 の も の と さ れ て い る 。 POSIX.1−2008 で は 、 ualarm() の 仕 様 が 削 除 さ れ て い る 。 4.3BSD, SUSv2, POSIX は エ ラ ー を 定 義 し て い な い 。

注 意

POSIX.1−2001 で は 、 usecs 引 き 数 が 0 の 場 合 、 何 が 起 こ る か は 規 定 さ れ て い な い 。 Linux (や お そ ら く 他 ほ と ん ど の シ ス テ ム ) で は 、 usecs 引 き 数 が 0 の 場 合 、 処 理 待 ち の ア ラ ー ム が キ ャ ン セ ル さ れ る 。

useconds_t 型 は [0,1000000] の 範 囲 の 整 数 を 保 持 で き る 符 号 な し 整 数 型 で あ る 。 も と も と の BSD で の 実 装 や 、 バ ー ジ ョ ン 2.1 よ り 前 の glibc で は 、 ualarm() の 引 き 数 の 型 は unsigned int で あ っ た 。 プ ロ グ ラ ム 中 に 明 示 的 に useconds_t と 書 か な い 方 が 、 移 植 性 が 高 く な る 。 こ の 関 数 と alarm(2), sleep(3), nanosleep(2), setitimer(2), timer_create(2), timer_delete(2), timer_getoverrun(2), timer_gettime(2), timer_settime(2), usleep(3) の よ う な 他 の タ イ マ ー 関 数 と の 相 互 作 用 は 規 定 さ れ て い な い 。 こ の 関 数 は 廃 止 予 定 で あ る 。 代 わ り に setitimer(2) も し く は POSIX イ ン タ ー バ ル タ イ マ ー (timer_create(2) な ど ) を 使 う こ と 。

関 連 項 目

alarm(2), getitimer(2), nanosleep(2), select(2), setitimer(2), usleep(3), time(7)

こ の 文 書 に つ い て

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