execvp

    -1熱度

    1回答

    我有一個字符串數組,其中包含execvp的輸入參數。我怎樣才能把它變成一個字符串指針數組execvp? 對於一個參數的命令,兩個字符串都存在: char param[4][10] = ["wc","file.txt"] 而且有兩個參數: char param[4][10] = ["cp","file1.txt","file2.txt"] 如果我知道提前參數的數目,我可以簡單的寫 char

    0熱度

    1回答

    我是新的與unix,我有一個在大學的assignemnt建立一個簡單的shell在c內置cd和殺死命令.. 這是我的代碼不工作..tbh我不明白這是最好的,所以我不驚訝它不工作..你能幫我嗎?也不知道我將如何執行kill命令。謝謝! #include <sys/wait.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h>

    1熱度

    1回答

    我瞭解管道要運行的命令,如ls -l | wc -l: int pipes[2]; pipe(pipes); if (fork() == 0){ //first fork dup2(pipes[1],1); close(pipes[0]); close(pipes[1]); execvp(arr1[0], arr1); //arr1[0] = "ls

    2熱度

    1回答

    我的迷你shell程序接受管道命令,例如ls -l | wc -l並使用excevp來執行這些命令。 我的問題是,如果沒有fork()execvp,管道命令工作正常,但shell後來終止。如果execvp有fork(),則會發生死循環。我無法修復它。 代碼: void run_pipe(char **args){ int ps[2]; pipe(ps); pid_t

    0熱度

    1回答

    時,execvp無法正常工作當字符串向量轉換爲char *向量char *的向量時,當參數以char **形式出現時正在工作,但是轉換似乎有問題,我無法找到差異。 有沒有更好的方法來做到這一點? vector<string> args; /* code that correctly parses args from user input */ pid_t kidpid =

    -1熱度

    2回答

    我有一個像基本的外殼。 我的問題是,當我做類似./test ls -l的東西時,它不使用-l參數。 這和我做./test ls完全一樣。 根據man,int execvp(const char * file,char * const argv []),所以不是用來讀取整個** argv的execvp? int mySystem(char* str[]){ wordexp_t p;

    1熱度

    2回答

    我想製作一個模仿Linux shell的程序。 ,它運行在兩種模式下 (1)交互模式(無參數) 等待子進程。一次執行一個命令。 (2)批模式(給定A文件) 不要等待。嘗試並行執行這些命令。 我的代碼很長,所以我決定製作一個示例程序來解決(關注)我面臨的問題。 #include <stdio.h> #include <unistd.h> #include <sys/types.h> #incl

    -2熱度

    2回答

    我想創建一個子進程運行linux命令的shell(在execvp的幫助下),比如「ls」等。我也希望能夠運行帶有諸如「ls -a「或」ls -l/tmp「父母必須等待孩子用」waitpid「執行給定的命令。 當我試圖用「ls -a」運行shell時,它將它作爲2個單獨的命令。輸出:LS $ -a $ #include "stdio.h" #include "unistd.h" #include

    0熱度

    1回答

    我嘗試使用execvp來執行命令ls -l。 我有代碼 execvp("ls",&argv[0]); 工作不錯,但我用 execvp("ls -l",&argv[0]); 不起作用

    -2熱度

    1回答

    我發現,啓動一個代碼的代碼困惑...... 「Pthreads標準指定來自任何線程的exec調用必須終止進程中的所有線程,並在新圖像的main中啓動一個新線程。 我確定需要多線程,所以在這種情況下,我該如何啓動一個外部可執行文件,檢查它是否正在運行並偶爾殺死它? 感謝