execvp

    0熱度

    2回答

    我有以下代碼: int main(void) { char in[100]; printf("> "); fgets(in, sizeof(in), stdin); int pid; char *f[100]; char *v; int i = 1; v = strtok(in, " "); f[0] = v

    0熱度

    1回答

    我正在編寫一個類似C的小控制檯程序,以及ls,tac和dir的實現。 我使用execvp()函數來覆蓋進程的分叉子進程,但是當用戶插入上述3個命令之一時,我必須執行自己的版本,而不是系統中的版本。 我知道execvp()使用系統PATH變量來搜索可執行文件的不同位置。我可以以某種方式編輯我的程序中的PATH,因此我可以添加一個自定義目錄作爲execvp()搜索的第一個位置? 謝謝!

    2熱度

    1回答

    我正在實現家庭作業終端。 我差不多完成了,我只需要實現一個bg(Background)和一個fg(Foreground)命令。 我的代碼看起來是這樣的: void run(){ string command[] = parseMyInput(getInput()); int fork_result = fork(); if(-1 == fork_result)

    1熱度

    1回答

    我有以下代碼。 我的問題是在代碼 int main() { .... if ((uproc.pid = fork()) == -1) { return -1; } if (uproc.pid == 0) { /* child */ const char *argv[3]; int i

    -1熱度

    1回答

    所以我必須實現對執行外部命令(對於C語言中的linux)的支持。 這是我迄今爲止,我用歷史功能的readline庫,但這是無關的......有人可以告訴我我做錯了什麼? (我認爲這是我稱之爲「execvp」的方式) 因此,這裏是我的代碼: #include<fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <stdi

    1熱度

    1回答

    基本上,我想給exec一個名爲「工人」與6個參數是整數程序... char* args[7] = {(char*)"worker",workerID,i+1,msgID,shmID,semaphoreID,NULL}; if(execvp("worker",args)<0){ cerr << "execvp failed" << endl; exit(1); } 如何正

    0熱度

    1回答

    我想用execvp調用Java執行功能,如下面的代碼: #include <iostream> #include <stdlib.h> using namespace std; int main() { char* const argv[]= { "-mx300m","-cp","\'stanford-postagger.jar:/root/NLP/pos

    5熱度

    3回答

    現在我正在編寫一個必須執行子進程的C程序。我不是在同時進行多個子進程或任何事情,所以這相當簡單。我確實成功地執行了內置的shell程序(即cat和echo之類的東西),但是我也需要能夠判斷這些程序中的一個何時無法成功執行。我用下面的簡化的代碼嘗試這樣的: int returnStatus; // The return status of the child process. pid_t pid

    4熱度

    1回答

    我試圖確定執行是否通過檢查waitpid函數的結果失敗()。但是,即使當我跑,我知道失敗並寫入這個問題到stderr命令,檢查以下從未登記。這段代碼可能有什麼錯誤? 感謝您的任何幫助。 pid_t pid; // the child process that the execution runs inside of. int ret; // exit status of child proce

    0熱度

    2回答

    我寫了一段簡單的代碼,用於使用unzip提取zip文件。它工作正常,如果沒有設置輸出目錄,但返回錯誤的目錄設置 「歸檔:/home/vishvesh.kumar/tempFolder/test.zip checkdir:不能 創建解壓縮目錄:/家庭/ vishvesh。庫馬爾/ tempFolder 沒有這樣的文件或目錄」 代碼: int main(int argc, char *argv1[])