output eines anderen poggies übernehmen

Post Reply
Message
Author
Sellmi

output eines anderen poggies übernehmen

#1 Post by Sellmi »

wie kann ich den output eines anderen poggies übernehmen ?

z.b.
bei tcpdump
also den output von tcpdump in realtime aufnehmen und z.b nach einen bestimmetn string ausschau halten , wenn der string dann kommt eine aktion ausführen . oder so ich hoffe ich habe mein prob verständlich geschildert.

bakunin
Posts: 597
Joined: 16. Aug 1999 6:44
Location: Lorsch (Südhessen)
Contact:

Re: output eines anderen poggies übernehmen

#2 Post by bakunin »

Hi!

Du musst mit pipe() eine Pipe erzeugen, einen Kindprozess mit fork() abspalten und in diesem seine Standardausgabe schließen, um per dup2() das Ausgabe-Ende der Pipe damit zu verbinden. Dann noch mit execl oder einem seiner Freunde (siehe Manpage) das gewünschte Programm starten. Im Elternprozess kannst du dann die Ausgabe aus dem anderen Ende der Pipe lesen. Das ganze erfordert also ein klein wenig Unix-Programmierwissen.

Die Quick&Dirty-Lösung ist, mit system() ein Shell-Kommando auszuführen und dabei die Ausgabe in eine Datei zu lenken, um diese danach einzulesen.

Cheers,
Wolfgang

sellmi

Re: output eines anderen poggies übernehmen

#3 Post by sellmi »

kannst du mir da mal ein beispiel zu dieser pipe() und fork() geschichte geben ?

Post Reply