Shell,我的簡易實現!

2021-05-22 15:50:09 字數 566 閱讀 4902

基礎知識:

shell 是一種基本的使用者操作介面,通過對使用者輸入命令的解析完成相應的功能。

shell  

程式的執行包括:

列印提示符

獲取命令列

解析命令

搜尋相應命令檔案

準備引數

執行命令

後台執行的程序:

一般執行命令的時候,fork 乙個子程序去執行命令,父程序等待子程序完成任務。但是後台程序執行

時,父程序不等待子程序完成任務。

i/o 重定向:    

使用者可以重定義標準輸入(stdin),標準輸出(stdout),標準錯誤(stderr)。使用者通過'<','>'等進行輸入,輸

出重定向。

管道:一種程序間的通訊機制,一般採用非同步傳送、阻塞式接收操作。在 shell 中『|』可以將乙個命令的輸

出重定向到另乙個命令的輸入。

shell.cpp(主檔案)

command.cpp

command.h

stringutil.cpp

stringutil.h

nohup.cpp

簡易shell的實現

自主minishell實現 1 獲取標準輸入 2 解析輸入得到 命令名 執行引數 3 建立子程序 子程序中進行程式替換 4 程序等待 include include include include include intmain printf uesr localhost fflush stdout...

簡易shell的實現

編寫乙個簡易shell,需要迴圈以下流程 獲取命令列 解析命令列 建立乙個子程序 fork 替換子程序 execvp 父程序等待子程序退出 wait 實現 include include include include include include intmain fgets buf,1024 s...

用fock實現簡易shell(程式替換)

fork之後就會建立則程序,資料 堆 棧有兩份,仍然為乙份但是這個 段成為兩個程序的共享 段都從fork函式中返回,當父子程序有乙個想要修改資料或者堆疊時,兩個進 正 子程序在建立的時候會複製父程序的 不管是共用 還是複製 這就相當於父程序建立了乙個和自己功能完全相同的程序,這樣一來,子程序就只能進...