Kommunikation über stdin stdout



  • Hallo,

    ich habe 2 Anwendungen (aw01 und aw02). aw01 ist ein Server und nimmt über socket Kommandos an. Trifft ein Kommando ein so started aw01 die Anwendung aw02 mit:

    execlp("aw02", "aw02", NULL);
    

    Die Anwendung aw02 wartet nun über stdin auf Kommandos. Wie bringe ich nun aw01 dazu, dass es über stdin an aw02 Kommandos schickt und Ergebnisse über stdout liesst.

    Danke + Gruss,
    Haksi



  • Ich kann mich nicht mehr so richtig erinnern, aber da war etwas seltsam mit den exec*-Funktionen. Die machen afaik gar keinen neuen Prozess, sondern holen das Zielprogramm in den aktuellen Prozess. Wenn das stimmt, könnte fork() Abhilfe schaffen -- aber besser in der Unix-Ecke nachfragen.

    Irgendwie konnte man dann dem neuen Prozess drei Filepointer übergeben, die für die drei Standard-Kanäle verwendet werden.
    Abgesehen davon könnten die beiden Prozesse auch ganz einfach über lokale Sockets kommunizieren.




Anmelden zum Antworten