Ich habe UNIX- und Systemaufrufe studiert und stieß dabei auf knifflige und knifflige Fragen. Die Frage stellt, was Systemaufrufe für diesen Befehl aufgerufen werden:Implizite Systemaufrufe in UNIX-Befehlen
grep word1 word2 > file.txt
Ich habe einige Nachforschungen und ich war nicht in der Lage eine große Anzahl von Ressourcen auf dem zugrunde liegenden UNIX ruft zu finden. Allerdings scheint es mir, dass die Antwort wäre open
(zu öffnen und die Dateideskriptor für die Datei file.txt
), dann dup2
(um die STDOUT
von grep
an den Dateideskriptor open
zu ändern), dann write
die STDOUT
von grep
zu schreiben (das ist jetzt der Dateideskriptor file.txt
), und schließlich close()
, um den Dateideskriptor file.txt
zu schließen ... Allerdings habe ich keine Ahnung, ob ich richtig oder auf dem richtigen Pfad bin, kann jemand mit Erfahrung in UNIX mich aufklären dieses Thema?
Ich hoffe, dass Sie die Antwort auf Ihre Frage finden hier , aber Sie können [diesen Stapel] (http://unix.stackexchange.com/) besser finden, um es zu beantworten. Viel Glück! – Vandal
Sie können sich den [Quellcode von GNU grep] (http://git.savannah.gnu.org/cgit/grep.git) ansehen. –
"STDOUT" Umleitung wird von der Shell durchgeführt, 'grep' weiß nicht einmal, dass eine Umleitung stattfindet, das ist völlig transparent. –