execvp

    1熱度

    1回答

    我試圖做一個shell,只要它不能執行命令它說「執行二進制錯誤:-nameOfBinary-」。但問題是,它總是給我「沒有這樣的文件或目錄」的消息。我的代碼 繼承人部分: void handle_SIGINT() { write(STDOUT_FILENO,line,strlen(line)); printf("\n"); struct sigaction handl

    0熱度

    1回答

    試圖瞭解爲什麼使用cat命令的這部分代碼是不是在C. char *in[5] ={"cat", "file1.txt", ">>", "file2.txt", 0}; execvp(in[0], in); 與execvp工作當我運行它顯示FILE1.TXT的內容,但接着說: cat:>>沒有這樣的文件或目錄。 然後顯示file2.txt的內容 爲什麼在這種情況下它不能識別>>操作符?

    1熱度

    1回答

    我試圖在我正在創建的bash shell中實現||,&&和;運算符。我試圖做的是使用int作爲標誌,如果成功則設置爲1,否則設置爲0。我的問題是,即使我進入一個無效的操作,比如ls -apples它設置標誌爲1。我也得到了錯誤信息 LS:無效選項 - 「E」 嘗試「LS --help」欲瞭解更多信息 所以我認爲這意味着它在技術上是執行? 如何跟蹤execvp是否進行了無效操作? 這裏是我的代碼:

    1熱度

    1回答

    我想做一個小殼。我的問題是,當我撥打execvp()時 - 我收到錯誤。 例如,當我輸入ls -l時,它返回ls: invalid option -- ' 有人能幫我理解爲什麼我得到這個錯誤嗎?對於我的代碼,函數命令split獲取用戶輸入,並將它們分解爲單獨的命令。單獨的命令由;字符分隔。 #include <stdio.h> #include <stdlib.h> #include <str

    -1熱度

    2回答

    我試圖使用fork與execvp同時運行兩個shell命令。我有兩個問題,當我輸入mkdir folder1&mkdir folder2時,它會創建一個名爲folder1的文件夾和另一個名爲folder2?(該問號包含在文件夾名稱中)的文件夾。另一個問題是執行這兩個命令後代碼退出。 下面是代碼: #include <stdio.h> #include <stdlib.h> #include <

    1熱度

    1回答

    假設我有一個子進程,其調度策略使用C庫的函數sched_setscheduler設置爲SCHED_BATCH,現在這個子進程使用這個子進程創建一個外部進程execvp系統調用。 創建的新進程的調度程序是否與前一個子進程的調度程序相同,即是否通過execvp系統調用繼承了調度策略?我已閱讀手冊頁,其中指出FIFO和RR政策是繼承的,但對於正常的政策,像SCHED_BATCH,SCHED_IDLE和S

    0熱度

    1回答

    我試圖編寫一個程序C創建2個子進程,其中每個進程執行execvp。 我的問題是,第一個孩子寫太多的輸入到另一個孩子讀的管道。 int main(int argc, char* argv[]){ //unnamed pipe int pipeFd[2], statusFirst,statusSecond; pid_t childPidOne,childPidTwo; if(pipe(pi

    2熱度

    2回答

    我想更改文件描述符,以便將我的execvp命令發送到文件。之後,我想將stdout重置回控制檯。 這是我到目前爲止有: int main() { printf("to console\n"); int stdoutfd = dup(STDOUT_FILENO); FILE* file = fopen("./test.txt","ab+"); int file

    0熱度

    1回答

    只是爲了闡述標題,我變得很perodic,隨機壞地址時execvp()被調用。 我可以重複使用納米,CD,每過一段時間我會用一個錯誤的地址被命中。 我使用一個字符串矢量,換弦的載體,一個const char **,並在最後追加空。看起來好像null並不總是被讀取。 任何幫助表示讚賞。 代碼以供參考: int parse::sh_execute() { const char **arg

    0熱度

    2回答

    我想做一個shell「bosh>」,它需要在Unix命令並不斷收到錯誤的地址錯誤。我知道我的代碼讀取命令並解析它們,但出於某種原因,我無法讓它們執行,而是出現「錯誤地址」錯誤。 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/wait.h> #include <sys/types.h> #i