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

名称
ライブラリ
書式
解説
戻り値
エラー
関連項目
歴史

jman



Time: 07:06:26 GMT, January 12, 2009