Namazu-devel-ja(旧)


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

Re: DocCat PDF support and filter/pdf.pl



<878zl6xz70.wl@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>の記事において
fumiya@xxxxxxxxxxxさんは書きました。

>> >   そういえば以前 util::systemcmd というのを用意したので、system は全て
>> > 置き換えようとうと思っていたの忘れてました... escape はそこで一通りす
>> > ませば良いかなと。
>> >   今の systemcmd は Win32 環境での s!/!\\!g のみしか実装していません。
>> 
>> DOS / Windows 系のコマンドのオプション指定は「/なんちゃら」なので、
>> それは危険でしょう。

  むむ、確かにそうですね。

>> やはりシェルのメタキャラクタが含んでいると /bin/sh を呼びます。
>> Perl 5.6.0 で ", >, <, & で試しました。マニュアルにも書いてない(?)し、
>> ソースも読んでいないので、どんな場合にシェルが介されるかは不明…。
>> m(_ _)m

  <news:20010322012259inaba@xxxxxxxxxxxx> にて解説がありました。引用す
ると、

: ・Perl5.00503までは特別扱いはしていません。
: ・5.6.1-TRIAL3や5.7.0DEVEL9217は5.6.0と同じです。
: ・do_exec3はopenだけでなく、execやsystemや``(qx//)でも使うの
:  でこれらでも2>&1はPerlが見て、それ以外にshを使う必要がなければ
:  /bin/shを使わずにexecします。
: ・残念ながらdo_exec3はUNIX系でのみ使われるようで、例えばActivePerl
:  build620では2>&1は解釈されないようです。

  「特別扱いしない」 == 「shell を呼んでそちらにまかせる」、ということ
のようです。

  やっぱり shell を呼ばない関数は用意した方がよさそうですかねぇ。
-- 
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx