Если argvs
объявлено как показано ниже
char *argvs[2]; /* array of pointer */
тогда приведенный ниже код должен работать на вашем компьютере
int main(int argc, char *argv[]) {
char command[250] = "ls";
char *argvs[2];
argvs[0] = command;
argvs[1] = NULL;
if (execvp( argvs[0], argvs) == -1 )
perror("exec failed");
return 0;
}
Должен ли я указать как минимум один аргумент в execvp?
со страницы руководства execvp
int execvp(const char *file, char *const argv[]); /*its having fixed no of argument */
это означает, что вы должны предоставить ровно два аргумента для execvp()
.