Я пытаюсь сделать что-то довольно просто: заполните char ** аргументами, которые я хочу использовать в вызове execvp в C.
Вот как я делаю:
if(argc >=1)
{
*nargv = "--action";
while(argc--)
{
printf("nargv1 => %s \t argv1 => %s \n", *nargv, *argv);
*++nargv = *argv++;
printf("nargv2 => %s \t argv2 => %s \n", *nargv, *argv);
}
printf("nargv3 => %s \t argv3 => %s \n", *nargv, *argv);
*nargv++ = '\0';
printf("nargv4 => %s \t argv4 => %s \n", *nargv, *argv);
}
Вывод дает мне:
nargv1 => --action argv1 => backup
nargv2 => backup argv2 => --help
nargv1 => backup argv1 => --help
nargv2 => --help argv2 => (null)
nargv3 => --help argv3 => (null)
nargv4 => (null) argv4 => (null)
Это звучит нормально (nargv заполнен правильно, по крайней мере, это то, что я думал)> Но когда я делаю execvp ("команда", nargv), мои аргументы не передаютсячерез.В чем дело ?Я пытался играть с GDB без успеха.
С уважением