在/向上/向下箭头作为Unix程序的input

我正在执行我自己的shell。 但是为了支持命令历史logging,我需要像标准shell一样使用监视器向上/向下箭头键。 请告诉我如何处理方向键作为input或这些键生成信号? 请详细说明。

箭头和其他特殊键会向您发送取决于正在使用或模拟的终端的特殊字符串。 为了最简单地处理这个问题,你可以使用一个类似termcap的库。 更简单一点,考虑到你陈述的目的(命令历史支持),将使用readline ,它基本上为你做了(并且允许用户自定义在许多链接到同一个库的应用程序的首选工作模式方面)。

这取决于你想要多久。 更糟糕的是,你正在写键盘中断处理程序。 最好的情况,就像readline。

在这里与你的教授检查方向。 还要检查你的课程材料,看看这位教授是否给出了关于这个的链接/例子。

这个任务是否具体说明你需要有一个“光标键驱动”命令历史记录?

简单的选择是模仿shell fc eg

 $ ls ... file listing ... $ fc -l 1 ls 2 fc -l $ fc -r 1 ... file listing ... 

和(当我提出既定的想法作为我自己的,不妨一路走来)能够编辑你可以使用的命令行

 fc -e start end 

将历史从头到尾写入文件,启动编辑器,然后将结果文件作为脚本执行。 这样你的shell就不使用库了,而是启动命令并执行脚本,这也是shell应该做的事情。