2014-07-09 148 views
2

我主要关心Linux,但是欢迎使用涉及窗口的回答。java/C++输出是如何工作的? cout << System.out.print

当我使用System.out.printlncout<<什么是实际发生的事情,当我在一个GUI应用程序(它去任何地方)做了cout会发生什么?

我感兴趣的一个案例是Netbeans IDE。当我在Netbeans中运行一个Java程序时,IDE可以从程序中“窃取”输出并显示它?

更新/旁注

http://www.linfo.org/standard_output.html

一个标准输出的特征是,它有一个默认 目的地,但可以很容易地被重定向(即,转移)到另一 目的地。该默认目标是启动程序的 计算机上的显示屏幕。由于标准码流为 纯文本,它们在定义上是可读的。

什么意思是“启动程序”? 我并不十分熟悉程序的执行过程,但在我的netbeans例子中,很明显IDE启动了程序。那是什么意思?当程序被设置为执行时,是否有一些元数据在浮动,让操作系统知道Netbeans正在启动该程序?

+1

数据被写入'stdout'。 – chris

+0

如何控制它? –

+0

请注意,Java示例'System.out.println'打印指定的函数括号()中包含的值,并以新行结束输出。在cout的情况下<<正在输出在<<之后指定的值,而没有新的行字符。为了'cout'打印一个新的行字符,在值后加上<< endl。 'System.out.print'比这个'System.out.println'更接近'cout'。 – localhost

回答

5

当程序执行时,三个特殊文件描述符:stdin,stdout和stderr与某个设备关联,以确定如何管理输入和输出。如果您从终端shell执行程序,stdin将与键盘stdout和stderr关联到终端窗口。在开发环境中执行程序时,通常stdout和stderr会显示在某些特殊的控制台选项卡中。在其他情况下,输出到一些日志文件或可能会被丢弃...

System.out和cout是代表Java和C++中的标准输出流的对象。

相关问题