ここでは、未定義の動作で遊んでいる可能性があります... さまざまなものを同じファイルにリダイレクトするために使用してはならないためです。freopen
以下の例では、どのファイルを閉じるかによって、書き方が異なります。
#include <stdio.h>
int main ()
{
freopen ("myfile.txt","w",stdout);
printf (" This sentence is redirected to a file.");
// fclose (stdout);
freopen ("myfile.txt","w",stderr);
fprintf (stderr, "This ERRORis redirected to a file.");
//fclose (stderr);
fclose (stdout);
return 0;
}
ここでは、文の前にエラーを書きます:
This ERRORis redirected to a file.sentence is redirected to a file.
良くない。Unix / Linux などで、OSに同じファイルへのリダイレクトを実行させることをお勧めします。
./myprog.sh 2>&1