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