Problem mit system
-
Hey Freunde!
Könnt ihr mir mal helfen bei folgendem Problem:
Ich führe mit system ein Betriebssystemskommando aus, also z.B. "dir" oder irgendein Programm. Unter reinem DOS kann ich anschliessend mit %errorlevel% abfragen, welchen Fehlercode das Programm lieferte. Doch wenn ich nun versuche, ein Kommando mit system auszuführen, und dann ERRORLEVEL via getenv zu holen, bekomme ich immer einen NULL-Pointer zurück :(. Wisst ihr, wie ich den Fehlercode eines Programms rausbekommen kann?Gruss und Danke,
code_pilot
-
system() bringt direkt einen Wert zurück den du prüfen kannst:
Return Value
If command is NULL and the command interpreter is found, the function returns a nonzero value. If the command interpreter is not found, it returns 0 and sets errno to ENOENT. If command is not NULL, system returns the value that is returned by the command interpreter. It returns the value 0 only if the command interpreter returns the value 0. A return value of – 1 indicates an error, and errno is set to one of the following values:
E2BIG
Argument list (which is system-dependent) is too big.
ENOENT
Command interpreter cannot be found.
ENOEXEC
Command-interpreter file has invalid format and is not executable.
ENOMEM
Not enough memory is available to execute command; or available memory has been corrupted; or invalid block exists, indicating that process making call was not allocated properly.
MfG SideWinder
-
WOW tatsächlich *ggg*
ich dachte erst immer, system liefert im -1 zurück wenn kein Kommanozeileninterpreter gefunden wurde und anonsten IMMER 0 *ggg* aber es funkt ja tatsächlich *freu*besten dank
code_pilot