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.
output eines anderen poggies übernehmen
Re: output eines anderen poggies übernehmen
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
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
Re: output eines anderen poggies übernehmen
kannst du mir da mal ein beispiel zu dieser pipe() und fork() geschichte geben ?