Ausgabe eines system() Aufrufs in String speichern. Wie?
-
Hi,
ich fände es nicht schlecht die terminalausgabe eines beliebigen system() befehls
in einen string zu speichern, anstatt ihn direkt auszugeben.unter bash oder perl wäre das kein problem,
aber wie geht das unter C?ich will beispielsweise sowas haben (naive schreibweise):
.. char programm_ausgabe[]; programm_ausgabe = system("ls -al $HOME"); ..
selbstverständlich geht sowas nicht, deswegen frage ich ja.
ausserdem wärs dann nicht schlecht zu wissen,
wie man einen string wiederum einem system() aufruf
als eingabe senden kann, um zu greppen oder sonstwas.möglicherweise gibts da nen komplett anderen ansatz, ka.
ich komme nur aus der scripter ecke (bash/perl) und muss nun
"richtig" programmieren (aus performancegründen), nur wenige
abschmnitte und methoden bedürfen ganz einfache consolen-ein-ausgabe
und da fällt es mir schwer alles selber in c zu schreiben, ausserdem
muss man ja nicht gleich das rad neu erfinden.danke für eure hilfe im voraus.
-
popen() kann dir eine unidirektionale pipe geben. (irgendein BSD hat bidirektionale pipes, aber wayne)
bidirektional wirst du mit zweimal pipe(), stdin/stdout auf die pipes dup2()en, fork() und exec().
(oben genanntes ist eine *meinung*, also nur als anregung zu verstehen)
geh ich recht in der annahme, dass du dich auf unix/linux beschraenkst?
innerhalb von ansi c bewegen wir uns hier nicht mehr und *wirklich* plattformunabhaengig auch nicht.
-
ja, definitiv.
ich spreche von linux (vo mir aus unix) programmierung.
danke für deine antwort.
-
Tatsächlich habe ich in der zwischenzeit was brauchbares gefunden,
was ich mit euch nicht vorenthalten wil:http://crasseux.com/books/ctutorial/Programming-with-pipes.html#Programming with pipes
-
hab da auch noch was:
http://www.ecst.csuchico.edu/~beej/guide/ipc/
-
Dieser Thread wurde von Moderator/in c.rackwitz aus dem Forum ANSI C in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.