Возможно, вы работаете на фоне MS-Windows.
В Windows, когда вы дважды щелкните консольную программу, система автоматически создает окно консоли и подключает стандартные входные и выходные потоки программы к этой консоли.
В Linux нет такой вещи, как «консольные программы» или «программы GUI». Есть только программы, которые происходят, чтобы читать/записывать стандартные потоки, программы, которые делают GUI, или делать то, и другое.
Вывод в том, что ваша программа, скорее всего, работает отлично найти, и INT печатает в стандартный выходной поток ...
Где это стандартный вывод приводит к? Это был бы другой вопрос ... но я все равно попытаюсь ответить. Он наследует стандартный вывод родительского процесса, то есть ваш «Диспетчер файлов». Если это происходит из терминала (маловероятно), вы увидите вывод там. Если он запускается из сеанса рабочего стола (вероятно), то это зависит от того, что сделал менеджер сеансов с STDOUT. Большинство из них перенаправляют его на скрытый файл в домашней папке. Вы можете попробовать запустить $ grep "Hello World" ~/.*
и посмотреть, что произойдет.
Если вы хотите запустить окно терминала двойным щелчком, вы должны написать запись .desktop
(например, Windows Shortcut) для программы и установить Terminal=true
. Возможно, ваш «Файловый менеджер» уже имеет инструмент для автоматического создания файлов .desktop
.
В качестве альтернативы вы можете написать сценарий оболочки, который запускает xterm
, gnome-terminal
, konsole
... и вашу программу внутри.
Вы запустили его с терминала или дважды нажали на исполняемый файл? –
Дважды щелкните по исполняемому файлу. –
Проблема в том, что ваша программа заканчивается, а окно терминала закрывается, прежде чем вы получите возможность увидеть распечатанный результат. Запустите его с консоли (терминала) или поместите 'getchar()' перед 'return'. – jweyrich