Если у вас есть исполняемый файл * .out, который вы запускаете из GUI (скажем, нажав Alt+F2 в Fedora и введя его имя), что произойдет, если этот файл попытается прочитать или распечатать в стандартный формат out/standard in? Что актуарий происходит под Эти файловые дескрипторы даже создаются, когда не запускаются из терминала? Они доступны?
2 ответа
То, что происходит, по сути то же самое, что запуск терминала, запуск командной строки с символом &
в конце, чтобы запустить его в фоновом режиме, и закрытие терминала, пока программа еще работает. В зависимости от того, как именно программа запускается из графического интерфейса, вы можете получить доступ к стандартной ошибке в ~/.xsession-errors
или эквивалентном файле, который использует ваш оконный менеджер.
Как правило, стандартный выход и стандартный запуск программы, запущенной таким способом, будут недоступны; они обычно указывают на /dev/null
. Однако обратите внимание, что вы можете перенаправить ввод и вывод, используя <
и >
, например, program < file.in > file.out
.
Очевидно - если он читает форму, чтение stdin завершается неудачно. Если ir пишет в stdout - он отбрасывается, Stderr собирается там, где сказал Ларс.