timer_create サブルーチン
目的
プロセスごとのタイマーを作成します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
#include <time.h>
int timer_create (clock_id, evp, timerid)
clockid_t clock_id;
struct sigevent *evp;
timer_t *timerid;説明
タイマー作成 サブルーチンは、指定されたクロック クロック IDをタイミング・ベースとして使用して、プロセスごとのタイマーを作成します。 タイマー作成 サブルーチンは、タイマー要求でタイマーを識別するために使用されるタイプ タイマー T のタイマー ID を、 Timeridによって参照されるロケーションに戻します。 このタイマー ID は、タイマーが削除されるまで呼び出しプロセス内で固有です。 特定のクロック clock_idは、 time.h ファイルに定義されます。 ID が戻されるタイマーは、 タイマー作成 サブルーチンからの戻り時に非武装状態になります。
エップ パラメーターは、非 NULL の場合、 署名イベント 構造体を指します。 この構造は、アプリケーションによって割り振られ、タイマーの有効期限が切れたときに発生する非同期通知を定義します。 エップ パラメーターが NULL の場合、 エップ パラメーターは、 署名通知 メンバーの値が SIGEV_SIGNAL (信号)、 sigev_signo メンバーの値が シギアーム のデフォルト・シグナル番号、および 署名値 メンバーの値がタイマー ID である 署名イベント 構造体を指しているかのようになります。
このシステムは、プロセスごとのタイマーのタイミング・ベースとして使用できるクロックのセットを定義します。 クロック ID パラメーターでサポートされる値は、以下のとおりです。
| 項目 | 説明 |
|---|---|
| CLOCK_REALTIME | システム全体のリアルタイム・クロック。 |
| CLOCK_MONOTONIC | システム全体の単調クロック。 このクロックの値は、過去の未指定ポイントからの経過時間を表します。 これは、 クロック・セット時間 サブルーチンを介して設定することはできません。また、逆方向のクロック・ジャンプを持つこともできません。 |
| クロック・プロセスの CPU 時間 ID | 呼び出しプロセスのプロセス CPU 時間のクロック。 このクロックの値は、そのクロックに関連したプロセスの実行時間を表します。 |
| クロック・スレッド・タイム ID | 呼び出し側スレッドのスレッド CPU 時間のクロック。 このクロックの値は、このクロックに関連付けられたスレッドの実行時間を表します。 |
クロック ID パラメーターに定義された値が以下に対応する場合、 タイマー作成 サブルーチンは失敗します。
- 関数を呼び出すプロセスとは異なるプロセスの CPU 時間のクロック
- 関数を呼び出すスレッドとは異なるスレッドのスレッド CPU 時間のクロック。
パラメーター
| 項目 | 説明 |
|---|---|
| クロック ID | 使用するクロックを指定します。 |
| evp | 非同期通知を定義する 署名イベント 構造体を指します。 |
| Timerid | タイマー ID が返される場所を指します。 |
戻り値
タイマー作成 サブルーチンが成功すると、0 が戻され、 Timerid パラメーターによって参照されるロケーションが タイマー Tに更新されます。これは、プロセスごとのタイマー呼び出しに渡すことができます。 エラーが発生した場合は-1が返され、エラーを示すerrnoが設定される。
エラー・コード
タイマー作成 サブルーチンは、以下の場合に失敗します。
| 項目 | 説明 |
|---|---|
| EAGAIN | システムには、要求を受け入れるための十分なシグナル・キューイング・リソースがありません。 |
| EAGAIN | 呼び出しプロセスは、許可されているすべてのタイマーを既に作成しています。 |
| EINVAL | 指定されたクロック ID が定義されていません。 |
| ENOTSUP | 実装では、 クロック ID パラメーターで指定され、 タイマー作成を呼び出すプロセスまたはスレッドとは異なるプロセスまたはスレッドに関連付けられた CPU 時間クロックに付加されるタイマーの作成はサポートされません。 |
| ENOTSUP | この機能は、チェックポイント・リスタート・プロセスではサポートされません。 |