shell功能模擬

2021-09-25 13:12:40 字數 893 閱讀 1385

shell主要涉及多程序.

shell 主要功能管理程序,執行程式.

執行程式過程

1使用者鍵入命令,

2shell建立乙個新程序來執行這個程式

3shell將程式從磁碟中載入.

4程式在它的程序中執行直至結束.

5回到主程序shell.

主要需要 execvp ,fork wait等函式.

1.初級版

下面是我結合書的例子然後自己寫的模擬shell.其實fork wait很多細節地方不造比如子程序.大致能執行就ok …

這個主要模擬shell.這個程序比訊號量簡單多了所以好玩,訊號和c++ qt很類似叻.這個是單個字元輸入來構造命令.輸入q就退出程式了,主要是試驗fork wait…

#include#include#include#define maxargs 20

#define arglen 100

int execute(char *arglist)

char *makestring(char *buf)

strcpy(cp,buf);

return cp;

}int main()

}} }

printf(" child pid is over now is return parent\n");

c=getchar();

}}

溜......

2.書上**太長了,不過一步一步推導成乙個真正shell還輔之以語法還是很棒 除了變數名長,**長,程式流程圖越來越複雜....不想看...

2019、8、3

這才過乙個禮拜,,,我就忘記了fork,,,fork建立子程序,然後再沒有然後了。太native了 fork巢狀迴圈裡 不是好理解的。。。。。。。。

shell模擬seq功能及shellfor迴圈總結

今天瀏覽網頁的時候突然看到乙個 shell 程式,裡面有乙個命令叫做 seq,它的作用是用於產生從某個數到另外乙個數之間的所有整數,seq 命令說明如下 s 指定分隔符,預設是換行 w 等位補全,就是寬度相等,不足的前面補0 f 格式化輸出,就是指定列印的格式 可以不指定起始數值,則預設為 1,見第...

Shell指令碼模擬多執行緒功能分享

複製 如下 bin bash function pinghost tmp fifofile tmp fifo 指令碼執行的當前程序id號作為檔名 mkfifo tmp fifofile 新建乙個隨機fifo管道檔案 exec 6 tmp fifofile 定義檔案描述符6指向這個fifo管道檔案 r...

模擬shell程序

1.用fork 建立乙個程序,再呼叫execl 用新的程式 命令 替換該子程序的內容,利用wait 來控制程序執行順序。例如模擬乙個shell程式,可以是最簡化版的shell模擬,即建立乙個子程序執行乙個固定的shell命令,也可以是從終端獲取使用者輸入的shell命令,建立子程序執行這個shell...