GETITIMER
Section: System Calls (2)
索引
jman
BSD mandoc
索引
名称
getitimer
setitimer
- インターバルタイマの値を取得/設定
索引
ライブラリ
Lb libc
索引
書式
In sys/time.h
Fd #define ITIMER_REAL 0
Fd #define ITIMER_VIRTUAL 1
Fd #define ITIMER_PROF2
Ft int
Fn getitimer int which struct itimerval *value
Ft int
Fn setitimer int which const struct itimerval *value struct itimerval *ovalue
索引
解説
システムは、各プロセスに
In sys/time.h
で定義された 3 つのインターバルタイマを提供しています。
Fn getitimer
システムコールは
Fa which
で指定されたタイマの現在の値を
Fa value
構造体に返します。
Fn setitimer
システムコールはタイマを指定の
Fa value
に設定します
Fa ( ovalue
が nil でない場合、タイマの
以前の値が返されます)。
タイマの値は
Fa itimerval
構造体によって定義されます:
struct itimerval {
struct timeval it_interval; /* タイマインターバル */
struct timeval it_value; /* 現在の値 */
};
Fa it_value
が 0 でない場合、それは次にタイマが時間切れになるまでの時間を示します。
Fa it_interval
が 0 でない場合、それはタイマが時間切れになるときに
Fa it_value
を再設定するのに使用される値を指定します。
Fa it_value
を 0 に設定すると、タイマは
Fa it_interval
の値に関係なく無効になります。
Fa it_interval
を 0 に設定すると、次の時間切れの後でタイマは無効になります
Fa ( it_value
が 0 でないと想定します)。
システムクロックの精度 (通常は 10 ミリ秒です) より小さい時間の値は
この精度に切り上げられます。
ITIMER_REAL
タイマはリアルタイムで減少していきます。
このタイマが時間切れになると
SIGALRM
シグナルが配信されます。
ITIMER_VIRTUAL
タイマはプロセス仮想時間で減少します。
このタイマが減るのはプロセスが実行中のときだけです。
時間切れになるときに
SIGVTALRM
シグナルが配信されます。
ITIMER_PROF
タイマは、プロセス仮想時間内およびシステムがプロセスのために
処理を行っているときの両方で減少します。
これは、インタプリタがプログラムの実行を統計的にプロファイルするときに
使用するように設計されています。
ITIMER_PROF
タイマが時間切れになるたびに
SIGPROF
シグナルが配信されます。
このシグナルは進行中のシステムコールに割り込むかもしれないので、
このタイマを使用しているプログラムは割り込まれたシステムコールを
再実行する準備をしておかなければなりません。
Fn setitimer
で
Fa it_interval
と
Fa it_value
に許容される最大秒数は 100000000 です。
索引
注
時間の値を操作する 3 つのマクロは
In sys/time.h
で定義されています。
Fn timerclear
マクロは時間の値を 0 に設定し、
Fn timerisset
は時間値が 0 でないかどうか検査し、
Fn timercmp
は 2 つの時間の値を比較します。
索引
戻り値
Rv -std
索引
エラー
Fn getitimer
と
Fn setitimer
システムコールは次の場合に失敗します:
- Bq Er EFAULT
-
Fa value
引数が無効なアドレスを指定しました。
- Bq Er EINVAL
-
Fa value
引数が、大きすぎて処理できない時間を指定しました。
索引
関連項目
gettimeofday(2),
select(2),
sigvec(2),
clocks(7)
索引
歴史
Fn getitimer
システムコールは
BSD 4.2
で登場しました。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 注
-
- 戻り値
-
- エラー
-
- 関連項目
-
- 歴史
-
Time: 07:06:26 GMT, January 12, 2009