[英]execvp ls: cannot access ' ': No such file or directory
當我嘗試使用 execvp 執行不帶參數的 ls 之類的命令時,出現錯誤:ls:無法訪問 '':沒有這樣的文件或目錄。
我不知道為什么,因為他似乎在搜索參數 ''。
代碼是這樣工作的:
int main(int argc, char *argv[])
{
char command[250] = "ls";
argvs[0] = command;
argvs[1] = NULL;
if (execvp( argvs[0], argvs) == -1 )
perror("exec failed");
return 0;
}
我必須在 execvp 中至少給出一個參數嗎? 並將其設置為 NULL 或其他一些 nullterminations?
如果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()
提供恰好兩個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.