我正在創建一個簡單的C shell,並且被要求實現歷史記錄功能,有誰知道我該怎麼做?它應該能夠打印歷史記錄,保存並加載它。在C shell中實現歷史記錄
-1
A
回答
2
您可以使用char *
的數組將您的命令保存在內存中。
char *history_command[MAX_COMMAND];
和使用文件在磁盤保存history_command
陣列。
每個history_command
數組改變了比刪除文件並保存history_command
在相同的文件名
隨身攜帶的大小沿着start
指數(初始爲零),所以如果size < MAX_COMMAND
,你寫history[size++]
和時間如果size == MAX_COMMAND
你寫給history[start++]
(其次是start %= MAX_COMMAND;
)。這樣你的數組就變成圓形了(@shahbaz建議)
否則你可以使用鏈表作爲這樣的行爲。這是一個FIFO隊列。所以用鏈表處理可能是另一種解決方案
相關問題
- 1. 在ruby中實現shell歷史
- 2. 清除Mongo Shell中的歷史記錄
- 3. 如何在TCSH Shell中註銷時清除SHELL歷史記錄?
- 4. GWT歷史記錄:歷史記號
- 5. 如何在SQL Server中的歷史記錄表中存儲歷史記錄
- 6. 在Emacs中自動保存shell歷史記錄
- 7. 實現歷史表
- 8. LDAP登錄歷史記錄
- 9. 將shell腳本中的命令添加到歷史記錄中?
- 10. 將BBEdit搜索歷史記錄提取到shell腳本中
- 11. 如何清除mongodb shell中的命令歷史記錄
- 12. VSO git文件歷史中的「簡單歷史記錄(默認)」和「完整歷史記錄」有什麼區別?
- 13. 在Chrome中訪問歷史記錄html?
- 14. 在Firefox中導出Awesomebar歷史記錄
- 15. 在git中保存歷史記錄
- 16. iPhone通話記錄/歷史記錄
- 17. 活動記錄審計歷史記錄
- 18. 爲什麼會將iframe的歷史記錄添加到歷史記錄中
- 19. 從Git歷史記錄中刪除具有歷史記錄的特定文件
- 20. 帶歷史記錄的EditText
- 21. 遠程歷史記錄
- 22. Netflix查看歷史記錄
- 23. Eclipse RCP - SelectionService - 歷史記錄?
- 24. Nhibernate的歷史記錄
- 25. Eclipse運行歷史記錄
- 26. TFS簽入歷史記錄
- 27. Google chrome歷史記錄sqlite
- 28. 我的C#瀏覽器在IE歷史記錄中顯示它的一些歷史記錄
- 29. HTML5 - 歷史記錄API
- 30. HTML5歷史記錄APi
請參閱http://whathaveyoutried.com和FAQ http://stackoverflow.com/faq – 2013-03-25 16:19:17
您的shell必須處理它讀取的每條命令。部分處理過程是將每條命令記錄到內部數據結構中。添加shell命令將該數據結構寫入磁盤並從文件加載數據結構,然後就完成了。 – chepner 2013-03-25 16:20:06
建立一個隊列類型的結構並添加到每個操作的隊列的末尾? – 75inchpianist 2013-03-25 16:20:34