UNIX Pipe(|) in C lesen
-
Ich möchte ein Programm schreiben das Daten aus einem anderen Befehl einliest und bearbeitet, wie beispielsweise grep es tut
ls -l | grep root
Ich hätte gedacht, dass es einfach über STDIN geht, aber scheinbar dann doch nicht..
-
Doch.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum C (C89 und C99) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Lesen von stdin geht mit C-Standardmitteln, wie du stdin bedienst, ist Sache des hosted environments, also in deinem Fall z.B. ein Pipe.
-
meinst du villeicht so?
#include <stdio.h> #include <stdlib.h> int main (void){ char befehl[20] = "ls | grep root"; system ( befehl ); }
-
Silahel schrieb:
meinst du villeicht so?
#include <stdio.h> #include <stdlib.h> int main (void){ char befehl[20] = "ls | grep root"; system ( befehl ); }
Ganz sicher nicht.
-
Ich nehme mal an das er eher selbst einen Kommandointerpreter schreiben will. Oder liege ich da auch falsch?
-
Er möchte einen Filter schreiben.
-
DirkB schrieb:
Er möchte einen Filter schreiben.
Und bevor das große Rumrätseln weitergeht: Die Frage war durch
LordJaxom schrieb:
Doch.
bereits perfekt beantwortet. Der Fehler muss also ganz woanders liegen und der Threadersteller muss seine Frage daher erst neu formulieren, bevor man ihm weiter helfen kann.