首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么symlink()总是打印symlink失败?

为什么symlink()总是打印symlink失败?
EN

Stack Overflow用户
提问于 2019-08-03 10:24:39
回答 1查看 76关注 0票数 0

我的代码总是打印symlink失败,即使它创建了symlink,为什么会发生这种情况?

我正在写我自己使用的所有核心实用程序,因为我想要体验,我不喜欢现有的实现,我正在ln上工作,老实说,我可能只是做软链接和跳过硬链接。现在这个程序可以工作了,但是总是打印我的错误,我不知道为什么。

代码语言:javascript
复制
#include <stdio.h>
#include <unistd.h>

int main(int argc, const char *argv[])
{
        short i;

        for (i = 1; i < argc; i++) {
                if (symlink(argv[1], argv[2]) == -1)
                        printf("symlink failed");

                else
                        symlink(argv[1], argv[2]);
        }
}
EN

回答 1

Stack Overflow用户

发布于 2019-08-03 10:30:55

您将遍历程序的每个参数,但尝试在每次迭代中创建从argv[2]argv[1]的符号链接。第一次尝试可能会成功,但任何进一步的尝试都将失败,因为该链接已经存在。

当传递两个以上的参数时,您需要仔细考虑ln的行为。与简单地调用symlink()相比,ln -s的行为更为复杂;值得注意的是,当最后一个参数是目录时,它的行为有所不同。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57335035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档