Giriş
Bu metod POSIX.1-2008 ile obsolete olmuştur ! Yeni kodlarda kullanmamak gerekir.
1. C'deki rand() metodunun tersine bu metod state verisini seed için verilen alanda saklar.
2. Normalde thread-safe değildir. Eğer her thread kendi seed bellek alanını sağlarsa bu metod thread-safe olarak kullanılabilir. Bu metod global state ile kullanılırsa thread-safe olmaz!
Örnek 1
rand() çağrısını kolayca myrand() ile değiştirmek istersek şöyle yaparız.
Şöyle yaparız.
Bu metod POSIX.1-2008 ile obsolete olmuştur ! Yeni kodlarda kullanmamak gerekir.
1. C'deki rand() metodunun tersine bu metod state verisini seed için verilen alanda saklar.
2. Normalde thread-safe değildir. Eğer her thread kendi seed bellek alanını sağlarsa bu metod thread-safe olarak kullanılabilir. Bu metod global state ile kullanılırsa thread-safe olmaz!
rand() çağrısını kolayca myrand() ile değiştirmek istersek şöyle yaparız.
int myrand()
{
static unsigned int myseed = ... some initialization of your choice ...;
return rand_r (&myseed);
}
Örnek 2Şöyle yaparız.
unsigned int seed = YOUR_INITIAL_SEED;
for (int x = 0; x < 100000; x++)
{
unsigned int r = rand_r(&seed);
...
}
Hiç yorum yok:
Yorum Gönder