RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
RedHawk Linux User's Guide version 6.3 æ¥æ¬èªç
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
プログラム 可 能 なクロックおよびタイマー同 じスレッド・グループ 内 の<strong>Linux</strong>スレッドはタイマーを 共 有 することが 可 能 です。timer_createを 呼 び 出 したスレッドはシグナル 全 てを 受 信 しますが、 同 じスレッド・グループ 内 の 他 のスレッドはtimer_settime(2)の 呼 び 出 しを 通 してタイマーを 操 作 することが 可 能 です。概 要#include #include int timer_create(clockid_t which_clock, struct sigevent *timer_event_spec,timer_t created_timer_id);引 数 は 以 下 のように 定 義 されます:which_clocktimer_event_specタイマーに 使 用 されるクロックの 識 別 子 。which_clock の 値 はCLOCK_REALTIMEである 必 要 があります。NULLポインタ 定 数 または 呼 び 出 し 元 プロセスにタイマー 満 了 を 非 同期 で 通 知 する 方 法 を 指 定 する 構 造造 体 へのポインタ:NULLタイマー 満 了 時 にSIGALRMがプロセスへ 送 信 されますsigev_notify=SIGEV_SIGNALsigev_signo に 指 定 されたシグナルはタイマー 満 了 時 にプロセスへ 送 信 されます。sigev_notify=SIGEV_THREAD指 定 したsigev_notify 機 能 はタイマー 満 了 時 にsigev_valueを 引 数 として 新 しいスレッドの 中 から 呼 ばれます。 現 在 、-lccur_rtではサポートされていないため、-lrtを 最 初 にリンクして 使 用 します。sigev_notify=SIGEV_THREAD_IDsigev_notify_thread_id の 番 号 にはタイマー 満 了 時 にsigev_signoシグナルを 受 信 するスレッドのID(pthread_t)を 収 納 する 必 要 があります。sigev_notify=SIGEV_NONEタイマー 満 了 時 に 通 知 は 配郤 信 されません。NOTEタイマー 満 了 を 意 味 するシグナルは、シグナルを 処 理 するシステムコールを 指 定 しない 限 りプロセスを 終 了 させる 原 因 となる 可 能 性 があります。特 定 のシグナルへの 既 定 のアクションを 決 定 するためにsignal(2)のmanページを 参 照 してください。created_timer_idタイマーIDが 格 納 されている 場 所 へのポインタ。この 識 別 子 は他 のPOSIXタイマーのシステムコールで 必 要 とされ、システムコールでタイマーが 削 除 されるまで 呼 び 出 し 元 プロセスの 中 では 一 意 です。戻 り 値 0はtimer_createの 呼 び 出 しが 成 功 したことを 示 します。 戻 り 値 -1はエラーが 発 生 したことを 示 し、errnoはエラーを 示 すために 設 定 されます。 発 生 する 可 能 性 があるエラーの 種 類 のリストについてはtimer_create(2)のmanページを 参 照 してください。6-7