stdout
を使用してプロセスをリダイレクトしていますがfreopen()
、それが 1 つのプロセスである限り、すべて問題ありません。
ただし、次のようなことをすると:
freopen("stdout.txt", "a+", stdout);
printf("Initial line.\n");
int i=0;
while(i<1000)
{
if(fork())
wait(NULL);
else
printf("Line %d.\n", i);
i++;
}
最初に印刷された行は、ファイルに何度も再印刷されます。これが起こらないようにするために私がしなければならないことはありますか?