我正在创建一个简单的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