Linux 为什么linkpath中的尾随正斜杠会对symlink()调用产生影响?

Linux 为什么linkpath中的尾随正斜杠会对symlink()调用产生影响?,linux,symlink,Linux,Symlink,我试图找出一些创建符号链接的Linux应用程序代码中的错误。我发现的一个问题是在linkpath参数中使用了一个尾随的正斜杠 我有一个现有的目录结构/A/B/C。我想用以下内容创建指向/A目录中相对目录B/C的链接: const char*target=“B/C”; const char*linkpath=“/A/D”; 整数误差=0; int rc=符号链接(目标,链接路径); if(rc

我试图找出一些创建符号链接的Linux应用程序代码中的错误。我发现的一个问题是在linkpath参数中使用了一个尾随的正斜杠

我有一个现有的目录结构/A/B/C。我想用以下内容创建指向/A目录中相对目录B/C的链接:

const char*target=“B/C”;
const char*linkpath=“/A/D”;
整数误差=0;
int rc=符号链接(目标,链接路径);
if(rc<0)
{
error=errno;
printf(“创建符号链接%s时出错:%s,错误号=%d\n”,链接路径,strerror(错误),错误);
}
linkpath=“/A/E/”;
rc=符号链接(目标,链接路径);
if(rc<0)
{
error=errno;
printf(“创建符号链接%s时出错:%s,错误号=%d\n”,链接路径,strerror(错误),错误);
}
其输出为:

Error creating symlink /A/E/ : No such file or directory, errno = 2
  • 为什么尾部斜杠会导致调用失败
  • 实现此错误检查的源在哪里
    后面的斜杠意味着
    /A/E
    必须是现有目录。@Barmar我不在后面
    /A/E/
    是尚未存在的链接路径。您试图在不存在的目录中创建一个名称为空的链接。