I strace
'd простой script с использованием perl и bash.
$ strace perl -e 'echo "test";' 2>&1 | grep 'random'
open("/dev/urandom", O_RDONLY) = 3
$ strace bash 'echo "test"' 2>&1 | grep 'random'
$
Почему perl нужен генератор псевдослучайных чисел для такого тривиального script? Я ожидал бы открытия /dev/urandom
только после первого использования случайных данных.
Изменить: я также тестировал python и ruby
$ 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
Почему perl и ruby открывают его в разных режимах?