51

「stdout」に書き込むプログラムはファイルに書き込みますか? スクリーン?stdout への書き込みの意味がわかりません。

4

6 に答える 6

65

つまり、セッションのメイン出力デバイスで出力を印刷していることを意味します...それが何であれ。ユーザーのコンソール、tty セッション、ファイル、または誰が何を知っているか。そのデバイスが何であるかは、プログラムがどこからどのように実行されているかによって異なります。

次のコマンドは、標準出力デバイス (stdout) に書き込みます...

printf( "hello world\n" );

これは、本質的に、これを行う別の方法です...

fprintf( stdout, "hello world\n" );

その場合は、アプリケーションのデフォルトの出力デバイスを表すストリームstdoutへのポインターです。FILE使用することもできます

fprintf( stderr, "that didn't go well\n" );

この場合、アプリケーションの標準エラー出力デバイスに出力を送信します。これは、 -- と同じ場合もそうでない場合もありますが、stdout-- と同様にstdout、エラー メッセージのデフォルトの出力デバイスを表すストリームstderrへのポインタです。FILE

于 2013-05-07T23:14:34.527 に答える
3

stdoutUNIX の標準出力ストリームです。http://www.gnu.org/software/libc/manual/html_node/Standard-Streams.html#Standard-Streamsを参照してください。ターミナルで実行すると、ターミナルに書き込まれたデータが表示されstdout、選択したとおりにリダイレクトできます。

于 2013-05-07T23:18:16.587 に答える
3

stdoutは標準出力ストリームの略で、オペレーティング システム自体がプログラムで使用できるストリームです。stdinおよび と一緒に、最初からプログラムで使用できますstderr

それらが指す (または元になる) ものは何でもかまいません。実際には、ストリームは、データを送信または取得するためのインターフェイスとして使用できるオブジェクトをプログラムに提供するだけです。デフォルトでは、通常は端末ですが、ファイル、別のプロセスへのパイプなど、必要な場所にリダイレクトできます。

于 2013-05-07T23:18:28.930 に答える