回答
我不明白你的問題。你開始一件新事物,你可以使用任何你想要的名字。 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. CGI C語言編程
- 2. RPC編程語言C
- 3. D編程語言中的C#事件
- 4. C編程語言中的時間戳
- 5. 將shell腳本轉換爲C#編程語言
- 6. 編程語言
- 7. 編程語言的原語
- 8. C語言和多線程編程
- 9. 用Linux編程C語言的參數
- 10. 在C++編程語言中返回2語句的含義
- 11. .NET編程語言
- 12. java編程語言
- 13. Siri編程語言
- 14. Scheme編程語言
- 15. NesC編程語言
- 16. SIMD編程語言
- 17. 編程語言語法
- 18. 使用fork進行C語言編程()
- 19. 用C#創建編程語言
- 20. c編程語言 - declare()函數
- 21. 使用gcc擴展c編程語言
- 22. C語言視頻編程,linux
- 23. C語言編程 - 類項目
- 24. 以C語言編程終止scanf
- 25. C語言編程 - 多行註釋
- 26. C語言編程輸入錯誤
- 27. 計算採用c編程語言
- 28. 遞歸在C語言編程
- 29. 日曆在C編程語言作業
- 30. 混合彙編語言和C程序
你想讓圖書館做什麼? – trojanfoe
請說明一下,你想編寫一個完整的shell程序?,你想從一個程序中調用一個shell命令?,你想將數據傳遞給一個shell? –
只是libc,這就夠了。 –