GUI程序是否需要标准流?

时间:2010-02-26 08:18:51

标签: user-interface stream unix

我读到了standard streams。我的理解是没有GUI的老式程序也需要某种用户界面。因此操作系统为每个操作系统提供一个控制台窗口,并且控制台窗口的输出/输入/错误流被映射到程序的标准输入/输出/错误流。因此这些程序称为控制台应用程序。程序员无法修改这些映射。

我想知道,如果我的理解是正确的,那么GUI程序是否也有这些标准流?我不认为这是必要的,因为GUI本身就是一个很好的用户界面。

2 个答案:

答案 0 :(得分:3)

我引用你链接到的文章的底部:

  

图形用户界面(GUI)   很少使用标准   流。

     

一些GUI程序,主要在Unix上,   仍然写入调试信息   标准错误。

     

其他人可能会从中获取文件   标准,例如很多Unix   媒体播放器这样做。

因此,从上面的引用中,你可以看到它们确实存在,尽管很少使用它们。

  

“这个映射不可能   由程序员修改。“

这是不正确的 - 当然在UNIX上他们可以 - 不确定Windows。例如,您可以关闭标准输出流并将其重定向到文件流,以将输出写入文件。

答案 1 :(得分:1)

  • 根据您的操作系统而有很大不同。如果您运行“命令行”应用程序,有些会创建一个控制台,有些会将标准流连接到与启动该程序的进程相同的流。
  • 您通常可以更改stdout / in / err流,将它们连接到运行它们的控制台之外的其他内容非常常见,例如管道或文件。
  • GUI程序通常也有stdout / err / in流。
  • GUI程序很少使用这些流,可能除了在开发过程中调试printfs之外。
  • GUI程序可能会将这些流重定向到/ dev / null或类似的东西,只会丢弃写入其中的数据。