ualarm

Autres langues

Langue: ja

Version: 2003-07-24 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

名前

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

書式

 #define _XOPEN_SOURCE 500     /* または #define _BSD_SOURCE */
 #include <unistd.h>
 
 useconds_t ualarm(useconds_t usecs, useconds_t interval);
 

説明

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

捕捉または無視されない限り、 SIGALRM シグナルはプロセスを終了させる。

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

返り値

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

エラー

EINTR
シグナルによって割り込まれた。
EINVAL
usecs または interval が 1000000 未満でない (これがエラーとして扱われるシステムの場合)。

準拠

4.3BSD, POSIX.1-2001. POSIX.1-2001 では ualarm() は過去のものとされている。 4.3BSD, SUSv2, POSIX はエラーを定義していない。

注意

useconds_t 型は [0,1000000] の範囲の整数を保持できる符号なし整数型である。 もともとの BSD での実装や、バージョン 2.1 より前の glibc では、 ualarm() の引き数の型は unsigned int であった。 プログラム中に明示的に useconds_t と書かない方が、移植性が高くなる。

この関数と alarm(2), sleep(3), nanosleep(2), setitimer(2), timer_create(3), timer_delete(3), timer_getoverrun(3), timer_gettime(3), timer_settime(3), usleep(3) のような他のタイマー関数との相互作用は規定されていない。

この関数は廃れたものである。 代わりに setitimer(2) もしくは POSIX インターバルタイマ (timer_create(3) など) を使うこと。

関連項目

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