Я пытаюсь использовать execvp, и он работал нормально, но теперь я нашел способ объявить аргументы, и теперь я получаю «неверный адрес» как ошибку.Я выдал много таких же проблем, и проблема заключалась в том, что NULL был последним аргументом.
Я пробовал множество способов добавить NUll в конец, но он не работает.
char *args4exec[5];
switch(argsi)
{
case 1:
printf("case 1 arg\n" );
strcpy(&args4exec[0],command);
strcpy(&args4exec[1],args[i-1]);
args4exec[2] = NULL;
break;
case 2:
printf("case 2 args\n" );
strcpy(&args4exec[0],command);
strcpy(&args4exec[1],args[i-2]);strcpy(&args4exec[2],args[i-1]);
strcpy(&args4exec[3], NULL);
break;
}
}
if (execvp( args4exec[0], args4exec) == -1 )
perror("exec failed");
strcpy и нормальное определение не работает, кто-нибудь может мне помочь?Размещенный мною код не работает, но он должен показать способы, которыми я пытался добавить NULL.