我正在创建一个简单的C shell,并且被要求实现历史记录功能,有人知道我会怎么做吗?它应该能够打印历史记录,保存并加载它。
答案 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队列。如此用链表处理可能是另一种解决方案