在C shell中实现历史记录



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

您可以使用char *数组将您的命令保存在内存中。

char *history_command[MAX_COMMAND];

和使用file in disk保存history_command array。

每次更改history_command数组时,删除文件并将history_command保存在相同的文件名

保持start索引(最初为零)和大小,因此如果size < MAX_COMMAND,则写入history[size++],如果size == MAX_COMMAND,则写入history[start++](然后是start %= MAX_COMMAND;)。这样你的数组就变成了圆形(@shahbaz suggestion)

否则,您可以使用链表来执行此类行为。这是一个FIFO队列。所以用链表处理可能是另一种解决方案

最新更新