2016-10-30 5 views
3

シェルからではなくデスクトップから(Ubuntu 16.04)プログラムを起動して、プログラムが端末に関連付けられていない場合、このプログラムのstdinとstdoutはどうなりますか?プログラムの開始時にSTDIN_FILENOSTDOUT_FILENOは有効なファイル記述子ですか?この場合、printfはどこに書き込みますか?Linuxのデスクトップから起動したプログラムのデフォルトの標準入力と標準出力は何ですか?

+0

なぜそれを試してみませんか? Windowsでは、 'stdout'が使用されている場合はコンソールウィンドウを開き、終了時に閉じます。プログラムの終了時にプロンプ​​トまたはポーズがない限り、画面が更新される前にウィンドウが表示されないようにすばやく発生する可能性があります。 –

+0

@WeatherVane私はUbuntuでgccを使ってCでHello Worldプログラムをコンパイルしようとしました。その後、デスクトップ上の実行可能ファイルをダブルクリックしたが、何も起こらなかった(端末がポップアップしない)。私はこのように開始したときに、このプログラムのためにstdinとstdoutがどのように設定されているかはまだ分かりません。 –

+0

私は示唆したように、プログラムの最後に休憩を入れましたか? –

答えて

0

straceプログラムを使用すると、プログラムが実行しているすべてのシステムコール(open、read、write、closeなど)を確認できます。あなたは、「デスクトッププログラム」(あなたのプログラムを実行している1。pstreeまたはproctreeを使用)にそれをattatchするときは、記述子0を提出するために何が起こるかを見ることができ、1と2

https://superuser.com/questions/606985/any-way-to-view-stdout-of-a-program-after-it-has-been-started-in-gnome-shell

を参照するか、またはのためのgoogle "gnome run program stdout"

関連する問題