PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C] Eingabeaufforderung durch system()



Mister-X
19-04-2009, 18:09
Hallo,

ich möchte ein Programm unter Linux schreiben, indem ich nach dem Aufruf von system() einen weiteren Befehl geben kann, der für das Programm bestimmt ist, das durch system() aufgerufen wurde.
Beispiel: Durch system() wird der Befehl fürs Entpacken eines Archivs aufgerufen. Dann wird das Passwort verlangt. Wie kann dieses Passwort eingegeben werden?
Bei einem doppelten Aufruf der Funktion würde die Zweite ja erst dann ausgeführt werden, wenn die Erste komplett beendet wurde. Wie kann ich da eingreifen?

anda_skoa
20-04-2009, 13:43
Das hängt davon ab, wie das Programm diese Abfrage implementiert.

Wenn es ein einfaches Lesen vom Standardinput ist, geht es vermutlich mit popen() statt system().

Wenn es (sehr üblich) direkt mit dem Terminal kommunziert, brauchst du ein sogenanntes Pseudo TTY.
Das ist dann aber alles andere als trivial.

Ciao,
_

Mister-X
20-04-2009, 20:26
Ok danke.
Also, da es Anwendungen aufruft und ihnen nach dem Start Daten gibt (keine Parameterangabe), wäre fopen() wohl nicht ausreichend. Dann hat es sich erledigt.