Est-il possible d'avoir le nom de l'exécutable sans le chemin?
-
21-09-2019 - |
Question
Salut, je suis en train d'utiliser le nom de l'exécutable et une chaîne d'utilisation, j'utilise argv[0]
à cette fin, mais au lieu du nom de l'exécutable lui-même, il me donne le chemin complet vers elle.
Est-il possible d'obtenir que le nom de l'exécutable?
La solution
Il suffit de chercher la dernière /.
const char *exename = strrchr(argv[0], '/');
if (exename)
// skip past the last /
++exename;
else
exename = argv[0];
Autres conseils
Pour autant que je sache, (sur linux, au moins) il vous suffit d'extraire le nom de l'exécutable à partir du char * vous.
La meilleure façon de le faire est d'utiliser basename(argv[0])
, que vous pouvez obtenir en incluant « libgen.h ».
Si elle est disponible sur votre plate-forme, il y a une char *basename(char *path)
fonction. Voir basename documentation .
Utilisez GetModuleFileName http://msdn.microsoft .com / fr-fr / bibliothèque / ms683197% 28VS.85% 29.aspx avec l'argument handle = 0
Il suffit d'utiliser la dernière partie du chemin-chaîne. Une combinaison d'un appel à strrchr
(get dernier délimiteur de chemin) et par exemple strcpy
ou similaire pour copier la partie de la dernière délimiteur de chemin pour mettre fin
Vous pouvez utiliser getprogname()
si le nom du programme est défini par votre système d'exploitation.