日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
GETITIMER(2) FreeBSD システムコールマニュアル GETITIMER(2)
名称
getitimer, setitimer -- インターバルタイマの値を取得/設定する
ライブラリ
標準 C ライブラリ (libc, -lc)
書式
#include <sys/time.h>
#define ITIMER_REAL 0
#define ITIMER_VIRTUAL 1
#define ITIMER_PROF 2
int
getitimer(int which, struct itimerval *value);
int
setitimer(int which, const struct itimerval *value,
struct itimerval *ovalue);
解説
システムは、各プロセスに <sys/time.h> で定義される 3 つのインターバルタイ
マを提供しています。getitimer() システムコールは、which で指定されたタイ
マのための現在の値を構造体の value に返します。setitimer() システムコール
は、(ovalue が NULL ポインタでないなら、タイマの以前の値を返して) 指定さ
れる value にタイマを設定します。
タイマ値は、itimerval 構造体によって定義されます:
struct itimerval {
struct timeval it_interval; /* タイマインターバル */
struct timeval it_value; /* 現在の値 */
};
it_value が 0 でないなら、それは、次のタイマの期限切れの時間を示します。
it_interval が 0 でないなら、それは、タイマが期限切れになるとき、it_value
のリロードで使用される値を指定します。it_value を 0 に設定することは、
it_interval の値にかかわらず、タイマを無効にします。it_interval を 0 に設
定することによって、タイマは、(it_value が、0 でないことを想定して) その
次の期限切れの後に無効にされます。
システムクロックの解像度より小さい時間値は、この解像度に丸められます (一
般的に、10 ミリ秒)。
ITIMER_REAL タイマは、リアルタイムで減少します。SIGALRM シグナルは、この
タイマが期限切れになるとき、配信されます。
ITIMER_VIRTUAL タイマは、プロセスの仮想時間で減少します。それは、プロセス
が実行しているときだけ、実行します。SIGVTALRM シグナルは、それが期限切れ
になるとき、配信されます。
ITIMER_PROF タイマは、プロセスの仮想時間とシステムがプロセスの代わりに実
行しているとき、の両方で減少します。それは、解釈されるプログラムの実行の
統計的なプロファイリングでインタプリタによって使用されるように設計されて
います。ITIMER_PROF タイマが期限切れになるたびに、SIGPROF シグナルは、配
信されます。このシグナルは、進行中のシステムコールを割り込むので、このタ
イマを使用するプログラムは、割り込まれたシステムコールを再開するために準
備されなければなりません。
setitimer() の it_interval と it_value のために許可される秒の最大数は、
100000000 です。
注
時間の値を操作するための 3 つのマクロは、<sys/time.h> に定義されていま
す。timerclear() マクロは、時間の値を 0 に設定し、timerisset() は、時間の
値が 0 でなく、timercmp() が 2 つの時間の値を比較するか、テストします。
戻り値
成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、
グローバル変数 errno にエラーを示す値が設定されます。
エラー
getitimer() と setitimer() システムコールは、次の場合に失敗します:
[EFAULT] value 引数が、悪いアドレスが指定しました。
[EINVAL] value 引数が、処理するためには大きすぎる時間を指定しま
した。
関連項目
gettimeofday(2), select(2), sigaction(2), clocks(7)
規格
getitimer() と setitimer() 関数は、IEEE Std 1003.1-2001 (``POSIX.1'') に
適合しています。しかしながら、後の IEEE Std 1003.1-2008 (``POSIX.1'') リ
ビジョンは、時代遅れとして両方の関数をマークされ、かわりに、
timer_gettime(2) と timer_settime(2) の使用を推奨します。
歴史
getitimer() システムコールは、4.2BSD で登場しました。
FreeBSD 13.2 May 1, 2020 FreeBSD 13.2