从文件的最后一行读到C中的第一行

时间:2013-03-12 04:47:43

标签: c shell file-io operating-system

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

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

我需要一种方法来找到最后一行并在命令上逐行向上移动一行。并按命令一个接一个地向上移动。

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

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

编辑:我可以想到使用数组的解决方案。但有没有一种方法可以使用很少的空间?

1 个答案:

答案 0 :(得分:2)

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