我有使用File::Temp
一個奇怪的問題:的Perl文件::溫度,文件名不是隨機
我下的Linux上的Apache的mod_perl運行我的perl腳本,Apache的與工人MPM運行。
my ($fh_error, $error)
= tempfile("error_XXXXXXXXXXXXXXXX",DIR => "/home/tmp", UNLINK => 1);
my ($fh_src, $src)
= tempfile("src_XXXXXXXXXXXXXXXX",DIR => "/home/tmp", UNLINK => 1, SUFFIX => ".html");
my ($fh_dst, $dst)
= tempfile("dst_XXXXXXXXXXXXXXXX",DIR => "/home/tmp", UNLINK => 1, SUFFIX => ".html");
大多數情況下,一切似乎都沒問題,但是現在或者之後我都會收到一些錯誤的文件名。 而不是得到一個真正的隨機文件名,我得到所有模板長度相同的字母。
例如
error_AAAAAAAAAAAAAAAA
src_AAAAAAAAAAAAAAAA
dst_AAAAAAAAAAAAAAAA
所有3個文件得到相同的名稱。 除了這只是奇怪的(你永遠不希望你的代碼很奇怪),恐怕這可能會導致讀/寫不同的請求相同的文件。
一個猜測:也許你用盡了熵?你有沒有在系統上運行的munin(或類似的東西),並且你在「可用熵」圖中看到有可疑的東西嗎? –
該死的連想都沒有想到,現在有點低了100-200 –
是的,但即使是零熵,'/ dev/urandom'仍應該繼續給出好的僞隨機數。它們不會是密碼強大的(即使用N個連續的隨機數,理論上N + 1可能會更好,N足夠大)。 –