Zum umleiten von printf() auf Datei und dann zurück auf die Konsole

Arbeite ich an einem Projekt, das erfordert mir zu haben, die Ausgabe in eine mini-shell auf meinem C-Programm, um die Ausgabe in eine Datei. Mit ./program > file.txt wird NICHT funktionieren.

Habe ich ein mini-shell-Programm, das läuft, kleine Befehle, und ich möchte es so machen, wenn jemand einen > filename am Ende eines Befehls, es leitet den gesamten text aus printf() einer Datei statt von der Konsole, und dann leitet es zurück in die Konsole.

Wie kann ich dies in C?

  • fork(), dup2(), execvp() -- die-Taste, im Kontext wird dup2(), die nur benötigt werden, wenn die fork(), damit die Eltern nicht haben, um futz mit Ihren eigenen stdout.
  • verwenden freopen..
  • Mit freopen() arbeitet man die Datei, wie schalten Sie dann? Zumindest gibt es mehr zu tun als nur den Aufruf freopen().
  • ist dieses Hausaufgaben?
  • Können Sie ein Beispiel geben? Ich habe versucht, mit fork() und dup2() vor, aber es schien nicht zu funktionieren.
Schreibe einen Kommentar