Anzeige:
Ergebnis 1 bis 11 von 11

Thema: externe Programme unter C ausführen

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.09.2004
    Beiträge
    6

    externe Programme unter C ausführen

    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...

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    eine Möglichkeit wäre die Funktion
    Code:
    int system(char*);
    aus stdlib.h... schau mal an der Konsole in "info system"

    M.

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.09.2004
    Beiträge
    6
    Zitat Zitat von info system
    ....you have to wait until the subprogram terminates before you can do anything else.
    ....
    Kann ich das irgendwie umgehen? z.b. das COMMAND mit & aufrufen?

    Und nochwas..
    Ich bin absoluter C-Noob. Wie muss ich das in das Programm einbasteln?
    Bis jetzt sieht der Code so aus:
    Code:
    ........
    void
    on_ausschalten_clicked                 (GtkButton       *button,
                                            gpointer         user_data)
    {
    	gtk_main_quit();
    }
    ......
    vor das gtk_main_quit soll das shutdown programm
    Geändert von Brain Fury (19-04-2007 um 13:47 Uhr)

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Es gibt in glib sicher ein non-blocking exec oder ähnliches.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    30.09.2004
    Beiträge
    6
    ok das mit dem einbetten hab ich durch ausprobieren hinbekommen. Jetzt muss ich nur nochmal gucken, dass das nicht nacheinander abläuft.

  6. #6
    Registrierter Benutzer
    Registriert seit
    20.03.2006
    Beiträge
    54
    Wegen dem Blocken des Prozesses: fork() startet einen neuen Prozess der
    unabhängig ist. Das Hauptprogramm läuft dann weiter.

  7. #7
    Registrierter Benutzer
    Registriert seit
    30.09.2004
    Beiträge
    6
    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

  8. #8
    Registrierter Benutzer Avatar von jeebee
    Registriert seit
    01.01.2005
    Ort
    Bern || Zürich
    Beiträge
    540
    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)

  9. #9
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    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

  10. #10
    Registrierter Benutzer
    Registriert seit
    05.09.2002
    Ort
    Neuhausen
    Beiträge
    320
    Zitat Zitat von anda_skoa Beitrag anzeigen
    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)
    Interessant. Und wie wird das mit den Rechten gelöst?

    Gruss, Andy

  11. #11
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •