假设输入是一个指向数组的指针,它在每个元素处存储,“ls -l”在位置 0,然后 cat helloworld.txt 在位置 1,依此类推,我希望创建主要参数,即 ls、cat、 pwd,然后执行。本质上,我正在做的是我有一个包含所有这些命令的文件,我首先将它们存储在我的输入变量中,该变量被声明为 char *input[10]。现在我在那个数组中有我需要的东西,我可以提取单个的主要命令,比如 ls、cat,我希望执行所有这些命令。
例如,
如果位置 0 有 ls -l,我的第一个变量有 ls,我希望将它传递给 execvp,然后位置 1 可能有 cat sample.txt,现在我的变量首先是 cat,我将它与整个传递给 execvp cat sample.txt(输入[i]),执行vp。由于某种奇怪的原因,这不起作用。如何在 execvp 中循环运行所有这些命令,以便一旦完成,所有这些命令都已成功运行。这是我的尝试,在第一个循环结束时,我运行了一个 execvp,我希望它完成,然后我提取进一步的输入等,等等。
帮帮我。
for(i=0; i<lineCount; i++)
{
first = malloc(sizeof(char)*50);
for(j=0; j<strlen(input[i]); j++)
{
if(input[i][j]!=' ')
{
first[j]=input[i][j];
}
else
{
break;
}
}
execvp(first, input[i]);
}
我尝试执行 execp(first, input) 但这也不起作用。