Ankündigung

Einklappen
Keine Ankündigung bisher.

Rückgabevariable von exec()

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Rückgabevariable von exec()

    Das php-Manual gibt dazu leider keine genaue Auskunft.
    Was liefert der exec-Befehl denn in die $status Variable zurück?
    PHP-Code:
    exec($befehl$results$status
    Folgendes Skript habe ich gefunden, um ImageMagick zu erkennen.

    PHP-Code:
    exec('convert -version'$results$status); 
    if(!
    $status) { 
      echo 
    'installed'
    } else { 
      echo 
    'not installed'

    Ist da das Ausrufezeichen nicht zu viel?
    Ausserdem habe ich gelesen, dass $status auch den Wert 126 annehmen kann (wenn das Programm zum Beispiel nicht ausführbar ist).

    Wird denn bei erfolgreicher Ausführung des Befehls true zurückgegeben? Gibt es sonst noch Error-Codes, die in $status auftauchen können?

  • #2
    Zitat von chunky Beitrag anzeigen
    Das php-Manual gibt dazu leider keine genaue Auskunft.
    Es liefert sie so genau, wie es kann.
    Was liefert der exec-Befehl denn in die $status Variable zurück?
    PHP: exec - Manual: “If the return_var argument is present along with the output argument, then the return status of the executed command will be written to this variable.”

    Ist da das Ausrufezeichen nicht zu viel?
    Ausprobiert?

    Dass man an der Stelle typsicher vergleichen sollte, kann ich mir schon vorstellen - allein, um „es gab keinen Rückgabewert“ von 0 o.ä. unterscheiden zu können.

    Ausserdem habe ich gelesen, dass $status auch den Wert 126 annehmen kann (wenn das Programm zum Beispiel nicht ausführbar ist).
    Es ist vor allem bei in C (oder einem der Abkömmlinge) geschriebenen Programmen durchaus üblich, dass im Erfolgsfall lediglich eine 0 zurückgeliefert wird, und im Fehlerfalle irgendein positiver Integerwert als Fehlercode.

    Die Bedeutung des Codes musst du dann aber natürlich in der Dokumentation des jeweiligen Programms nachschlagen.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar

    Lädt...
    X