Deutsch English
Alphabetischer Index
Array-Funktionen
CGI-Funktionen
  • cgibuffer()
  • cgiclearbuffer()
  • cgiclosebuffer()
  • cgiexec()
  • cgigetparam()
  • cgigetsession()
  • cgitestparam()
  • cgitestsession()
  • cgiwrite()
  • cgiwritehtml()
  • cgiwriteln()
  • cgiwritetemplate()
  • endcgi()
  • endsema()
  • getquerystring()
  • http_post()
  • initcgi()
  • waitsema()
    Datentypen
    Datums/Uhrzeit-Funktionen
    Debugging
    Operatoren
    Ramtext-Funktionen
    Selektion
    Socket-Funktionen
    Sonstige-Funktionen
    Sprachelemente
    Statistik-Funktionen
    Stream-Funktionen
    String-Funktionen
    System-Funktionen
    Tabellen-Funktionen
    Text-Funktionen
    Volltext-Funktionen
    Zahlen-Funktionen
    Home    Überblick    Suche    Impressum    Kontakt    Mitglieder
    Themenkomplex CGI-Funktionen
    Funktion cgiexec()
    Kurz Führt externes Programm aus
    Syntax CGIEXEC(command : STRING [; timeout : INTEGER) : INTEGER
    Parameter command : Aufruf eines externen Programms inkl. Optionen und Parameter

    timeout : maximale Ausführungszeit in s (nur unter Win32)
    Ergebnis 0 : Programm wurde ausgeführt
    sonst : Programm konnte nicht ausgeführt werden
    Siehe auch:
    Beschreibung

    Diese Funktion führt ein externes Programm aus. Der Parameter s_timeout wird (vorläufig) nur unter Win9x / WinNT ausgewertet. Das aufgerufene Programm wird komplett ausgeführt und gibt dann die Kontrolle an das CGI-Programm zurück. Das aufgerufene Programm erhält die Ein- und Ausgabeströme des CGI-Programms. Deshalb sollte vor der Ausführung die Ausgabe-Pufferung beendet werden (da das externe Programm nicht in den tdbengine-Puffer schreiben kann).

    Besonderheiten Win9x, WinNT:

    Das Programm wird direkt gestartet. Mit s_timeout kann die maximal verfügbare Zeit (in Sekunden) angegeben werden. Wird dann das Programm vorzeitig abgebrochen, ist der Funktionswert -1. Wird für s_timeout der Wert -1 angegeben, so wird das Programm zwar komplett ausgeführt, die Ausgabe jedoch unterdrückt. Diese Vorgegensweise ist der Ausgabeumleitung in jedem Fall vorzuziehen. Die Rechte des ausgeführten Programms werden aus den Rechten des Internet-Klienten abgeleitet.

    Beispiel:

    richtig: (pkzip25.exe befindet sich in /home/tdbengine/)

    CGICloseBuffer .. Puffer leeren
    CGIExec('pkzip25.exe -add backup.zip *') .. zeigt die gesamte Liste
     .. und erzeugt backup.zip im CGI-Verzeichnis
    
    richtig: (cmd.exe befindet sich in /home/tdbengine/)
    
    ...
    CGIExec('cmd.exe /c set') .. zeigt das gesamte Environment
    
    
    falsch: (cmd.exe und pkzip25 befinden sich in /home/tdbengine/)
    
    ...
    CGIExec('cmd.exe /c pkzip25.exe -add backup.zip * > nul') .. erzeugt backup.zip ohne
    Ausgabe
    
    
    richtig: (pkzip25.exe befindet sich in /home/tdbengine/)
    
    CGIExec('pkzip25.exe -add backup.zip *',-1) .. erzeugt backup.zip ohne Ausgabe
    

    Einschränkung: CGIExec kann (zumindest problemlos) nur echte 32-Bit Anwendungen ausführen.

    Linux:

    Die commandline von CGIExec wird an die Shell des Internet-Klienten mit dessen Rechten übergeben. Hinweis: Hier ist die Ausgabeumleitung der empfohlene Weg, die Ausgaben des aufgerufenen Programms zu unterdrücken. Beispiel:

    CGICloseBuffer .. Puffer leeren
    CGIWrite('
    ') .. Ausgabe entsprechend Bildschirm
    CGIExec('set') .. zeigt das gesamte Environment
    CGIWriteLn('
    ')..CGIExec('tar -cz -fbackup.tar.gz *') .. erzeugt das Archiv backup.tar.gz mit Ausgabe....CGIExec('tar -cz -fbackup.tar.gz * > /dev/null') .. erzeugt das Archiv backup.tar.gz ohneAusgabe..
    Hinweis: Sie sollten CGIExec immer mit besonderer Vorsicht einsetzen. Unterbinden Sie durch geeignete Semaphoren gleichzeitige Aufrufe (vor allem bei Archivierungsprogrammen). Bedenken Sie, daß jeder CGI-Prozess nur eine beschränkte Zeit zur Verfügung hat (im http-Server einstellbar).

    tdbengine chat
    irc.tdbengine.org
    #tdbengine

       Copyright © 2003-2004 tdb Software Service GmbH
       Alle rechte vorbehalten. / All rights reserved
       Letzte Änderung: 21.10.2004
    {Fehler für :execmacro{execmacro="sessionspy"}