回答
我不明白你的問題。你開始一件新事物,你可以使用任何你想要的名字。 Project的概念通常針對某些IDE。
要編寫一個外殼,首先必須熟悉C編程語言,並理解好幾個重要的Linux系統調用(如fork
,execve
,pipe
,chdir
,dup
等)。所以先閱讀這本好書。系統調用通過標準的C庫可用,您不需要鏈接額外的一個。
而且,研究小殼的源代碼(如sash)可能會對你有很大的幫助。
不幸的是,不是一些神奇的emulateShell()
API調用就可以彌補這方面,你將需要考慮(在大深度)像exec
,fork
,popen
,signal/sigaction
事物和其他主機過程控制的東西。
另外,您可能需要參與終端處理等,例如fcntl
和ioctl
。
這不是一個真正可以全面覆蓋的主題是一個這樣大小的答案框。我會建議試圖在較小的工作中將其分解,以使您的(和我們)的工作更輕鬆。
也許從一個簡單的程序開始,該程序接受來自用戶的命令並將它們分解爲令牌執行。那將是一個好的第一步。
我不確定他需要* popen *,他需要了解* pipe *系統調用(等等)。 * popen *就像* system *,它使用一個shell,不提供一個。 –
實際上,這是一個有趣的問題,對於某些知道Unix的IO機制的人來說,這可能是一個很好的練習。正如您所知,Shell負責解釋輸入,調用系統調用並顯示輸出。這樣的程序運行在內核之上。因此,該練習可能會給出許多關於流程執行族的信息,如exec*
。
這裏是one tutorial c爲你在C中覆蓋,這one in Python將幫助你設計一個理解的快速原型。
shell不會將其輸入傳遞給內核。它解釋它的輸入並相應調用系統調用。 –
我簡直太簡單了。更正它。 –
- 1. 編程語言C
- 2. C編程語言
- 3. 我的編程語言C#
- 4. RPC編程語言C
- 5. CGI C語言編程
- 6. C語言編程指南
- 7. D編程語言中的C#事件
- 8. C編程語言中的時間戳
- 9. 由K&R編寫的C語言編程語言示例CH1
- 10. 將shell腳本轉換爲C#編程語言
- 11. strcat()在c語言編程中
- 12. 在C++編程語言中綁定語言
- 13. 從彙編語言編寫C程序
- 14. 編程語言
- 15. C語言中:在編譯
- 16. 編程語言的原語
- 17. C語言和多線程編程
- 18. 用Linux編程C語言的參數
- 19. 編寫的編程語言
- 20. 在C語言編程語言中更改菜單中的#define值
- 21. 在C++編程語言中返回2語句的含義
- 22. NesC編程語言
- 23. Siri編程語言
- 24. .NET編程語言
- 25. R語言編程
- 26. SIMD編程語言
- 27. Scheme編程語言
- 28. 編程語言樹
- 29. java編程語言
- 30. 你能用C語言編程FPGA嗎?
你想讓圖書館做什麼? – trojanfoe
請說明一下,你想編寫一個完整的shell程序?,你想從一個程序中調用一個shell命令?,你想將數據傳遞給一個shell? –
只是libc,這就夠了。 –