使用stdin读取文件后需要从stdin获取箭头键代码

时间:2013-11-22 05:18:45

标签: linux assembly terminal nasm

我正在创建一个NASM汇编代码,用于读取stdin中文件中存在的2d数字数组 我正在运行这样的可执行文件 - > ./ abc< input.txt

然后我将在终端上显示读取的2d数组然后我想得到箭头键的密钥代码(正常出现在终端中作为特殊字符)我为它编写代码但它不是工作。 (我确实在termios设置中回应了)

虽然当我把文件名作为参数时它正在工作&读取而不是从stdin读取,但使用fopen和正确的fd。

./ abc abc.txt

在这种情况下,在显示读取的2d数组后,我能够在程序中获得箭头键代码,但在早期的情况下不能。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

通过使用输入重定向,您可以从终端断开stdin,而是将其连接到shell正在读取文件的管道。

您可以使用cat input.txt - | ./abc,但是您必须按 Enter 来刷新行缓冲区,并使cat将当前行传输到您的程序中。

我建议不要乱用stdin,只是将输入文件作为参数,就像你之前已经做过的那样。