【发布时间】:2017-10-07 00:13:35
【问题描述】:
我正在使用以下代码来读取和输出每个击键,而不必每次都按 enter。
system("\bin\stty raw");
在我读完之后,程序会执行另一个系统调用来重置终端行为。
system("\bin\stty cooked");
问题是,最后一行没有按照应有的方式重置终端行为。一旦这个程序终止,一切都会变得一团糟。它继续读取输入,一旦按下回车键或 CTRL C 或其他任何东西,它就不会做任何事情。
如何将终端行为重置为最初的行为?
【问题讨论】:
-
system函数不是系统调用。 -
"\b"是退格键。 -
@EugeneSh。嗯,这是一个系统调用,就像
abs(-5)是一个abs 调用和printf("hello\n")是一个printf 调用一样。模棱两可可能令人困惑,但并非不正确。