Namazu-users-ja(旧)


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

Re: make check(namazu-5) のエラー



In message <20020826233809.1cf602d6.sakuma@xxxxxxxxxx>
	on Mon, 26 Aug 2002 23:38:09 +0900,
	"Hiroaki,Sakuma" <sakuma@xxxxxxxxxx> wrote:
> > > test script側の対処としては、
> > > system()をshellがかいざいしない
> > > ように呼ぶことで解決できそうです。
> > シェル自体ではない、exec系システムコールで渡せる引数のサイズの問題でな
> > ければ、そうですね。
> 
> Perlのsystem関数は、リスト値を渡すとShellを介しません。execではnamazuが終了してしまいます。
えぇっと、そういう意味ではありません。system()は、

(1) fork()
(2) 親(のperl)はwaitで子が終了するのを待つ。
(3) 子はexec系システムコールで目的のプログラムをになる。

この(3)の段階で引き渡す、引数の制限が何によるかによるわけです。

o 目的のプログラムをシェルを介して実行する場合に間にはいる、シェルの制限
o 目的のプログラムを直接実行する場合の、カーネルそのものの制限

このいずれかに引っ掛かっているのは間違いないわけですが、それが前者であ
ればシェルを介さないように修正することで何とかなるわけです。後者である
なら引数を減らすようなコードの工夫をするしかないわけです。

-- 
神戸 隆博 / Takahiro Kambe