Como obter o caminho absoluto para um determinado caminho relativo programaticamente no Linux?
-
22-09-2019 - |
Pergunta
Como obter o caminho absoluto para um determinado caminho relativo programaticamente no Linux?
No caso das janelas, temos o _fullpath()
API. Em outras palavras, quero dizer o que é API análoga para _fullpath
de Windows no Linux?
Solução
Como Paulo mencionou, use RealPath ()
. Observe que, porém, que como muitos sistemas de arquivos no suporte do Linux Links difíceis, qualquer diretório pode ter vários caminhos absolutos diferentes.
Outras dicas
Confira o Realpath função.
#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;
}
O que você deseja fazer é adicionar a mesma parte do aplicativo para o mesmo calendário à página.Eu acho que o que você está fazendo é adicionar um novo aplicativo de calendário, adicionando esse novo calendário para a página?Se você adicionar a mesma parte de aplicativo de calendário do selecionador duas vezes, e basta alterar a exibição na segunda parte do aplicativo, você deve obter o que está procurando.
Em execução no Redhat 5.3, o RealPath não existe, mas o ReadLink está instalado. Você pode usá -lo em caminhos e links simbólicos relativos, além de resolver o Symblinks recursivamente para você. É, portanto, uma opção melhor que o Realpath, na minha opinião
readlink -f .
A também é outra maneira útil, como "readlink -m $ filename"
Primeiro de tudo, ele funciona sem a necessidade de existir o arquivo de destino. Em segundo lugar, ele lidará com o Symblinks e fará um caminho realmente real.
// 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();
}