Я хотел бы знать, как абсолютный путь символической ссылки может быть преобразован в относительный на основе заданного каталога (включая связанный файл) на языке c на linux (Ubuntu) ОПЕРАЦИОННЫЕ СИСТЕМЫ.Как преобразовать абсолютный путь в относительный в c linux
Я думал о поиске подстроки относительного пути, но что, если он уже существует выше в иерархии папки?
Вот более конкретное описание того, что я хочу сделать: Относительный путь:
folder/folder1/folder2
Absolut путь:
/home/giorgos/Desktop/folder/folder1/folder2/a.pdf
изменен
/home/giorgos/Desktop/myfolder/folder1/folder2/a.pdf
Очевидно, что я не могу «просто найдите и замените« папку/», рассмотрите этот случай:
/home/giorgos/Desktop/folder/folder/folder/folder1/folder2/a.pdf
Это можно искать как вперед и назад, и если заменить это все еще дает неправильный вывод Только если я знал, что относительный путь, который я мог бы поиск абсолюта назад и заменить его, то результат будет правильным:
/home/giorgos/Desktop/folder/myfolder/folder/folder1/folder2/a.pdf
по отношению к чему? Текущий каталог? –
Да, относительная директория текущего каталога, я постараюсь быть более конкретным –
Я не знаю никакого общего, предварительно написанного кода, который сделает это; каков контекст этой проблемы? Возможно, будет хорошее решение, которое не обязательно будет идти по этому маршруту. – sarnold