1. ホーム
  2. java

[解決済み] java/c++ 出力はどのように行われるか? cout<< System.out.print

2022-02-16 15:57:46

質問

私は主にLinuxに関係していますが、Windowsに関係する回答も歓迎します。

を使用する場合 System.out.println または cout<< をすると、実際に何が起こっているのか、どうなるのか。 cout を GUI アプリケーションで使用することはできますか?
私が興味を持っているのは、Netbeans IDE のケースです。Netbeansでjavaプログラムを実行すると、IDEがプログラムからの出力を"steal"してそれを表示することができるのはなぜでしょうか?

更新・補足

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

標準出力の特徴のひとつは、デフォルトの しかし、簡単に別の場所にリダイレクト(迂回)させることができます。 になります。このデフォルトの行き先は プログラムを開始したコンピュータ 標準ストリームは プレーンテキストは、定義上、人間が読むことができる。

プログラムを開始する」とはどういう意味ですか? 私はプログラムの実行がどのように始まるかについてあまり詳しくはありませんが、私のnetbeansの例の場合、IDEがプログラムを開始したことは明らかです。では、それは何を意味するのでしょうか?プログラムが実行されるようにセットアップされているとき、OSにNetbeansがプログラムを開始したことを知らせるメタデータが浮かんでいるのでしょうか?

解決方法は?

プログラムを実行するとき、stdin、stdout、stderrという3つの特別なファイル記述子を何らかのデバイスに関連付け、入出力の管理方法を決定します。ターミナルシェルからプログラムを実行する場合、stdinはキーボードに、stdoutとstderrはターミナルウィンドウに関連付けられます。開発環境でプログラムを実行する場合、通常、stdoutとstderrはいくつかの特別なコンソールタブに表示されます。それ以外の場合、出力はログファイルに保存されるか、あるいは破棄されます...

System.outとcoutは、JavaとC++で標準出力ストリームを表すオブジェクトです。