¿Es posible tener el nombre del ejecutable sin la ruta?
-
21-09-2019 - |
Pregunta
Hola Estoy tratando de utilizar el nombre del ejecutable y el uso de una cadena, estoy usando argv[0]
para tal fin, pero en lugar del nombre del propio ejecutable que me da la ruta completa a la misma.
¿Hay alguna manera de obtener sólo el nombre del archivo ejecutable?
Solución
Sólo la búsqueda de la última /.
const char *exename = strrchr(argv[0], '/');
if (exename)
// skip past the last /
++exename;
else
exename = argv[0];
Otros consejos
Por lo que yo sé, (en Linux, por lo menos) sólo hay que extraer el nombre del ejecutable del char * a ti mismo.
La forma más sencilla de hacerlo es utilizar basename(argv[0])
, que se puede obtener mediante la inclusión de "libgen.h".
Si está disponible en su plataforma, hay un char *basename(char *path)
función. Ver nombre base de documentación .
http://msdn.microsoft .com / es-es / library / ms683197% 28VS.85% 29.aspx con el mango argumento = 0
Sólo tiene que utilizar la última parte de la ruta de cuerdas. Una combinación de una llamada a strrchr
(Recuperación de la última delimitador de ruta) y, por ejemplo, strcpy
o similar para copiar a cabo la parte de la última delimitador de ruta para poner fin a
Se puede usar getprogname()
si el nombre del programa se establece por su sistema operativo.