日本語 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
TIMER_SETTIME(2) FreeBSD システムコールマニュアル TIMER_SETTIME(2) 名称 timer_getoverrun, timer_gettime, timer_settime -- プロセス毎のタイマ (リ アルタイム) ライブラリ POSIX リアルタイムライブラリ (librt, -lrt) 書式 #include <time.h> int timer_getoverrun(timer_t timerid); int timer_gettime(timer_t timerid, struct itimerspec *value); int timer_settime(timer_t timerid, int flags, const struct itimerspec *restrict value, struct itimerspec *restrict ovalue); 解説 timer_gettime() システムコールは、指定されたタイマ timerid の期限が切れる まで、時間の合計を格納し、value 引数によって指された空間にタイマの値をリ ロードします。この構造体の it_value メンバは、タイマの期限が切れる前の時 間の合計を含むか、タイマが武装を解除されるなら、0 を含みます。この値は、 たとえタイマが絶対的な時間で武装していたとしても、タイマの期限が切れるま で、インターバルとして返されます。訳注: arm 武装する、disarm 武装を解除す る、の適切な訳が思い付きません。value の it_interval メンバは、最後に timer_settime() によって設定された値の再ロードを含みます。 timer_settime() システムコールは、value 引数の it_value メンバから timerid によって指定されたタイマの次の期限切れまで、時間を設定し、value の it_value メンバが 0 でないなら、タイマを武装します。timer_settime() が 呼び出されるとき、指定されたタイマが既に武装されているなら、この呼び出し は、指定された値への次の期限切れまで、時間をリセットします。value の it_value メンバが 0 であるなら、タイマは武装を解除します。タイマが武装を 解除されるなら、保留中 (pending) のシグナルは、削除されます。 フラグ TIMER_ABSTIME が引数 flags に設定されていないなら、まるで次の期限 切れまで、value の it_value メンバによって指定されたインターバルと等しく 設定されるかのように、振る舞います。すなわち、タイマは呼び出しが行われる ときからの it_value ナノ秒に期限が切れます。フラグ TIMER_ABSTIME が引数 flags に設定されているなら、まるで次の期限が切れるまで、時間が value の it_value メンバによって指定された絶対的な時間と timerid に関連しているク ロックの現在の値の違いと等しく設定されるように、振る舞います。すなわち、 クロックが value の it_value メンバによって指定された値に到達するとき、タ イマは期限が切れます。指定された時間が既に経過しているなら、システムコー ルは成功し、期限切れの通知が行われます。 タイマの再ロード値は、value の it_interval メンバによって指定された値に設 定されます。タイマが 0 以外の it_interval で武装されるとき、周期的な (ま たは、反復的な) タイマが指定されます。 指定されたタイマの精度 (resolution) の 2 つの連続した非負の整数の倍数の間 にある時間の値は、精度のより大きい倍数まで四捨五入されます。量子化の誤差 によって、タイマは、丸められた時間の値より早く期限が切れません。 引数 ovalue が NULL でないなら、timer_settime() システムコールは、タイマ が期限が切れる前に、以前の時間を合計を表す値を ovalue によって参照される 位置に格納するか、またはタイマが武装を解除されたなら、前のタイマと共に、 値を再ロードし、0 を格納します。タイマは、それらのスケジュールされた時間 の前に期限が切れません。 単一のシグナルのみが、いずれかの時点で、与えられたタイマのプロセスで キューに入れられます。シグナルがまだ保留中であるタイマが期限が切れると き、シグナルは、キューに入れられず、タイマのオーバランが起こります。プロ セスによってタイマの期限切れのシグナルが受け付けられるとき、 timer_getoverrun() システムコールは、指定されたタイマのためのタイマの期限 切れオーバランのカウントを返します。生成された (キューに入れられた) シグ ナルとそれが受け付けられた時間の間に生じる、特別のタイマ期限切れの数を含 んでいる返されたオーバランカウントは、最大 {DELAYTIMER_MAX} までです。そ のような特別の期限切れの数が {DELAYTIMER_MAX} 以上であるなら、オーバラン カウントは、{DELAYTIMER_MAX} に設定されます。timer_getoverrun() によって 返された値は、タイマのための最新の期限切れのシグナル受け付けに適用されま す。タイマのための期限切れのシグナルが配信されていないなら、 timer_getoverrun() の返り値は不特定です。 戻り値 timer_getoverrun() システムコールが成功するなら、上記で説明されるようにタ イマの期限切れオーバランカウントを返します。そうでなければ、値 -1 が返さ れ、グローバル変数 errno にエラーを示す値が設定されます。 関数 timer_gettime() および timer_settime() は、処理が成功すると値 0 を返 します。そうでない場合、値 -1 が返され、グローバル変数 errno にエラーを示 す値が設定されます。 エラー timer_settime() システムコールは、次の場合に失敗します: [EINVAL] 0 未満または 10 億以上のナノ秒の値で指定された value 構造体と、その構造体の it_value メンバは、0 秒とナノ秒 を指定しませんでした。 これらのシステムコールは、次の場合に失敗します: [EINVAL] timerid 引数は、timer_create() によって返された ID に 対応していませんが、timer_delete() によってまだ削除さ れていません。 timer_settime() システムコールは、次の場合に失敗します: [EINVAL] value の it_interval メンバは、0 ではなく、タイマは、 新しいスレッド (sigev_sigev_notify が SIGEV_THREAD) の 作成によって通知をつけて作成され、そして、固定のスタッ クアドレスは、sigev_notify_attributes によって指された スレッドの属性で設定されました。 timer_gettime() と timer_settime() システムコールは、次の場合に失敗しま す: [EFAULT] 任意の引数が、割り付けられたアドレス空間の外を指してい るか、またはメモリプロテクションフォルトがあります。 関連項目 clock_getres(2), timer_create(2), siginfo(3) 規格 timer_getoverrun(), timer_gettime() と timer_settime() システムコールは、 IEEE Std 1003.1-2004 (``POSIX.1'') に適合しています。 歴史 POSIX のプロセス毎のタイマのサポートは、FreeBSD 7.0 ではじめて登場しまし た。 FreeBSD 11.4 September 11, 2000 FreeBSD 11.4