execvp

    1熱度

    2回答

    使用fork和execvp函數從stdin行運行命令,製作一個簡單類型的shell。 但是,像ls這樣的工作,但不是ls -all -S。 它將執行ls,但什麼都不會被打印ls -all 唯一的想法,我能想出的是,有一個「\ n」某處的命令,但我不知道怎麼把它弄出來甚至它在哪裏...... #include <stdio.h> #include <stdlib.h> #include <str

    2熱度

    2回答

    我有下面的代碼,用於產生和分離一個子進程,這只是另一個node.js腳本在同一個目錄。下面是我運行的確切代碼: var fs = require('fs'); var child = require('child_process'); var out = fs.openSync('/tmp/daemon.log', 'a'); var options = { cwd: proce

    0熱度

    1回答

    execvp()連接標準輸入,然後執行? 我不完全理解此命令 我的一個同學是讓我看他的代碼(即在終端執行一個shell)來計算整個事情出來, 但我不是很瞭解爲什麼將stdin更改爲指向最後一個孩子的輸出。我唯一能做的就是execvp必須將stdin連接起來,這樣我們才能在前面的輸出中使用管道命令。任何見解都會有幫助,謝謝。 #include <stdio.h> #include <string.

    0熱度

    1回答

    我正在使用execvp來執行一些命令,如ls -l,who,cp -r ./aaa ./bbb等。一切正常,直到我嘗試執行相同的命令第二次。例如,我會告訴你我使用的命令:ls -l(一切正常),誰(一切正常),ls -l(壞地址)。這是我的代碼: if(strcmp(com_instr, "issuejob") == 0) { pid = fork(); if(pid

    2熱度

    1回答

    我正在C中使用一個非常基本的UNIX shell。在此項目中,我試圖使用fork()和execvp()來執行實際的shell命令。儘管我遇到了一個問題,它似乎對具有單個參數的命令(例如ls -l和echo howareyoutoday完美工作)的命令正常工作,但具有多個參數的命令無法執行(echo how are you today不運行)。我會通過我的代碼/理由來幫助您找出造成這個問題的原因。

    0熱度

    1回答

    我做了一個小程序,將行號放在文件的每一行前面!這工作得很好,但他們只是一個問題。我得到這個的結果是: 文本一個 文本的兩種 文本3 但我想輸出給我如: 1 Text one 2 Text two 3 Text three 我使用此代碼來執行sed的功能: char* exec[] = { "sed", "/./=", NULL }; execvp(exec[0], exec); 我想

    0熱度

    3回答

    我有一個任務是在C代碼中創建一個shell,而且我有一個大多數時候都可以使用的解決方案。如果程序存在,我的解決方案就可以工作,並且我可以用Control-D或鍵入exit退出我的shell。但是當我嘗試一個我知道不存在的命令時,我的shell會打印一條錯誤信息,說沒有找到命令,但我必須輸入exit或按Control-D與無效命令的次數相同輸入即如果我輸入錯誤的命令3次,然後我必須擊中Control

    0熱度

    1回答

    它是c中的一些linux shell的實現。由於我已經添加了後臺進程支持,我有一些輸出,我不明白。下面是代碼: #include <stdlib.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.

    1熱度

    1回答

    我正在創建一個可以在終端上執行用戶輸入命令的shell。它也有歷史功能。 現在一切工作正常。我被卡住的唯一部分是,如果用戶輸入「!!」最近的命令應該是EXECUTE,如果用戶輸入「!n」,第n個命令應該是EXECUTE。但是,當我運行它時,我輸入這些命令時沒有執行任何操作。 get_recent_command()和search_in_list_for_n()函數正在返回正確的命令,但是當我將這些

    0熱度

    3回答

    所以我正在寫一個程序,其中參數如下所示: program start emacs file.c 甚至 program wait 在本質上,第一個參數(argv [0])是程序名稱,後跟用戶輸入。 在我的代碼中,我調用了execvp。事情是,我不完全確定我在援引正確的論點。 if (pid == 0) { execvp(argv[1], argv); //Line of i