在C shell中实现历史记录

时间:2013-03-25 16:17:40

标签: c shell history

我正在创建一个简单的C shell,并且被要求实现历史记录功能,有人知道我会怎么做吗?它应该能够打印历史记录,保存并加载它。

1 个答案:

答案 0 :(得分: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队列。如此用链表处理可能是另一种解决方案