我正在尝试在C中实现一个shell。这就是事情。我想创建一个历史友好的功能,如果我按下它去上一个。命令。
现在我有一个存储历史记录的文件,比如history.txt。当我执行命令时,我会将命令附加到文本中。并将某种偏移重置为文件的最后一行。
我需要一种方法来找到最后一行并在命令上逐行向上移动一行。并按命令一个接一个地向上移动。
现在,我的想法是fgets()直到-1还是什么?
关于我应该如何开始的任何想法?
编辑:我可以想到使用数组的解决方案。但有没有一种方法可以使用很少的空间?
答案 0 :(得分:2)
当您需要运行上一个命令时,不要费心从文件中读取历史记录。只需将以前的命令存储在内存中。在退出时将它们写入磁盘,并在启动时加载它们。这就是真正的贝壳如何运作。