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 件のコメント:

Unknown さんのコメント...

どもども。

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

mumumu さんのコメント...

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