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


Anmelden zum Antworten