Gibt system() einen Returncode zurück?

Hallo,

aus meiner C++ Builder Hilfe:

Header-Datei

stdlib.h

Kategorie

Ablaufsteuerungsroutinen

Prototyp

int system(const char *command);
int _wsystem(const wchar_t *command);

Beschreibung

Führt einen Betriebssystembefehl aus.

system ruft innerhalb eines ausgeführten C-Programms den Kommandozeileninterpreter des Betriebssystems zur Ausführung eines Befehls, einer Batch-Datei oder eines Programms auf. Dazu wird ihm der String command als Kommandozeile übergeben.

Aufgerufene Programme müssen sich im aktuellen Verzeichnis bzw. in einem in der Umgebungsvariablen PATH aufgeführten Verzeichnis befinden.

Der Kommandozeileninterpreter wird mit Hilfe der Umgebungsvariablen COMSPEC gefunden, so daß sich die Datei des Kommandozeileninterpreters nicht im aktuellen Verzeichnis befinden muß.

Rückgabewert

system liefert einen Wert ungleich null, falls command ein NULL-Zeiger ist und der Kommandozeileninterpreter zur Verfügung steht.

Ist command kein NULL-Zeiger, so liefert, wenn der Kommandozeileninterpreter erfolgreich gestartet wurde, system den Wert 0 zurück.

Bei einem Fehler wird der Wert -1 zurückgeliefert und errno auf einen der folgenden Werte gesetzt:

ENOENT Pfad/Dateiname nicht gefunden
ENOEXEC exec-Formatfehler
ENOMEM Nicht genug Platz im Hauptspeicher
 
Dankeschön!

Aber wirklich verstehen tue ich das auch.

Bekomme nämlich mittlerweile einen RC.

Ich habe das jetzt so gemacht:

int rc;

rc = system(Befehl);

printf("%d" rc);

Ich weiß, dass der Befehl falsch ist und ich bekomme den RC=127
Warum die 127?
 
moin


Was willst du denn damit anfangen?
Es gibt für sowas viel bessere möglichkeiten als system().


mfg
umbrasaxum
 
Zurück