rutas ¿Cómo obtener la ruta absoluta para una ruta relativa dada programáticamente en Linux?




los caracteres..(doble punto) se usan para representar: (6)

¿Cómo obtener la ruta absoluta para una ruta relativa dada programáticamente en Linux?

En caso de Windows tenemos la API _fullpath() . En otras palabras, quiero decir, ¿qué es una API análoga a _fullpath de Windows en Linux?


Answer #1

Al ejecutarse en RedHat 5.3, realpath no existe, pero el enlace de lectura está instalado. Puede usarlo en rutas relativas y enlaces simbólicos, además de que resolverá los enlaces simbólicos de forma recursiva para usted. Es por lo tanto una opción mejor que realpath en mi opinión.

readlink -f .

Answer #2

Como lo mencionó Paul, usa realpath() . Sin embargo, tenga en cuenta que dado que muchos sistemas de archivos en Linux admiten enlaces duros , cualquier directorio dado puede tener varias rutas absolutas diferentes.


Answer #3

Echa un vistazo a la función realpath .

#include <stdlib.h> 
#include <stdio.h> 
#include <linux/limits.h>
int main() 
{ 
        char resolved_path[PATH_MAX]; 
        realpath("../../", resolved_path); 
        printf("\n%s\n",resolved_path); 
        return 0; 
} 

Answer #4
// For C++ with Gnome Gtkmm3 libraries
#include <glibmm.h>
#include <giomm.h>

  string PathRel2Abs(string relpath) {
  Glib::RefPtr<Gio::File> file = Gio::File::create_for_path(relpath);
  return file->get_path();
}

Answer #5

Existe la realpath de stdlib.h


Answer #6

Prueba realpath :

$ man realpath

Esto también está disponible en BSD, OS X, et al.





absolute-path