Trucos de Programacion "C" y "C++" en castellano
Entornos Linux y Windows

Obtener la ruta del ejecutable

Obtener la ruta del ejecutable

Los estandares de C son bastante amplios, pero aún así, hoy por hoy, dejan muchos huecos importantes vacíos, como por ejemplo, el tema del que trata este capítulo. Si se quiere obtener la ruta actual, basta con utilizar la archiconocida función getcwd.

El problema viene cuando queremos obtener la ruta del ejecutable en cuestión (Para abrir ficheros de configuración, o ficheros de datos en algunos tipos de programas)

No existe ningun método estandar para resolver este problema, y hay diversas maneras de solucionarlo, segun la plataforma:

  1. La más básica, es válida en todos los sistemas, pero tambien es la menos eficiente. Esta solución consiste en mirar el parámetro argv[0] y junto con la variable path, obtener donde esta localizado el ejecutable.
  2. En Win32, existe la función GetModuleFileName. Con esta función se obtiene la ruta completa, junto con el nombre del ejecutable, solo hay que quitar el nombre, y ya tenemos la ruta que tanto deseabamos. (Esta función es la que utiliza visual basic para obtener la variable APP.Path)
  3. El linux, en /proc/self/ se guarda la información del ejecutable, y en concreto, en /proc/self/exe es un enlace a el ejacutable, pudiendo obtener de ahí la ruta.

Pongo a continuación un ejemplo en windows de como se utilizaría su función:

Siendo la función equivalente para entornos linux:

 

Webmaster

Hiperion Pozuelo, Madrid, ES
Soy una persona sencilla, quizas demasiado seria, que disfruto de la vida.
Actualmente busco pareja.