Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Do NOT use system()



 From: Hajime BABA <baba@xxxxxxxxxxxxxxxx>
 Subject: [namazu-devel-ja] Re: Do NOT use system()
 Date: Wed, 31 Jul 2002 19:31:52 +0900 (JST)

 > 一方で外部コマンドの標準出力や標準エラー出力を利用する場合は、今は
 >   system("$wordconvpath -o e $tmpfile2 > $tmpfile");
 > のようにシェル起動の上で一時ファイルにリダイレクトして使ってますが、
 > シェル起動は危険であるからいっさい禁止とするなら、別の workaround 
 > を考えないといけませんよね。

補足。もっとも単純には、
    system("$wordconvpath -o e $tmpfile2 > $tmpfile");
を、
    open(SAVEOUT, ">&STDOUT");
    open(STDOUT, ">$tmpfile");
    system($wordconvpath, "-o", "e", $tmpfile2);
    open(STDOUT, ">&SAVEOUT");
と変更するというworkaroundがありましたね。
# IO::File を使うと、どうなるのかわかんなかった...
--
馬場  肇 ( Hajime BABA )                  E-mail: baba@xxxxxxxxxxxxxxxx
宇宙科学研究所 宇宙科学企画情報解析センター
--