Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all bug

名前

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

書式

       #include <unistd.h>

       useconds_t ualarm(useconds_t usecs, useconds_t interval);

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

       ualarm():
           glibc 2.12 以降:
               (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L)
                   || /* Glibc 2.19 以降: */ _DEFAULT_SOURCE
                   || /* Glibc 2.19 以前: */ _BSD_SOURCE
           glibc 2.12 より前:
                _BSD_SOURCE || _XOPEN_SOURCE >= 500

説明

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

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

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

返り値

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

エラー

       EINTR  シグナルによって中断された。 signal(7)  参照。

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

属性

       この節で使用されている用語の説明については、 attributes(7) を参照。

       ┌─────────────────┬───────────────┬─────────┐
       │インターフェース属性      │
       ├─────────────────┼───────────────┼─────────┤
       │ ualarm()        │ Thread safety │ MT-Safe │
       └─────────────────┴───────────────┴─────────┘

準拠

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

                                            2017-09-15                                  UALARM(3)