-2

我正在尝试在 C 中实现一个 shell。事情就是这样。我想做一个历史友好的功能,如果我按下它就会转到上一个。命令。

现在我有一个存储历史的文件,比如history.txt。当我执行命令时,我会将命令附加到文本中。并将某种偏移量重置为文件的最后一行。

我需要一种方法来找到最后一行并根据命令逐行上移。并根据命令一一上移。

现在,我的一个想法是 fgets() 直到 -1 还是什么?

关于我应该如何开始的任何想法?

编辑:我可以想到一个使用数组的解决方案。但是有没有办法让我几乎不用空间?

4

1 回答 1

2

当您需要运行上一个命令时,不要费心从文件中读取历史记录。只需将先前的命令存储在内存中即可。退出时将它们写入磁盘,并在启动时加载它们。这就是真正的贝壳的工作方式。

于 2013-03-12T04:51:12.330 回答