Имея директиву, которая является символической ссылкой, как я могу получить путь к цели ссылки? - PullRequest
0 голосов
/ 02 ноября 2018

Открыв каталог с opendir() и используя readdir() для считывания его записей, я проверяю, является ли запись символической ссылкой, и если да, то я бы хотел использовать имя цели.

(допустим, у нас есть каталог exampledir, в нем есть файл с символической ссылкой linkfile, ссылающийся на каталог /path/to/link/target)

Вот упрощенный фрагмент:

#include <sys/types.h> 
#include <dirent.h>
// ...
const char *path_to_dir = "./exampledir"; 
DIR *dir = opendir(path_to_dir); 
dirent *entry = readdir(dir); 
if (entry->d_type == DT_LNK) {
  // find out the link target's name and store / use it, 
  // but how...? 
}

1 Ответ

0 голосов
/ 02 ноября 2018

Используйте системный вызов readlink / readlinkat (2) .

...