簡體   English   中英

execvp ls: 無法訪問“ ”: 沒有這樣的文件或目錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM