[Armadillo:02637] Re: times()のerrno

Shin-ya Koga email@hidden
2008年 1月 27日 (日) 10:11:39 JST


サムシングプレシャスの古賀です。

福長さん([Armadillo:02636]):
>こちらに問い合わせる前にもう少し調べるべきでした。(反省)
>最近ももめてたようです。
>http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg227808.html
> 
>times()を使ってタイマ処理を実装しようとしていたのですが、、、
>再考いたします。

もしかして、システム時刻の設定変更に影響を受けない、
単調増加する時刻の取得を行いたい、ということでしょうか?
もしそうであれば、clock_gettime() を使い、clk_id(クロッ
ク識別子) として CLOCK_MONOTONIC を指定するのが良いん
じゃないかと思います:
 http://www.linux.or.jp/JM/html/LDP_man-pages/man3/clock_gettime.3.html
 http://www.02.246.ne.jp/~torutk/javahow2/time.html

お望みの分解能が得られるかどうかは、clock_getres() で
確認できる筈です。

なお、Armadillo では、まだ使ったことがなかったので未確認
ですが、glibc のバージョンによっては、glibc 内で
CLOCK_REALTIME 以外のクロック識別子指定の場合に未サポート
としてしまいます。その場合でも、カーネル自体はサポートして
いますので、glibc の clock_gettime() を使わず、カーネルの
システムコールを直接呼び出すようにすれば、利用可能です。

以上、参考になりましたら幸いです。

--
古賀信哉 (株)サムシングプレシャス



armadillo メーリングリストの案内