Frage

Hallo Ich versuche, den Namen der ausführbaren Datei und eine Nutzungs Zeichenfolge zu verwenden, ich bin für einen solchen Zweck verwendet argv[0] aber anstelle des Namens der ausführbaren Datei selbst es gibt mir den kompletten Pfad zu.

Gibt es eine Möglichkeit nur den Namen der ausführbaren Datei zu bekommen?

War es hilfreich?

Lösung

Suchen Sie einfach nach dem letzten /.

const char *exename = strrchr(argv[0], '/');
if (exename)
    // skip past the last /
    ++exename;   
else
    exename = argv[0];   

Andere Tipps

Soweit ich weiß, (auf Linux, zumindest) Sie nur den Namen der ausführbaren Datei aus dem char extrahieren müssen * selbst.

Der einfachste Weg, das zu tun ist basename(argv[0]) zu verwenden, die Sie, indem „libgen.h“ erhalten können.

Wenn es auf Ihrer Plattform verfügbar ist, gibt es eine Funktion char *basename(char *path). Siehe Basisnamen Dokumentation .

Verwenden GetModuleFileName http://msdn.microsoft .com / en-us / library / ms683197% 28VS.85% 29.aspx mit dem Griff Argument = 0

Verwenden Sie einfach den letzten Teil des Pfades-String. Eine Kombination aus einem Aufruf von strrchr (get letzten Wegbegrenzer) und z.B. strcpy oder ähnlich den Teil von den letzten Wegbegrenzers zu Ende kopieren out

Sie könnten getprogname() verwenden, wenn der Name des Programms, von Ihrem O eingestellt ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top