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