2009/08/12

[memo] thread safe and portable random function?

スレッドセーフで移植性が高いrandom関数って書けないかしらん。と少し悩んで以下のように書いた。


型の問題を差し引いたとしても、残念なことに上記は移植性がない。関数 [d|s]rand48_r が GNU による拡張だからである。うまい方法を御存知の方がいらっしゃったら教えてくださいませ(´ー`; )

[ Update August 13th 0:03 JST by m ]

pascal君から指摘があったので全面的に書き直しました。古いバージョンは一度だけ呼ぶべき srand48_r関数 を毎回呼んでいました。指摘さんくすです。

2 件のコメント:

  1. どもども。

    全然質問と関係ないんだけど、
    srand48_r(time.tv_nsec, &data);
    は、乱数生成毎ではなくて、初期化時に1回だけ呼ぶべきだと思うです。

    返信削除
  2. 尤もな指摘ですね(´ー`; )
    書き直しました。さんくすです。

    返信削除