有一个符号 link 的 dirent,我怎样才能得到 link-target 的路径名?

Having a dirent that is a symbolic link, how can I get the link-target's path name?

opendir() 打开一个目录并使用 readdir() 读出它的条目,我检查条目是否是符号 link 如果是的话我想使用目标的名称。

(假设我们有一个目录 exampledir,其中有一个名为 linkfile link 的符号 link 文件指向目录 /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...? 
}

使用readlink/readlinkat(2)系统调用。