I strace
'd uno script semplice che usa perl e bash.perché perl, ruby usa/dev/urandom
$ strace perl -e 'echo "test";' 2>&1 | grep 'random'
open("/dev/urandom", O_RDONLY) = 3
$ strace bash 'echo "test"' 2>&1 | grep 'random'
$
Perché perl bisogno del pseudorandom number generator per uno script così banale? Mi aspetterei di aprire /dev/urandom
solo dopo il primo utilizzo di dati casuali.
Edit: python Ho anche provato e rubino
$ strace python -c 'print "test"' 2>&1 | grep random
$
$ strace ruby -e 'print "test\n"' 2>&1 | grep random
open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_CLOEXEC) = 3
Perché Perl e Ruby aprirlo con modalità diverse?
Forse per seminare il proprio PRNG? –
generare numeri casuali non è una cosa semplice./dev/random dà accesso ai dati "casuali" dalla macchina, quindi perl lo usa. In quale altro modo otterrete input casuali? Qual è il tuo problema con il modo in cui è fatto? Hai bisogno di numeri pseudo-casuali "migliori"? – bytepusher
Ho provato lo stesso sul mio sistema. Legge solo 4 byte da/dev/urandom' e poi lo chiude. –