如何检查符号链接的路径,而不是它所指示的路径,而是链接本身 IN C

问题描述

我看过很多类似的主题,阅读了很多readlink和realpath,但是问题是我需要pliksoft的路径,而不是此链接指向的位置。

例如:

我有符号链接:pliksoft-> abc

结果应为:

/ users / staff / trl / am / SK / pliksoft

不是

/ users / staff / trl / am / SK / abc

我这样做,

char buf[PATH_MAX],buf_2[PATH_MAX]; 

readlink(argv[1],buf,PATH_MAX); 
realpath(buf,buf_2);

printf("%s\n",buf_2);

但这就是一个不好的结果。

解决方法

我想您正在尝试:

#include <libgen.h>
#include <limits.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int
main(int argc,char **argv)
{
        char buf[PATH_MAX];
        char *path = argc > 1 ? argv[1] : "foo";

        realpath(dirname(path),buf);
        printf("%s/%s -> ",buf,basename(path));
        realpath(path,buf);
        printf("%s\n",buf);

        return 0;
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...