Wie kann ich aus einem C Programm ein externes Programm aufrufen?
Ich versuche grade mir ein GTK-Programm zu schreiben mitdem ich meinen Laptop Ausschalten/Neu starten/usw kann...
Wie kann ich aus einem C Programm ein externes Programm aufrufen?
Ich versuche grade mir ein GTK-Programm zu schreiben mitdem ich meinen Laptop Ausschalten/Neu starten/usw kann...
eine Möglichkeit wäre die Funktionaus stdlib.h... schau mal an der Konsole in "info system"Code:int system(char*);
M.
Kann ich das irgendwie umgehen? z.b. das COMMAND mit & aufrufen?Zitat von info system
Und nochwas..
Ich bin absoluter C-Noob. Wie muss ich das in das Programm einbasteln?
Bis jetzt sieht der Code so aus:
vor das gtk_main_quit soll das shutdown programmCode:........ void on_ausschalten_clicked (GtkButton *button, gpointer user_data) { gtk_main_quit(); } ......
Geändert von Brain Fury (19-04-2007 um 13:47 Uhr)
Es gibt in glib sicher ein non-blocking exec oder ähnliches.
Ciao,
_
Qt/KDE Entwickler
Debian Benutzer
ok das mit dem einbetten hab ich durch ausprobieren hinbekommen. Jetzt muss ich nur nochmal gucken, dass das nicht nacheinander abläuft.
Wegen dem Blocken des Prozesses: fork() startet einen neuen Prozess der
unabhängig ist. Das Hauptprogramm läuft dann weiter.
danke, is aber garnicht nötig.
Das funktioniert so wie es ist schon ganz wunderbar.
Falls sich das jemand angucken möchte:
http://www-public.rz.uni-duesseldorf...utdown.tar.bz2
ach, bei Interesse:
http://sourceforge.net/projects/syspanel
ich hab da auch mal ein GTK-Interface programmiert, welches benutzerdefinierte Befehle ausführen kann. (Befehle werden mit fork() ausgeführt).
Geändert von jeebee (19-04-2007 um 21:17 Uhr)
Nur noch eine Anmerkung zum Thema Shutdown.
Auf der xdg Mailinglist von freedesktop.org war kürzlich eine Diskussion über ein einheitliches D-Bus Interface für Shutdown, Reboot, Standby usw. inklusive Methoden um Shutdown/Reboot/Standby vorübergehend zu verhindern (zB um eine Operation sicher zu Ende zur bringen)
Ciao,
_
Qt/KDE Entwickler
Debian Benutzer
Das macht D-Bus, der läßt nur Methodenaufrufe zu, zu denen der Benutzer auch berechtig ist, zB weil er eine bestimmten Gruppe angehört.
Das Zielprogramm, also das dann die Befehle letztendlich ausführt, hat dann entsprechende Systemrechte, oder ruft seinerseits entsprechende Hilfprogramme auf.
Ciao,
_
Qt/KDE Entwickler
Debian Benutzer
Lesezeichen