Programmausgaben empfangen

27/07/2009 - 23:35 von dl | Report spam
Hallo

Diverse Kommandozeilen-Programme geben Text über printf aus. Wie kann
ich das mit einem Programm "mitlesen". Mir reicht schon die Möglichkeit,
den Text zu empfangen, wenn ich das entsprechende Programm aus meinem
Programm heraus mit der system()-Funktion aufrufe. Ich will in dem
Aufruf aber keine Umleitung angeben. Das entsprechende Programm soll
ganz normal aufgerufen werden und seine Ausgaben auf gewohnte Weise machen.

Experimente mit stdin und stdout brachten mich nicht weiter.




Gruss

Dirk
 

Lesen sie die antworten

#1 Michael Schumacher
28/07/2009 - 06:05 | Warnen spam
dl wrote:

Diverse Kommandozeilen-Programme geben Text über printf aus. Wie kann
ich das mit einem Programm "mitlesen". Mir reicht schon die Möglichkeit,
den Text zu empfangen, wenn ich das entsprechende Programm aus meinem
Programm heraus mit der system()-Funktion aufrufe. Ich will in dem
Aufruf aber keine Umleitung angeben. Das entsprechende Programm soll
ganz normal aufgerufen werden und seine Ausgaben auf gewohnte Weise
machen.



Hat zwar nix mit C zu tun, aber sei's drum: man pipe; dazu gehört dann
noch sowas wie fork() und exec(), aber das ist alles hochgradig vom API
des verwendeten Betriebssystems abhàngig. system() hilft Dir hier nicht
weiter, aber (so vorhanden und korrekt unterstützt) popen() und pclose()
willst, sondern nur entweder dessen Ausgabe lesen _oder_ ihm via "stdin"
eine Eingabe übermitteln willst.


mike

Ähnliche fragen