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?

¿Fue útil?

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 .

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top