Мне нужно запустить команду, используя spawnvp () , чтобы я мог перенаправить вывод. Моя проблема в том, что у меня нет argv, а просто строка со всем commnd, поэтому мне нужно разделить ее. К сожалению, я получил исключение, когда передал свой сгенерированный argv в функцию.
Работает так:
char* argv[2];
argv[0] = "kzip";
argv[1] = NULL;
Вот как я это делаю, что не получается:
char** argv2 = (char**)malloc(sizeof(char*) * 2);
argv2[0] = "kzip";
argv2[1] = NULL;
Вот как я называю spawnvp () :
hProcess = (HANDLE)spawnvp(P_NOWAIT, argv2[0], (const char* const*)&argv2);
Я знаю, что есть некоторая разница между char [] и char *, но я не могу понять, как создать динамически созданный char * [] вместо char **.