Como converter caminho absoluto para relativo em c linux
Gostaria de saber como um caminho absoluto de um link simbólico pode ser convertido em parente com base em um determinado diretório (que inclui o arquivo vinculado) na linguagem c no sistema operacional Linux (Ubuntu
ensei em procurar a sub-string do caminho relativo, mas e se ele já existir mais na hierarquia da past
Aqui está uma descrição mais específica do que eu quero fazer: Caminho relativo:
folder/folder1/folder2
Absolut path:
/home/giorgos/Desktop/folder/folder1/folder2/a.pdf
changed to
/home/giorgos/Desktop/myfolder/folder1/folder2/a.pdf
Obviamente eu não posso simplesmente procurar e substituir "folder /", considere este caso:
/home/giorgos/Desktop/folder/folder/folder/folder1/folder2/a.pdf
Pode ser pesquisado para frente e para trás e, se substituído, ainda gera uma saída incorreta. Somente se eu soubesse o caminho relativo, poderia procurar o absoluto para trás e substituí-lo, a saída estaria correta:
/home/giorgos/Desktop/folder/myfolder/folder/folder1/folder2/a.pdf