c++ system() aufruf vorher testen ?

  • Hidiho,


    Ich bin grade an meiner neuen 2.0 Version vom vdr2divx und da stellt sich mir ein Problem ;) :
    Wer kann mir sagen, wie ich in c++ vor einem Aufruf system(); prüfen kann, ob das aufzurufende Programm tatsächlich vorhanden und ausführbar (recht mässig) ist ?
    Oder kann ich das am zurückgelieferten Status irgendwie erkennen ? Da bekomme ich doch eher den Status des ausgeführten Programms zurück, oder ? Aber eigentlich eh lieber präventiv !


    Wichtig ist mir, dass nicht nur auf vorhandensein im aktuellen Pfad geprüft wird, sondern auch im System Suchpfad - also im prinzip genau wie beim Aufruf später auch !?


    Gruß,


    Martin


    PS: Der is ja cool :vader ...

  • Hallo,


    ich habe immer exec* funktionen benutzt. :]
    da ist ein gutes beispiel:



    Gruß,
    genka

  • Erstmal Danke für die schnelle Antwort!
    Aber ich suche nach einer Möglichkeit das entsprechende Programm nicht wirklich aufzurufen, sondern nur zu prüfen ob es ausführbar wäre !
    Ausführen will ich es viel später in meinem Programm ...


    Und wenn ich das richtig sehe, dann startet Dein execvp() auch schon das Programm ?


    Martin

  • Hallo,


    dann werde ich sowas benutzen:


    Code
    fstat(fSource, &stFile) oder lstat(sFileName, &stFile)
    
    // Get Data for CHOWN
    uidSrc		= stFile.st_uid;
    gidSrc		= stFile.st_gid;
    
    // Get Data for CHMOD
    modeSrc		= stFile.st_mode;


    du kannst das auch im Commander Plugin sehen (functhread.c) :D


    Gruß,
    genka

  • Wird denn da auch der System Suchpfad mit durchsucht ?
    Denn das Problem hatte ich nämlich mit simplen öffnen der Datei (als Stream) auch 8o
    Da konnte ich zwar prima prüfen, ob die Datei im aktuellen Pfad existiert, aber nicht, ob das System sie im Suchpfad auftreiben kann :(


    Martin

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!