hi
kann mir jemand sagen wie ein programm aussehen muß das ein anderes program startet
und dann in die eingabe aufforderung einen text schreibt.
z.b.
programm a startet b mit
execl("/usr/bin/b","b",0);
b will nach dem start aber eine eingabe habe die man nicht von vornherein mit einem argument starten kann
z.b
./b
wie ist dein name?#
wie kann ich das in c umsetzen ?
program starten
Re: program starten
Da wäre einmal popen(3). Damit kannst Du einprogramm starten und erhältst gleichzeitig einen FILE *, der entweder mit stdin des gestarteten Kommandos verbunden ist (um Daten reinzufüttern, wie Du wolltest), oder der mit stdout verknüpft ist, um die Ausgabe des Kommandos zu erhalten.
Wenn Du eine bidirektionale Kommunikation brauchst, wird's haariger. Dann musst Du mittels pipe(2) ein Pipe-Deskriptor-Pärchen zum Lesen und eins zum Schreiben erstellen, dann mittels fork(2) einen Kindprozess erzeugen, der die Schreibe- und die Lese-Pipe mittels dup2(2) zu seinem stdin-/-out macht und dann mittels eines exec-Calls das eigentliche Programm aufruft...
Da würde ich aber vorher einen Blick in ein beliebiges Buch über UNIX-Systemprogrammierung empfehlen.
Jochen
Wenn Du eine bidirektionale Kommunikation brauchst, wird's haariger. Dann musst Du mittels pipe(2) ein Pipe-Deskriptor-Pärchen zum Lesen und eins zum Schreiben erstellen, dann mittels fork(2) einen Kindprozess erzeugen, der die Schreibe- und die Lese-Pipe mittels dup2(2) zu seinem stdin-/-out macht und dann mittels eines exec-Calls das eigentliche Programm aufruft...
Da würde ich aber vorher einen Blick in ein beliebiges Buch über UNIX-Systemprogrammierung empfehlen.
Jochen