Я пытаюсь перебрать некоторые входные данные (которые являются командами и аргументами), разделить входные данные на отдельные строки, а затем передать эти входные данные в execvp()
.
У меня проблема, поскольку execvp()
хочет (char*, char*[])
в качестве аргументов. Я вхожу в (char*, char[][])
, что я думал, было то же самое, но это не нравится.
Я бы использовал char*[]
, но я не знаю, насколько велики строки до его запуска, поэтому я и не использовал его. Очевидно, что если я использую char*[]
, я получаю ошибку сегмента, когда пытаюсь получить доступ к элементам char*
.
Вот фрагмент кода
//input
char *line = "echo hello there what is";
int count = 0;
//store arguments
char args[6][10];
int argCount = 0;
//store temp string from input
char temp[100];
int tempCount = 0;
//word(string) size
int wordSize = 0;
/*
Here I iterate over the input, storing each string I find in args
all the above variables help me do that.
*/
execvp(args[0], args);
printf("Error: It didnt work\n");
Надеюсь, это ясный и правильный вопрос, дайте мне знать, если вы хотите, чтобы я добавил код моего превращения ввода в args
.