RAND(3) | FreeBSD Library Functions Manual | RAND(3) |
名称
rand, srand, sranddev, rand_r — 良くない乱数ジェネレータライブラリ
Standard C Library (libc, -lc)書式
#include < stdlib.h> void
srand( unsigned seed);
void
sranddev( void);
int
rand( void);
int
rand_r( unsigned *ctx);
解説
このマニュアルページに記述されている関数は、暗号的に安全ではありません。暗号アプリケーションは、代わりに
arc4random(3) を使用するべきです。
これらのインタフェースは、旧式となり random(3) に置き換えられました。
rand() 関数は、0 から (ヘッダファイル < stdlib.h> によって定義された) RAND_MAX の範囲で偽似乱数の整数の数列を計算します。
srand() 関数は、 rand() によって返される疑似乱数の新しい数列のためのシード (種) として、引数 seed を設定します。これらの数列は、同じシード (種) の値で srand() を呼び出すことにより繰り返し可能です。
seed (種) 値を指定しないと、関数は、自動的に値 1 をシード (種) とします。
sranddev() 関数は、カーネルから取得される疑似ランダム数を使用してシード (種) を初期化します。
rand_r() 関数は、 rand() と同じ機能を提供します。コンテキスト値 ctx へのポインタは、呼び出し側によって提供されなければなりません。
より良い品質を生成するためには、 random(3) または lrand48(3) を使用します。
規格
rand() と srand() 関数は、 ISO/IEC 9899:1990 (“ISO C90”) に適合しています。rand_r() 関数は、POSIX.4a Draft #6 の文書で提案されています。
April 2, 2013 | FreeBSD |