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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top