用講過的各種C函數實現一個簡單的互動式Shell,要求:
1、給出提示符,讓用戶輸入一行命令,識別程序名和參數並調用適當的exec
函數執行程序,待執行完成後再次給出提示符。
2、識別和處理以下符號:
簡單的標準輸入輸出重定向(<和>):仿照例 30.5 “wrapper”,先dup2
然後exec
。
管道(|):Shell進程先調用pipe
創建一對管道描述符,然後fork
出兩個子進程,一個子進程關閉讀端,調用dup2
把寫端賦給標準輸出,另一個子進程關閉寫端,調用dup2
把讀端賦給標準輸入,兩個子進程分別調用exec
執行程序,而Shell進程把管道的兩端都關閉,調用wait
等待兩個子進程終止。
你的程序應該可以處理以下命令:
○ls△-l△-R○>○file1○
○cat○<○file1○|○wc△-c○>○file1○
○表示零個或多個空格,△表示一個或多個空格