Прежде чем начать, я хочу уточнить, что это не инструмент командной строки, а приложение, которое принимает команды через собственный интерфейс командной строки.
Редактировать: Я должен извиниться за свое объяснение, видимо, я не очень хорошо объяснил его. Еще раз ...
Я создаю приложение интерфейса командной строки, которое принимает команды от пользователя. У меня есть настройка обработчика сигналов для перехвата сигналов, которая затем устанавливает флаг, который мне нужен для завершения приложения. Проблема, с которой я сталкиваюсь, заключается в том, что все функции консоли, которые я могу найти, являются блокирующими, что означает, что я не могу определить, что мне нужно выйти из цикла обработки консоли, пока пользователь не нажмет клавишу (или не введет, в зависимости от функции ).
Есть ли какой-нибудь стандартный способ, которым я могу выполнять неблокируемое взаимодействие с консолью, или есть элегантный способ структурировать программу так, чтобы, если я просто завершу работу с сигнальным потоком, все было обработано и освобождено должным образом (пожалуйста, Не поймите это неправильно, я знаю, как это можно сделать, используя блокировку и освобождение ресурсов из потока сигнализации, но это может стать грязным, поэтому я бы предпочел этого избежать)
Надеюсь, это объяснение имеет больше смысла ...