在开始之前,我想澄清这不是一个命令行工具,而是一个通过它自己的命令行界面接受命令的应用程序。
编辑:我必须为我之前的解释道歉,显然我没有很好地解释它。再一次...
我正在构建一个接受用户命令的命令行界面应用程序。我有一个信号处理程序设置来捕获信号,然后设置一个我需要终止应用程序的标志。我遇到的问题是我能找到的所有控制台功能都是阻塞的,这意味着我无法检测到我需要退出控制台处理循环,直到用户按下一个键(或输入,取决于功能)。
有没有一些标准的方式我可以进行非阻塞控制台交互,或者有一种优雅的方式来构建程序,这样如果我只是从信号线程终止,一切都会被正确处理和释放(请不要错过-了解这一点,我知道如何使用锁定和释放信号线程中的资源来完成,但这可能会变得混乱,所以我宁愿避免它)
希望这个解释更有意义......