execvp不';不能使用其他代码

execvp不';不能使用其他代码,execvp,Execvp,我试图制作一个程序,在这个程序中,用户不断地被提示输入命令(例如ls-l),我将输入标记化为命令,并将它们存储在char*数组中。当我调用execvp执行命令时: char*paramList[2]={/bin/ls',“-l”} execvp(paramList[0],paramList) 什么也没发生。我有另一个程序,除了execvp调用和ls-l命令硬编码外,没有任何其他内容,这是可行的。然而,只要一个外接程序出现任何问题,即使是一个未使用的变量,代码也会停止工作。您的数组(paramLi

我试图制作一个程序,在这个程序中,用户不断地被提示输入命令(例如ls-l),我将输入标记化为命令,并将它们存储在char*数组中。当我调用execvp执行命令时:

char*paramList[2]={/bin/ls',“-l”}

execvp(paramList[0],paramList)

什么也没发生。我有另一个程序,除了execvp调用和ls-l命令硬编码外,没有任何其他内容,这是可行的。然而,只要一个外接程序出现任何问题,即使是一个未使用的变量,代码也会停止工作。

您的数组(paramList)只差一个条目

作为execvp的第二个参数给出的数组必须以NULL条目结尾,因此数组中有3个值,而当前有两个值

char* paramList[3] = { "/bin/ls", "-l", NULL };
execvp(paramList[0], paramlist);
应该像预期的那样工作

可能更好/更容易使用:

char* paramList[] = { "/bin/ls", "-l", NULL };
让编译器计算它们