次のコードを実行し、引数を "ls - l" として指定すると、アボート トラップ :6 が発生し、プログラムが終了します。しかし、入力として ls を指定すると、プログラムは正常に動作します。
ここで :act_arg には文字列 "ls" "-l" が含まれます
void function_run()
{
char bar[100] = "/bin/";
char f_arg[100];
int baz;
int qux = 1;
strncat(bar,act_arg[0],sizeof(act_arg[0]));
while(act_arg[qux] != NULL)
{
strncat(f_arg,act_arg[qux] ,sizeof(act_arg[qux]));
}
//execute
if(fork() == 0)
{
baz = execlp(bar,act_arg[0],act_arg[1],NULL);
if(baz == -1)
{
eng_run(); //to run execlp from normal lang run
//wait(NULL);
}
else
{
//wait(NULL);
exit(0);
}
}
fflush(stdout);
}