Funktion system()

  • Themenstarter Themenstarter mogulsaga
  • Beginndatum Beginndatum
M

mogulsaga

Hoi zäme


Ich bin Anfänger mit C++ und wxWidgets. Habe aber mit wxWidgets schon ein wenig Erfahrung.

Ich möchte mit wxWidgets ein grafisches Frontend für bcrypt schreiben.

Nun habe ich gelesen, dass ich mit der C-Funktion system() ein Linux-Programm starten kann.
Das wäre doch genau das Richtige, um bcrypt zu starten, oder?
Nun .

Wenn ich nun aus wxWidgets heraus folgendes aufrufe, dann bleibt bcrypt "stehen" (logisch,
bcrypt möchte ja noch zwei Eingaben des Passwortes);

ret = system("bcrypt geheim"); // bcrypt= linux-Programm, geheim=Datei zu bcrypten :)

nun habe ich noch eine Datei gemacht, in der "12345678" drin steht, also das geheime Kennwort:
ret = system("bcrypt geheim < geheiminput");

Geht aber auch nicht.

Kann mir jemand helfen, wie ich das hinkriege? Also im Prinzip sollte ja dann die Datei in wxWidgets
ausgewählt werden können (FilePickerDialog) und das Passwort: 12345678 schon im Dialog angegeben
werden können. Diese zwei "Parameter" möchte ich nun also mit system(); an bcrypt übergeben.
Doch wie schaffe ich, dass ich "12345678" (2x) mit Enter-Taste übergeben kann?

Hab auch schon versucht mit system() das ausführbare Skript: "skript" auszuführen, im welchem drin steht:
#!/bin/bash
bcrypt geheim
echo -e < geheiminput "\r"
echo -e < geheiminput "\r"

geht aber auch nicht (kein Wunder, dafür kenne ich Linux zu wenig).

Kann mir jemand helfen, das hinzukriegen, falls es möglich ist?

LG mogulsaga
 
Danke Matthias

Funktioniert tiptop.
Es hat auch ein Besipiel unter samples/exec (funktioniert auch :).

Weisst du auch, wie ich unter Linux Parameter mitgeben kann, die
ein Programm später braucht? Ist mir klar, wenn ich bcrypt einen Dateinamen
mitgeben möchte, so kann ich das in einem Skript mit: bcrypt %1 machen.
Wie aber kann ich "bcrypt geheim" auch die Passwörter "mitgeben"?

lG mogulsaga
 
Weisst du auch, wie ich unter Linux Parameter mitgeben kann, die
ein Programm später braucht? Ist mir klar, wenn ich bcrypt einen Dateinamen
mitgeben möchte, so kann ich das in einem Skript mit: bcrypt %1 machen.
Wie aber kann ich "bcrypt geheim" auch die Passwörter "mitgeben"?
Wenn ich mich jetzt richtig informiert habe, erwartet bcrypt das Passwort auf der Standardeingabe. Also müsstest du dir mit wxProcess::GetOutputStream darauf Zugriff beschaffen und das Passwort dann in den Stream schreiben.

Grüße,
Matthias
 
Zurück