c link()函数无法执行

时间:2016-01-16 10:31:12

标签: c

我对C中的link()函数有疑问。 我用它来创建Unix系统上文件的硬链接。 首先,在我的家庭指挥(在其他目录中发生同样的问题) 我创建了一个测试目录并将其cd入其中。现在在其中我执行一个程序,该程序创建到..目录(父目录)中的文件的硬链接。 但由于某些原因,错误设置为2(ENOENT)。 该文件存在 - >它的名字是../Exercise3.c(名称是Exercise3.c,但它位于..目录中) 由于某种原因创建链接到../scr.c等文件的链接工作,但我无法创建到该文件的链接。它具有与该目录中的其他文本文件相同的特权。我已尝试删除文件并重新创建它(无法正常工作),在程序中打印文件名以查看代码是否以某种方式失败,但事实并非如此。奇怪的是,如果我留在父目录中,我可以创建该文件的链接,但是一旦我进入我创建的测试目录并尝试创建一个链接到它(有问题的文件)与路径名称../Exercise3.c失败了。再次../scr.c创建一个链接。

int status = link(dest, name);
if (status == 0)
{
    exitStatus = 0; 
}
else
{
    exitStatus = errno;
    printf("Failed: %s\n", dest);
    perror("Creating hard link: "); 
}

这是创建硬链接的功能。 Char dest是../Exercise.c文件,char 名称是硬链接名称。并且硬链接名称或dest不指向空字符串。

0 个答案:

没有答案