PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [GTK] Externes Programm aufrufen



guardian
18-11-2003, 12:22
Hallo,

ist es möglich ein externes Programm (z.B. gcc/g++, nmap) aufzurufen ?

Sagen wir mal, ich habe einen Button "Compile" oder "Scan Host", und möchte jetzt eine entsprechende Datei compilieren oder einen Host über nmap scannen. Kann ich da irgendwie ein bereits installiertes Programm aufrufen, und eventuell die Ausgabe in einem extra Dialog ausgeben ?

MfG guardian

BTW: benutze Linux MDK, GTK+2.0 und gcc 3.2.2 (falls es relevant sein sollte :))

peschmae
18-11-2003, 12:33
das hat nichts mit Gtk oder sonstwie mit dem verwendeten Toolkit zu tun.

Machen kannst du das glaub ich mit der "system()"-Funktion - aber es gibt noch eine Menge anderer Funktionen, die in etwa dasselbe tun - nur ein bisschen anders... :D

MfG Peschmä

guardian
18-11-2003, 13:11
Erst mal thx für deine schnelle Antwort :D

Mit system() habe ich auch schon gearbeitet und es geht auch einigermaßen, allerdings bin ich nicht unbedingt ein Freund dieser Funktion ;)

Also wenn es noch eine andere Möglichkeit gibt ... bin für jeden Hinweis dankbar ;)

MfG guardian

peschmae
18-11-2003, 14:08
nun, bei Qt gäbs ne QProcess-Klasse. Aber bei Gtk+ ist das wohl nicht der Fall (afaik) - da musst du halt system() oder so brauchen

MfG Peschmä

anda_skoa
18-11-2003, 15:29
Original geschrieben von peschmae
nun, bei Qt gäbs ne QProcess-Klasse. Aber bei Gtk+ ist das wohl nicht der Fall (afaik) - da musst du halt system() oder so brauchen


Etwas entsprechendes könnte in der glib sein, die ist bei GTK ansich für Systemabstrahierung zuständig glaub ich.

Sonst popen() (bei system() kann man keine Ausgabe bekommen)

Ciao,
_

peschmae
18-11-2003, 17:39
ah ja, popen() :D

mein lieber Herold war halt @school nicht zur Hand (ich fühle mich ganz einsam ohne das Buch :( ) [Ich meine "Linux/Unix Systemprogrammierung" von Helmut Herold]

dort steht das alles drin (und noch viel mehr ;))

MfG Peschmä

guardian
19-11-2003, 12:29
Original geschrieben von anda_skoa
Etwas entsprechendes könnte in der glib sein, die ist bei GTK ansich für Systemabstrahierung zuständig glaub ich.

Sonst popen() (bei system() kann man keine Ausgabe bekommen)

Ciao,
_

Ja bin jetzt auch in der GLib fündig geworden -> die g_spawn family könnte eventuell behilflich sein. Ich versuche gerade damit was anzustellen und es sieht bisher auch gar nicht mal so dumm aus :)

MfG guardian