Schrift
[thread]10725[/thread]

Über Perl einem anderen Program Eingaben geben

Leser: 1


<< >> 2 Einträge, 1 Seite
Gast Gast
 2007-11-06 16:14
#101910 #101910
Hi!

Ist folgendes möglich?
Ich habe ein Programm in C, z.B.

int main() { do { scanf(x); print(x) } while (x != 0); }

(Stark vereinfacht.)
Also sowas wie eine Eingabeaufforderung


Was ich nun möchte:

Ich möchte dieses Programm mit Perl laden und jederzeit die Möglichkeit haben diesem Programm Eingabe zu übergeben, z.B. "1\n" oder "0\n"

Ich habe es mit Pipes probiert, aber da ist das Problem, dass die Eingabe dem programm erst übergeben wird wenn ich das HANDLE close. Also alles auf einmal oder garnichts.
Ich möchte das Programm aber gerne in meinem Perlscript im Hintergrund laufen haben und jederzeit Eingaben übergeben können.

Hat jemand eine Lösung dafür?

Grüße, Alex
murphy
 2007-11-07 14:49
#101960 #101960
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Da alle Datenströme in Perl gepuffert sind, solltest Du immer wenn die Daten garantiert auf die Pipe geschrieben werden sollen (also zum Beispiel immer wenn Du einen Zeilenumbruch gesendet hast und auf eine Reaktion des Programmes wartest), die Ausgabe flushen.

Ist das kontrollierte Programm komplizierter (weil es zum Beispiel eine richtige Benutzerführung aufweist und nicht nur einen Datenstromfilter darstellt), bietet es sich wahrscheinlich an, das Modul CPAN:Expect zu verwenden.
When C++ is your hammer, every problem looks like your thumb.
<< >> 2 Einträge, 1 Seite



View all threads created 2007-11-06 16:14.