Skip to main content

ログ取得ツール (移転先予定地)

一部の出力をリダイレクトする方法

原始的だが、プログラム中の一部の出力だけを別ファイルにリダイレクトする方法。


  FILE *fp=stdout;
  stdout=fopen("file", "w");
  ...(printf等stdoutへの出力を含む処理)...
  fclose(stdout);
  stdout=fp;

fileno(stdout)でバレる。

(追記) 2003-09-05 15:32

無論、fork+dup2+execによる本式のリダイレクトではないからして(そもそもfork/execしないで一部だけをファイルに落としたいのだ)、write(STDOUT_FILENO)とかの出力は元のstdoutに出てしまう。…注意するまでもないか。