Нужна ли в программе с графическим интерфейсом стандартные потоки? - PullRequest
1 голос
/ 26 февраля 2010

Я читал о стандартных потоках . Насколько я понимаю, старомодные программы, которые не имеют графического интерфейса, тоже нуждаются в каком-то пользовательском интерфейсе. Таким образом, операционная система предоставляет каждому из них консольное окно, и поток out / input / err окна консоли был сопоставлен со стандартным потоком ввода / вывода / ошибки программы. И поэтому эти программы называются консольными приложениями. И эти отображения не могут быть изменены программистом.

Мне интересно, если мое понимание выше верно, есть ли в GUI-программе эти стандартные потоки? Я не думаю, что это необходимо, поскольку сам графический интерфейс пользователя является хорошим пользовательским интерфейсом.

Ответы [ 2 ]

3 голосов
/ 26 февраля 2010

Я цитирую нижнюю часть статьи, на которую вы ссылались:

Графические интерфейсы пользователя (GUI) редко использовать стандарт потоков.

Некоторые программы с графическим интерфейсом, в основном на Unix, по-прежнему записывать отладочную информацию в стандартная ошибка.

Другие могут принимать файлы для работы с стандарт, например, во многих Unix так делают медиаплееры.

Поэтому из приведенных цитат видно, что да, да, хотя они редко используются.

"И эти отображения не могли быть изменено программистом. "

Это неверно - конечно, в UNIX они могут быть - не уверены в Windows. Например, вы можете закрыть стандартный поток вывода и перенаправить его в поток файлов, чтобы получить вывод, записанный в файл.

1 голос
/ 26 февраля 2010
  • Это сильно зависит от вашей ОС. Некоторые из них создадут консоль, если вы запустите приложение «командной строки», другие подключат стандартные потоки к тем же потокам, что и процесс, запустивший программу.
  • Обычно можно изменять потоки stdout / in / err, очень часто их подключают к чему-то другому, кроме консоли, в которой они были запущены, например к каналу или файлу.
  • Программы с графическим интерфейсом обычно также имеют потоки stdout / err / in.
  • Программы с графическим интерфейсом редко используют эти потоки, возможно, за исключением отладки printfs во время разработки.
  • Программы с графическим интерфейсом могут перенаправлять эти потоки в / dev / null или что-то подобное, что просто отбрасывает записанные в него данные.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...