12.07.2015 Views

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!