Ich möchte STDOUT in eine Datei auf der Festplatte umleiten. Der Punkt ist, dass printf in meinem Programm in eine Datei statt in die Konsole schreibt.fclose (stdout) vs schließen (STDOUT_FILENO) - C
ich einige Artikel im Web gesehen, wo sie gebraucht:
dup2(fileno(outputFile), STDOUT_FILENO);
Oder:
close(STDOUT_FILENO);
dup(fileno(outputFile));
In jedem Tutorial sie in der Nähe() und es tatsächlich funktioniert. Aber ich war neugierig, und ich versuchte, fclose (stdout) stattdessen zu verwenden, aber einige Fehler passiert ist, als ich versuchte, printf zu verwenden:
fclose(STDOUT_FILENO);
dup(fileno(outputFile));
Fehler:
Bad file descriptor
Meine Frage ist, warum tut fclose() nicht funktionieren, aber schließen()?
Danke.
Wenn Sie stdout nur in eine Datei umleiten möchten, verwenden Sie eine Shellumleitung. Wenn Sie erfahren möchten, wie Sie eine Datei mit C umleiten, sollten Sie die Frage neu formulieren. –