LINUX.ORG.RU

путь к файлу


0

0
подскажите, пожалуйста, как в C определить абсолютный путь к файлу, имея относительный? есть для этого какие-то стандартные функции или придется писать самому?
★★★
#include <limits.h>
#include <unistd.h>
#include <stdio.h>

...

char cwd[PATH_MAX];
char fullpath[PATH_MAX];

...
// `path' is the relative path
getcwd(cwd, sizeof (cwd));
snprintf(fullpath, sizeof(fullpath), "%s/%s", cwd, path);
anonymous
()
Ответ на: комментарий от anonymous
насколько я понял, это работает корректно только для текущей директории. это не совсем то, что мне нужно. я искал функцию типа перловой Cwd::realpath (за исключением, разве что, ссылок), т.е. чтобы она определяла абсолютный путь к любому файлу без перехода в директорию, в которой он находится.
friday ★★★
() автор топика
Ответ на: комментарий от friday
Можно запомнить cwd, потом перейти по относительному пути (с if (strrchr(relpath,'/'))*(strrchr(relpath, '/'))=0;), посмотреть на sprintf (buf, "%s/%s", cwd, strchr(relpath,'/')?strchr(relpath,'/')+1:relpath); а потом вернуть старую cwd.
kmeaw ★★★
()
Ответ на: комментарий от kmeaw
видимо, так и придется сделать.
friday ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.