E 'possibile avere il nome del file eseguibile senza il percorso?
-
21-09-2019 - |
Domanda
Ciao Sto cercando di utilizzare il nome del file eseguibile e una stringa di utilizzo, sto usando argv[0]
a tale scopo, ma al posto del nome del file eseguibile in sé mi dà il percorso completo ad esso.
C'è un modo per ottenere solo il nome del file eseguibile?
Soluzione
Basta cercare l'ultimo /.
const char *exename = strrchr(argv[0], '/');
if (exename)
// skip past the last /
++exename;
else
exename = argv[0];
Altri suggerimenti
Per quanto ne so, (su Linux, almeno) è sufficiente estrarre il nome del file eseguibile dal char * te.
Il modo più semplice per farlo è quello di utilizzare basename(argv[0])
, che si può ottenere inserendo "libgen.h".
Se è disponibile sulla vostra piattaforma, c'è una funzione di char *basename(char *path)
. Vedere basename documentazione .
http://msdn.microsoft .com / it-it / library / ms683197% 28VS.85% 29.aspx con il manico argomento = 0
Basta usare l'ultima parte del percorso corde. Una combinazione di una chiamata a strrchr
(ottenere ultimo delimitatore di percorso) e per esempio strcpy
o simile per copiare la parte della scorsa delimitatore di percorso per porre fine
È possibile utilizzare getprogname()
se il nome del programma è impostato dal sistema operativo.